语境
- MSFT Azure Logicapp
- MSFT Logicapp 工作流定义语言
- 直播版截至 2020-06-25 04:56:31
问题
- Logicapp 开发者想要获取通过 HTTP GET 传入的 URL 查询参数的值
解决方案
- 此用例的解决方案已在此 StackOverflow 线程的其他地方提供
- 但是,此插件答案重构了以前的解决方案
- 它解决了在 MSFT 工作流定义语言中构造表达式(在“代码”视图中查看逻辑应用时看到的基于 JSON 的源代码)
细节
- 此 URL 扩展了此 SO 线程中的原始问题和另一个答案
- 在这里我们期望
FirstName
LastName
和FaveColor
属性
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=代码
&FirstName=霍默
&LastName=Huimpson
&FaveColor=
triggerOutputs()['查询']['名字']
triggerOutputs()['查询']['姓氏']
triggerOutputs()['查询']['FaveColor']
- 错误陷阱初始化:如果缺少任何所需的名称-值对,以下内容足以捕获所需的名称-值对而不会引发错误(无错误捕获)
triggerOutputs()['queries']?['FirstName']
triggerOutputs()['queries']?['LastName']
triggerOutputs()['queries']?['FaveColor']
- 带有默认值的错误陷阱初始化:以下足以错误陷阱初始化所需的名称-值对,并为任何缺失值提供默认值
合并(触发输出()['查询']?['名字'],'Puomer')
合并(触发输出()['查询']?['姓氏'],'Puimpson')
合并(触发输出()['查询']?['FaveColor'],'紫色')
解决方案重构
## 前
@triggerOutputs()['查询']['SelectedData']
## 后
@{coalesce(triggerOutputs()['queries']?['SelectedData'] , '__blank__')}
- 这种方法可以满足典型用例的要求,即:
- 获取值(如果存在),
- 否则提供默认值,并且
- 如果参数被完全省略,不要使整个逻辑应用程序崩溃
- 如果您直接编辑工作流定义语言,则可以使用该
@{}
语法,但如果您在“表达式对话框”中输入,则不能
也可以看看