在VSCode Logic Apps中调用工作流:跨工作流转参问题咨询
问题解答
能通过Invoke workflow操作传递的数据在工作流B中访问,但不是从工作流B的POST HTTP请求体中读取——这是因为Invoke workflow的调用逻辑和外部HTTP触发的逻辑不同:
- 当你用Invoke workflow调用工作流B时,传递的请求体数据并不会被封装成HTTP请求的Body,而是直接注入到工作流B的输入参数集合或者工作流上下文中,具体取决于你使用的工作流引擎。
- 如果工作流B原本是通过外部HTTP POST触发的,当被内部Invoke workflow调用时,它的触发源已变为内部调用,此时HTTP请求体为空是正常现象。
正确访问传递数据的步骤:
- 在工作流B中定义输入参数:
确保工作流B已提前配置好与工作流A传递字段名完全匹配的输入参数(大小写、拼写必须一致)。比如A传了customer_id和order_detail,B就要对应定义这两个参数。 - 在工作流B的步骤中直接引用输入参数:
在工作流B的后续操作里,通过引擎提供的语法直接调用这些输入参数即可。例如:- 若引擎使用双大括号语法:
{{ inputs.customer_id }} - 若使用美元符号语法:
${workflow.input.order_detail}
- 若引擎使用双大括号语法:
示例参考:
假设工作流A的Invoke workflow配置如下:
目标工作流:工作流B 请求体: { "customer_name": "张三", "order_amount": 199 }
在工作流B中定义customer_name和order_amount两个输入参数后,就可以在B的任意步骤中直接引用这些值,比如在“发送通知”步骤里填写:客户{{ inputs.customer_name }}的订单金额为{{ inputs.order_amount }}元,就能正常获取到传递的数据。
排查要点:
如果仍无法获取数据,检查以下两点:
- 工作流B是否遗漏了对应名称的输入参数定义;
- 工作流A传递的字段名与工作流B的参数名是否完全匹配(注意区分大小写)。
内容的提问来源于stack exchange,提问作者John_Martin
相关产品推荐
相关产品推荐

