条件、校验和自动化
条件、校验器和后置动作分别回答三个问题:任务是否可以走某条路径、用户能否执行当前操作、操作成功后还要做什么。
1. 三类配置的执行边界
| 配置 | 作用 | 采购案例 |
|---|---|---|
| Condition | 决定转换是否可用或网关走哪条分支 | Amount 是否达到财务审批阈值 |
| Validator | 在操作提交前验证数据和状态 | 审批意见必填 |
| Post Function / Action | 操作成功后执行副作用 | 发送通知、更新字段、调用 Webhook |
能用结构化字段比较完成的条件,不应改写成难以维护的自定义脚本。跨系统副作用应放在操作成功后的自动化阶段。
2. 配置金额条件
- 选中 Amount Gateway 的一条转换。
- 添加字段比较条件。
- 从候选项选择 Amount。
- 配置数字比较操作符和阈值。
- 在另一条分支配置互补条件,或明确设置默认分支。
images/pd-condition-amount-01.webp请在条件编辑器中确认自定义字段引用,不在手册中固定未经验证的字段表达式语法。
3. 配置操作和表单
人工节点可按当前能力配置 Assign、Transfer、Assign to Me、Multi Assign 或使用 Custom Form 的业务操作。每个操作应明确:
- 显示名称
- 使用的表单
- 目标转换或目标节点
- 允许执行的权限
- 提交前校验器
- 成功后的自动化
审批通过和拒绝应是工作流操作,不要在 Task Form 中放置一个只改页面状态的普通按钮。
4. 添加校验器
采购审批可在 Approve 或 Reject 操作上添加:
- 审批意见必填
- 指定字段必填
- 父任务或子任务状态满足要求
- 当前任务字段比较通过
images/pd-validator-operation-02.webp校验失败时应阻止操作并返回可理解的提示。表单 Required 与操作 Validator 可以同时使用:前者改善输入体验,后者保障服务端业务规则。
5. 添加自动化
常见后置动作包括:
- 发送任务通知
- 设置任务字段或详情值
- 在字段间复制值
- 调用 Webhook
- 创建或更新 Business Object 数据
用流转自动记录审核结果
采购案例中的审核结果应由流转写入,而不是让审批人在表单中手工选择:
| 流转 | Function | Field Name | Field Value |
|---|---|---|---|
| Department Review · Approve | Set Task Field | Department Review Result | Approved |
| Department Review · Reject | Set Task Field | Department Review Result | Rejected |
| Finance Review · Approve | Set Task Field | Finance Review Result | Approved |
| Finance Review · Reject | Set Task Field | Finance Review Result | Rejected |
配置一条流转时,在右侧 Functions 点击添加,选择 Set Task Field,再选择目标字段并填写固定值。Function 只会在校验通过且该流转成功执行后应用,因此字段值能够准确表示实际执行的路径。Result 字段建议使用包含 Approved、Rejected 两个选项的 Select,并在 Create / Transition Form 中保持不可编辑,在 View Form 中只读展示。
可用动作由当前插件提供。配置 Webhook 或模型数据动作时,先明确幂等性、失败策略、敏感参数和重试影响;不要把密钥直接写进可见配置或日志。
images/pd-post-actions-03.webp6. 测试矩阵
| 场景 | 预期结果 |
|---|---|
| Amount 低于阈值 | Department Review 通过后直接 Approved |
| Amount 达到阈值 | 进入 Finance Review |
| 审批意见为空 | 操作被校验器阻止 |
| Department Review · Approve / Reject | Department Review Result 写入 Approved / Rejected |
| Finance Review · Approve / Reject | Finance Review Result 写入 Approved / Rejected |
| Reject | 进入 Rejected,并按配置通知 Applicant |
| Webhook 失败 | 按配置返回明确失败或进入可追踪重试,不重复更新数据 |
7. 常见问题
条件始终不命中:检查字段类型、空值、比较值类型和操作符;从编辑器重新选择字段并运行校验。
页面显示必填但接口仍能绕过:把关键规则配置为工作流 Validator,而不只依赖前端表单属性。
自动化执行两次:检查操作是否重复提交、Webhook 是否幂等,以及动作是否同时配置在多个阶段。