条件分支与子流程
本章介绍如何让动作流按条件分流,以及如何把一串动作组织为子步骤。
1. 条件分支
在画布上放置条件分支节点,产生两条路径:成立分支与不成立分支。连线以不同样式区分:成立为实线,不成立为虚线。
条件使用表达式书写,见表达式编辑器。
🔴 表达式模式下不能配置"不成立"分支。 表达式本身没有取反能力,为不成立分支配置了内容时,保存会被拦截。
需要"条件不成立时执行另一组动作"的处理方式:放置两个条件节点,分别书写正向条件与其反向条件,各自在成立分支下挂动作。例如一个判断"金额大于一万",另一个判断"金额不大于一万"。
两个分支都可以留空。留空的分支不执行任何动作,画布上显示占位提示,属正常状态。若两个分支都为空,编辑器会给出警告——该条件节点没有实际作用。
2. 动作出口分支
部分动作执行后有不同结果,例如联动表单打开单据时,使用者可能选中了某条记录,也可能取消。
这类动作后会自动按结果分出若干路径,不需要额外放置条件节点。把后续动作分别接到对应的结果分支下即可。
走哪条路由动作自身的执行结果决定,不需要书写表达式。
3. 续接
除单独放置条件节点外,也可直接在某个动作节点之后接一个条件。
效果与单独放置条件节点相同,区别在于画布上更紧凑,语义是"执行完该动作后紧接着判断"。
配置方式与普通条件分支相同。
4. 子流程
可为某个动作节点挂一串只包含动作的后续步骤,形成父动作与子步骤的嵌套结构。
| 规则 | 说明 |
|---|---|
| 子流程内只能放动作 | 不能放条件分支。需要判断时请使用续接,把条件接在动作之后,再在条件之下挂动作 |
| 父动作被跳过时子流程整体跳过 | 父动作因前置条件不成立而未执行时,其子步骤也不执行,不需要额外判断 |
典型场景:某动作是一个大步骤(例如新建关联单据),其后紧跟几个只有在它成功后才有意义的收尾动作。
5. 三者的选择
| 意图 | 选择 |
|---|---|
| 让流程判断后走不同路径 | 条件分支节点 |
| 表达"执行完该动作后才判断" | 把条件续接在动作之后 |
| 表达"这几个动作是该动作的附属步骤,与它一同启用或跳过" | 挂子流程 |
三者在画布上的位置不同,拖拽方式一致,见设计器画布。
6. 常见问题
| 问题 | 说明 |
|---|---|
| 条件配好了但没有生效 | 检查是否两个分支都留空;或是否为不成立分支配置了内容导致保存被拦截 |
| 需要在子流程中加判断 | 改用续接,子流程本身不接受条件节点 |
| 需要"否则"逻辑 | 放置两个条件节点,分别书写正反两个条件,见第 1 节 |