执行工作流
执行工作流 用于触发并执行指定的工作流(或宏定义),支持向子工作流传递参数、执行完成后发送通知,常用于把多个流程组合成一个完整的自动化链路。
指令标识:ExecuteWorkflow
指令类型:系统操作指令
指令描述:触发并执行指定工作流,支持参数传递与消息通知
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。执行工作流 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「执行工作流」节点,在右侧表单填写执行类型、工作流 ID 和入参 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.executeWorkflow(type="WORKFLOW", workflowId="...") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 需要把一个复杂业务拆分成多个子工作流,再由主流程统一调度。
- 需要复用已有工作流,避免重复编排相同的逻辑。
- 需要基于事件或上游结果触发另一个流程执行。
- 已确定要执行的工作流 ID(或宏定义 ID)。
- 子工作流的开始节点入参格式已明确,准备好对应的 JSON 入参。
- 当前执行环境有权限访问并触发目标工作流。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:主流程调用一个名为”数据清洗”的子工作流。按 4 步即可跑起来:
- 在主流程画布中添加 执行工作流 指令。
- 在右侧配置面板填写 执行类型(
WORKFLOW)和 工作流 ID:
执行类型:WORKFLOW工作流 ID:workflow-3605a8e3-0- 在 子工作流入参 中填写传给子工作流开始节点的 JSON 入参。
- 在 将结果保存至 填写变量名(例如
wfResult),点击运行查看执行结果。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 执行类型 | type | String | 是 | - | 支持 WORKFLOW(执行工作流)和 MACRODEF(执行宏定义)两种类型 |
| 当前工作流 ID | workflowId | String | 是 | - | 需要执行的工作流唯一标识 ID |
| 对应子工作流入参 | inputParams | String(JSON) | 否 | - | 传递给子工作流开始节点的参数配置,JSON 格式,定义子工作流的初始输入参数 |
| 是否发送消息 | sendMsgFlag | Boolean | 否 | false | 执行完成后是否发送通知消息 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | String | 否 | 工作流执行结果,字符串类型 |
- 目标工作流被成功触发并执行完成。
- 运行日志中没有权限、参数或执行相关错误。
- 配置了输出变量时,结果变量中包含子工作流返回内容。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| 工作流未触发 | 工作流 ID 错误或不存在 | 核对「工作流 ID」是否正确 |
| 子工作流报参数错误 | 入参格式与开始节点定义不一致 | 检查 inputParams 的 JSON 结构与字段类型 |
| 报无权限 | 当前环境无权访问目标工作流 | 确认工作流与当前流程在同一空间且已发布 |
| 执行异常中断 | 子工作流内部节点报错 | 进入子工作流运行日志定位具体出错节点 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 触发执行一个子工作流,结果保存到 wfResultbots.executeWorkflow( type="WORKFLOW", workflowId="workflow-3605a8e3-0", outKey="wfResult",)如需向子工作流传入参数并发送通知:
bots.executeWorkflow( type="WORKFLOW", workflowId="workflow-3605a8e3-0", inputParams='{"userId": 123, "action": "start"}', sendMsgFlag=True, outKey="wfResult",)可视化表单里的「执行类型」「当前工作流 ID」「对应子工作流入参」「是否发送消息」「将结果保存至」分别对应代码里的 type、workflowId、inputParams、sendMsgFlag、outKey。
如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:输入参数应该如何设置?
Section titled “Q1:输入参数应该如何设置?”A: 入参建议根据子工作流开始节点的定义合理设置,避免参数缺失或类型错误,运行前先校验 JSON 结构的完整性。
Q2:WORKFLOW 和 MACRODEF 有什么区别?
Section titled “Q2:WORKFLOW 和 MACRODEF 有什么区别?”A: WORKFLOW 表示执行一个完整工作流,MACRODEF 表示执行宏定义,请根据目标类型选择对应的执行类型。
Q3:工作流执行异常如何处理?
Section titled “Q3:工作流执行异常如何处理?”A: 建议记录日志并对异常进行捕获处理,进入子工作流的运行日志可定位具体出错的节点。