How to get query parameters in a Logic App?

前端 未结 2 592
余生分开走
余生分开走 2020-12-16 20:01

I\'m trying to pass an extra query parameter to Azure logic app so that I can process below data in the Logic App workflow

For Example https://logicURL?SelectedData=

相关标签:
2条回答
  • 2020-12-16 20:23

    First, you need to add your query param to the existing ones, e.g.

    https://xyz.logic.azure.com:443/workflows/id/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=code&SelectedData="%7BsiteURL%3AXYZ.sharepoint.com%2Fsites%2FXYZDev%7D"
    
    https://xyz.logic.azure.com:443/workflows/id/triggers/manual/paths/invoke
      ?api-version=2016-10-01
      &sp=%2Ftriggers%2Fmanual%2Frun
      &sv=1.0
      &sig=code
      &SelectedData="%7BsiteURL%3AXYZ.sharepoint.com%2Fsites%2FXYZDev%7D"
    

    Then, you should be able to get them in your Logic App using

    @triggerOutputs()['queries']['SelectedData']
    

    As you can see, there is no need to add a schema to the Http Trigger to get a query parameter

    0 讨论(0)
  • 2020-12-16 20:28

    Context

    • MSFT Azure Logicapp
    • MSFT Logicapp workflow definition language
    • Live version as of 2020-06-25 04:56:31

    Problem

    • Logicapp developer wants to obtain the value of a URL query parameter passed in via HTTP GET

    Solution

    • The solution to this use-case is already provided elsewhere in this StackOverflow thread
    • This addon answer, however, refactors the previous solution
      • it addresses constructing expressions in MSFT Workflow definition language (the JSON-based source code you see when viewing a logicapp in "code" view)

    Details

    • This URL extends the original question and another answer in this SO Thread
    • Here we expect FirstName LastName and FaveColor properties
        https://xyz.logic.azure.com:443/workflows/id/triggers/manual/paths/invoke
          ?api-version=2016-10-01
          &sp=%2Ftriggers%2Fmanual%2Frun
          &sv=1.0
          &sig=code
          &FirstName=Huomer
          &LastName=Huimpson
          &FaveColor=     
    
    • Standard init: The following is sufficient to capture the desired name-value pairs
    triggerOutputs()['queries']['FirstName']
    triggerOutputs()['queries']['LastName']
    triggerOutputs()['queries']['FaveColor']
    
    • Error-trap init: The following is sufficient to capture the desired name-value pairs without throwing an error if any desired name-value pair is missing (error-free capture)
    triggerOutputs()['queries']?['FirstName']
    triggerOutputs()['queries']?['LastName']
    triggerOutputs()['queries']?['FaveColor']
    
    • Error-trap init with defaults: The following is sufficient to error-trap init the desired name-value pairs, as well as provide a default value for any missing values
    coalesce(triggerOutputs()['queries']?['FirstName']  , 'Puomer'  )
    coalesce(triggerOutputs()['queries']?['LastName']   , 'Puimpson' )
    coalesce(triggerOutputs()['queries']?['FaveColor']  , 'Purple' )
    

    Solution refactored

    • Consequently, the original solution can be refactored as follows
    @{coalesce(triggerOutputs()['queries']?['SelectedData'] , '__blank__')}
    
    • This approach does what the typical use-case calls for, which is:
      • get the value if it exists,
      • otherwise provide a default value, and
      • don't crash the entire logicapp if the parameter was completely omitted
      • the @{} syntax can be used if you are editing workflow definition language directly, but not if you are entering it in the "expression dialog box"

    See also

    • https://stackoverflow.com/a/51058306/42223
    • How to do a 'null' check in 'if' condition action of Azure Logic App
    • https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#coalesce
    0 讨论(0)
提交回复
热议问题