Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 如何在逻辑应用程序中获取查询参数?_Azure_Azure Logic Apps_Workflow Definition Language - Fatal编程技术网

Azure 如何在逻辑应用程序中获取查询参数?

Azure 如何在逻辑应用程序中获取查询参数?,azure,azure-logic-apps,workflow-definition-language,Azure,Azure Logic Apps,Workflow Definition Language,我正在尝试向Azure logic app传递一个额外的查询参数,以便我可以在logic app工作流中处理以下数据 例如“%7BsiteURL%3AXYZ.sharepoint.com%2Fsites%2FXYZDev%7D”(编码字符串) 在HTTP操作中,我试图用下面的JSON模式处理上面传递的数据 { "kind": "Http", "inputs": { "schema": { "properties": {

我正在尝试向Azure logic app传递一个额外的查询参数,以便我可以在logic app工作流中处理以下数据

例如“%7BsiteURL%3AXYZ.sharepoint.com%2Fsites%2FXYZDev%7D”(编码字符串)

在HTTP操作中,我试图用下面的JSON模式处理上面传递的数据

{
    "kind": "Http",
    "inputs": {
        "schema": {
            "properties": {
                "selectedData": {
                    "type": "string"
                }
            },
            "type": "object"
        }
    } }
我没有得到selectedData值。我需要使用decodecomponentURI,然后使用JSON值

在这里找到错误


首先,您需要将查询参数添加到现有参数中,例如

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"
然后,您应该能够在逻辑应用程序中使用

@triggerOutputs()['queries']['SelectedData']
如您所见,无需向Http触发器添加模式来获取查询参数上下文
  • MSFT Azure Logicapp
  • MSFT Logicapp工作流定义语言
  • 截至2020-06-25 04:56:31的实时版本
问题
  • Logicapp开发者希望获得通过HTTP GET传入的URL查询参数的值
解决方案
  • 这个用例的解决方案是在这个StackOverflow线程中
  • 然而,这个附加的答案重构了以前的解决方案
    • 它解决了用MSFT工作流定义语言(在“代码”视图中查看logicapp时看到的基于JSON的源代码)构造表达式的问题
细节
  • 此URL扩展了此SO线程中的原始问题和另一个答案
  • 这里我们期望
    FirstName
    LastName
    FaveColor
    属性
https://xyz.logic.azure.com:443/workflows/id/triggers/manual/paths/invoke ?api版本=2016-10-01 &sp=%2触发器%2手动%2运行 &sv=1.0 &sig=代码 &FirstName=Huomer &LastName=Huimpson &FaveColor=
  • 标准初始化:以下内容足以捕获所需的名称-值对
triggerOutputs()['queries']['FirstName'] triggerOutputs()['queries']['LastName'] triggerOutputs()['queries']['FaveColor']
  • 错误陷阱初始化:如果缺少任何所需的名称-值对,则以下内容足以捕获所需的名称-值对而不会引发错误(无错误捕获)
triggerOutputs()['queries']?['FirstName'] triggerOutputs()['queries']?['LastName'] triggerOutputs()['queries']?['FaveColor']
  • 使用默认值错误陷阱初始化:以下内容足以错误陷阱初始化所需的名称-值对,并为任何缺少的值提供默认值
合并(triggerOutputs()['queries']?['FirstName'],'Puomer') 合并(triggerOutputs()['queries']?['LastName'],'Puimpson') 合并(triggerOutputs()['queries']?['FaveColor'],'Purple') 解决方案重构
  • 因此,原始解决方案可以重构如下
##以前 @triggerOutputs()['queries']['SelectedData'] ##之后 @{coalesce(triggerOutputs()['queries']?['SelectedData'],''Uuu blank'}
  • 这种方法满足典型用例的要求,即:
    • 获取该值(如果存在)
    • 否则,请提供默认值,以及
    • 如果参数被完全忽略,不要使整个logicapp崩溃
    • 如果您直接编辑工作流定义语言,则可以使用
      @{}
      语法,但如果您在“表达式对话框”中输入它,则不能使用
另见

简单地说,我如何处理通过URL提供的Azure Logic应用程序中的参数另请参见:有关此解决方案的其他注意事项和重构。这是对底层行为的极好分解。谢谢你的提示! 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= triggerOutputs()['queries']['FirstName'] triggerOutputs()['queries']['LastName'] triggerOutputs()['queries']['FaveColor'] triggerOutputs()['queries']?['FirstName'] triggerOutputs()['queries']?['LastName'] triggerOutputs()['queries']?['FaveColor'] coalesce(triggerOutputs()['queries']?['FirstName'] , 'Puomer' ) coalesce(triggerOutputs()['queries']?['LastName'] , 'Puimpson' ) coalesce(triggerOutputs()['queries']?['FaveColor'] , 'Purple' ) ## BEFORE @triggerOutputs()['queries']['SelectedData'] ## AFTER @{coalesce(triggerOutputs()['queries']?['SelectedData'] , '__blank__')}