跳到主要内容

调用流程

调用流程节点用于触发并执行另一个工作流,支持传参和接收返回值。

概述

将可复用的子逻辑(如登录、数据清洗)独立保存为工作流文件,在主流程中通过本节点调用。调用时会阻塞等待子流程执行完毕,拿到返回值后才继续下游节点。

被调用的工作流必须通过「手动执行」或「信号触发」方式启动,否则不会出现在候选列表中。

调用流程节点参数配置面板

使用方法

拖入节点后,配置以下三项:

目标工作流

下拉选择要调用的工作流。下拉框自动过滤出包含「手动执行」或「信号触发」节点的工作流——只有这两种入口能被外部调用。

携带数据

传递给子流程的 JSON 参数。子流程通过触发器的「接收数据」字段接收。

支持 {{变量名}} 引用——变量会先于 JSON 解析被替换为实际值,因此可以在 JSON 的任意位置嵌入上游变量:

{
"url": "{{targetUrl}}",
"orderId": "{{orderId}}",
"config": {
"timeout": 5000,
"retry": {{retryCount}}
}
}

假设上游 retryCount = 3,实际传给子流程的 JSON 为:

{
"url": "https://shop.example.com/order/12345",
"orderId": "12345",
"config": {
"timeout": 5000,
"retry": 3
}
}

注意{{retryCount}} 不加引号,替换后为数字 3。如果写成 "{{retryCount}}",替换后为字符串 "3"。根据子流程对类型的期望决定是否加引号。

数据格式为 JSON,支持尾部逗号、单引号、注释等宽松语法。

输出变量

存储子流程返回值的变量名。子流程通过「返回」节点返回的数据,会被存入该变量,供主流程下游节点通过 {{变量名.字段}} 引用。

主流程调用完成后引用返回值:

假设输出变量填了 result,子流程返回:
{
"status": "success",
"amount": 99.00,
"items": ["A", "B"]
}

主流程下游引用:
{{result.status}} → "success"
{{result.amount}} → 99.00
{{result.items}} → ["A", "B"]

完整示例

子流程(被调用方):

  1. 入口为「手动执行」,接收数据data
  2. 子流程中通过 {{data.url}}{{data.orderId}} 访问主流程传来的参数
  3. 执行完毕后,「返回」节点返回结果:
{
"status": "success",
"amount": "99.00"
}

主流程(调用方):

  1. 「调用流程」节点:目标工作流选子流程,携带数据填入带变量的 JSON,输出变量填 result
  2. 调用完成后,通过 {{result.status}}{{result.amount}} 引用返回值
  3. 如果输出变量未填写,返回值会被丢弃,子流程仅作为副作用执行

参数参考

参数类型默认值说明
目标工作流下拉选择必填。仅列出包含手动执行或信号触发的工作流
携带数据JSON传递给子流程的参数。支持 {{变量名}} 引用,变量先替换再解析 JSON
输出变量文本存储返回值的变量名。不填则丢弃返回值

常见问题

下拉框中找不到目标工作流

现象:目标工作流已保存,但下拉框中没有显示。

原因:目标工作流缺少手动执行或信号触发节点。

解决:在目标工作流中添加「手动执行」或「信号触发」节点后保存。

子流程收不到传递的参数

现象:携带数据填写了 JSON,但子流程中变量为空。

原因:子流程触发器的「接收数据」字段未填写,或填写名称与子流程中引用的变量名不一致。

解决:确认子流程触发器「接收数据」已填写(如 data),且子流程中通过 {{data.字段名}} 引用。