跳至主要内容

工作流语义化编辑

翻譯正在進行中本指南目前僅提供簡體中文版本,其他語言版本將在後續補充。

工作流 CLI 的主要目标是让用户和 AI 用业务语言维护流程图,而不是导入一整份内部 JSON。常规操作包括:进入某个工作流、查看节点、增加或删除节点、从节点 A 连接到节点 B,以及为某条连线增加 condition、validator 或 post function。

:::warning 先确认设计上下文 工作流命令会修改当前 App 的可编辑设计版本。执行任何带 --yes 的命令前,先运行 spark-designer task current 和 spark-designer task workflow current。 :::

1. 选择工作流​

spark-designer task app use spark-sample
spark-designer task workflow list
spark-designer task workflow use "Purchase Approval"
spark-designer task workflow current

选择后,后续命令可以省略工作流 ID 或 Key:

spark-designer task workflow describe --lang zh-CN
spark-designer task workflow nodes

也可以在单条命令中显式指定工作流:

spark-designer task workflow describe "Purchase Approval"

2. 理解节点和连线编号​

spark-designer task workflow describe --lang zh-CN

describe 按流程顺序显示节点,并为出口连线生成稳定的本次读取编号。后续可以使用编号、transition ID 或精确名称操作连线:

例如,Purchase Approval 会输出类似下面的流程描述:

节点类型出口流转
Start开始1. Submit Request → Department Review
Department Review人工环节2. Approve → Amount Gateway、3. Reject → Rejected
Amount Gateway排他网关4. Low Amount → Approved、5. High Amount → Finance Review
Finance Review人工环节6. Approve → Approved、7. Reject → Rejected
Approved结束无
Rejected结束无

这张表就是流程在命令行中的可读表示:节点是行,出口流转显示操作名称和目标节点,前面的数字用于继续查看或修改对应连线。需要交给脚本或 AI 处理时使用结构化输出:

spark-designer task workflow describe --json

JSON 会返回 workflow 摘要、按流程顺序排列的节点,以及每条 outgoing transition 的编号、ID、来源、目标、表单、优先级和 condition/validation/function 数量。

spark-designer task workflow transition 2
spark-designer task workflow rules 2

查看节点入线和出线数量:

spark-designer task workflow nodes
spark-designer task workflow node "Department Review"

在执行多次图修改后,应重新运行 describe,因为连线编号可能随图结构变化。

3. 增加和删除节点​

增加人工环节,并绑定一个已存在的可复用 Step:

spark-designer task workflow add-node \
--type status \
--name "Manager Review" \
--step "Manager Review" \
--yes

增加结束节点:

spark-designer task workflow add-node \
--type end \
--name Approved \
--yes

支持的节点类型:

类型说明
start开始节点;一个工作流只能有一个
status人工处理环节,可绑定 MANUAL_ACTIVITY Step
end结束节点,可绑定 END Step
timer定时节点
sub-task子任务节点
exclusive排他网关
parallel并行网关
gather汇聚网关
swimlane泳道展示元素
comment注释展示元素

删除节点会同时删除与它相连的 transition:

spark-designer task workflow remove-node "Manager Review" --yes

开始节点受保护,不能删除。

4. 从节点 A 连接到节点 B​

spark-designer task workflow connect \
Start \
"Manager Review" \
--name Submit \
--yes

从人工环节连接到结束节点,并为操作绑定表单:

spark-designer task workflow connect \
"Manager Review" \
Approved \
--name Approve \
--form managerReview \
--yes

删除连线:

spark-designer task workflow disconnect 3 --yes

CLI 会提前检查常见非法结构:节点不能连接自己、不能连接回开始节点、开始节点只能有一条出口、泳道和注释不能作为 transition 端点。

5. 查看连线规则能力​

每个 Spark 环境可能注册不同的规则扩展。不要依赖静态名单,先读取服务端 Catalog:

spark-designer task workflow rules 2
spark-designer task workflow rule-types
spark-designer task workflow rule-types condition CustomFieldCondition
spark-designer task workflow rule-types validation FieldRequiredValidation
spark-designer task workflow rule-types function SetTaskDetailFunction

rules <transition> 同时展示:

  • 当前连线已经配置的规则。
  • 可添加的 condition、validation 和 post function 类型。
  • 每种规则需要的字段、数据来源以及是否允许重复。

字段、表单、节点、角色、部门和用户等引用会按当前 App 的业务名称、Code 或 ID 解析。

6. 配置 Condition​

Purchase Approval 的高金额分支可以这样配置:

spark-designer task workflow add-condition 5 \
--type CustomFieldCondition \
--label "Amount at least 10000" \
--field-id Amount \
--operator ge \
--origin-value 10000 \
--yes

对于 Catalog 中没有专用 flag 的字段,可以重复使用 --set:

spark-designer task workflow add-condition 5 \
--type CustomFieldCondition \
--set fieldId=Amount \
--set operator=ge \
--set originValue=10000 \
--yes

删除第 1 条 condition:

spark-designer task workflow remove-condition 5 1 --yes

7. 配置 Validator​

要求部门审批必须填写意见:

spark-designer task workflow add-validator 2 \
--type FieldRequiredValidation \
--label "Department review comment is required" \
--field-name "Department Review Comment" \
--error-message "Please enter the department review comment." \
--yes

删除 validator:

spark-designer task workflow remove-validator 2 1 --yes

Validator 在允许流转前执行;校验失败时不会进入目标节点。

8. 配置 Post Function​

部门审批通过后,将结果字段设置为 Approved:

spark-designer task workflow add-post-function 2 \
--type SetTaskDetailFunction \
--label "Set Department Review Result" \
--field-id "Department Review Result" \
--origin-value Approved \
--yes

驳回连线可以使用同一规则类型把值设置为 Rejected。删除 post function:

spark-designer task workflow remove-post-function 2 1 --yes

Post function 在 transition 执行过程中改变任务数据、处理人、父子任务状态或触发扩展动作。具体字段以 rule-types function <type> 返回的 Catalog 为准。

9. 完整检查流程​

spark-designer task current
spark-designer task workflow current
spark-designer task workflow describe --lang zh-CN
spark-designer task workflow rules 2
spark-designer task workflow rules 5
spark-designer task check workflow-config --yes
spark-designer task package export --output purchase-approval-backup.json

低层级的 workflow save --file 和 update-* --file 仍可用于包迁移、备份恢复和精确 JSON round trip,但不应作为正常编辑工作流的首选方式。

继续阅读:任务运行期与 Worklist。