4.5 决策流
4.5.1 名词解释
决策流的定义
规则流 (Ruleflow) 是UDM 中用于编排和控制一组规则集 (Rule Sets) 执行顺序与逻辑的图形化工作流。主要用来解决复杂业务逻辑下多个规则集之间应该如何协作的问题。

决策流节点说明
| 元素 | 图标示意 | 说明 |
|---|---|---|
| 开始节点 | ![]() |
流程的入口点,只有一个,表示规则流的启动 |
| 结束节点 | ![]() |
流程的出口点。可以有多个,代表不同的结束状态(如“批准”、“拒绝”、“待人工审核”) |
| 规则节点 | ![]() |
代表一个具体的规则集 ,当流程执行到此节点时,会激活并执行该规则集中的所有规则。 |
| 操作任务节点 | ![]() |
操作任务节点允许在此节点上执行一段规则 |
| 路由决策节点 | ![]() |
决策路由节点,根据一个布尔表达式(谓词)决定流程走向哪一条路径,通常连接 if-then-else逻辑。 |
| 分支节点 | ![]() |
分支节点将串行改为并行分支,引擎在运行时将从此节点流出的任务将作为并行任务执行,通常需要有聚合节点成对出现 |
| 聚合节点 | ![]() |
将多条并行或分支的路径汇合到一起 |
| 子流程节点 | ![]() |
调用另一个独立的规则流,实现流程的嵌套和复用 |
节点属性面板说明
- 初始操作/最终操作:您可在任务上指定初始操作和最终操作。 初始操作在处理任务之前执行,而最终操作在处理任务之后执行。 定义初始操作和最终操作的方式与为操作任务定义操作的方式相同。
- 规则任务:在规则节点中可以选择要执行的规则文件或者规则目录,可在要执行的规则文件框中通过拖拽方式调整要执行的规则文件顺序
- 算法:提供TurboRete、顺序、快速路径三种执行算法选项。
| 算法 | 说明 |
|---|---|
| TurboRete | TurboRete算法是UDM自主实现的类似Rete的规则执行算法,共享条件匹配,更高的性能。支持对象更新。 |
| 顺序 | 顺序算法是UDM自主实现的顺序的规则执行算法,该算法按照规则文件指定的顺序执行规则。每个规则独立评估执行,不支持对象更新。 |
| 快速路径 | 快速路径算法是UDM自主实现的快速路径的规则执行算法,执行逻辑类似TurboRete,不支持对象更新。 |
- 退出条件:即互斥组功能,提供无、规则、规则实例三种退出方式选项。
| 退出条件 | 说明 |
|---|---|
| 无 | 当前规则节点指定的所有规则执行完毕即结束。 |
| 规则 | 当前规则节点指定的规则文件执行匹配可执行动作后,即结束,将不执行剩余规则文件。 |
| 规则实例 | 当前规则节点指定的规则文件中一个if-else创建一个规则实例,当预定义循环时,会产生多个if-else规则实例,当任一规则实例的条件匹配到可执行动作后,即结束,将不执行剩余规则实例和规则。 |
- 排序 :提供缺省、字面值、优先级三种规则执行顺序选项。
| 排序 | 说明 |
|---|---|
| 缺省 | 按照当前规则节点绑定的规则文件的优先级从大到小顺序执行,当规则文件优先级相同时,按照规则文件的整个路径字符串正序执行。 |
| 字面值 | 按照当前规则节点绑定的规则文件的排序执行,如果选择的是规则目录,则按照目录中规则文件的整个路径字符串正序执行。 |
| 优先级 | 按照当前规则节点绑定的规则文件的优先级从大到小顺序执行,当规则文件优先级相同时,按照规则文件的整个路径字符串正序执行。 |
一个任务执行顺序为:先执行初始操作,再执行主体,最后为最终操作。
流程连线路径说明
流程连线路径作为节点间的线段,驱动着流程的流转,他遵循以下规律:
- 仅有【开始节点】不允许有流入连线,其它节点均不限制流入连线的数量
- 仅有【结束节点】不允许有流出连线,其它节点均不限制流出连线的数量
连线执行条件说明
- 连线条件问题,仅【分支节点】不允许在流出连线上设置条件表达式,其它节点的流出连线均可绑定条件。
- 同一节点的所有流出连线所绑定的条件,有且只有一条连线上条件为空作为默认值ELSE、保证流程可继续向后跳转,条件表达式不主动检测其互斥性和业务合理性。
4.5.2 示例










