在jd-easyflow中,inclusive
通常与流程中的条件分支(conditions
)配置相关,用于控制多个条件分支的执行逻辑。当conditionType
设置为inclusive
时,表示多个条件分支中的所有条件都会被评估,而不是像exclusive
那样,一旦某个条件满足就终止评估。
以下是如何在jd-easyflow的JSON流程文件中定义使用inclusive
的事件触发机制的示例:
-
定义条件分支:
在post
配置中,使用conditions
字段来定义多个条件分支。每个条件分支包含when
(条件表达式)和to
(满足条件时跳转到的节点)。 -
设置
inclusive
模式:
在conditions
字段中,可以设置conditionType
为inclusive
,这样所有的条件都会被评估。 -
配置默认分支:
如果没有任何条件满足,可以使用defaultTo
字段指定默认的分支。
以下是一个具体的JSON流程文件示例,展示了如何使用inclusive
:
{"id": "flow_with_inclusive","name": "Flow with Inclusive Conditions","nodes": [{"id": "start_node","name": "Start Node","action": {"createExp": "new com.example.StartNodeAction()"},"start": true,"post": {"to": "decision_node"}},{"id": "decision_node","name": "Decision Node","post": {"conditions": [{"when": "${condition1}","to": "node1"},{"when": "${condition2}","to": "node2"}],"conditionType": "inclusive","defaultTo": "default_node"}},{"id": "node1","name": "Node 1","action": {"createExp": "new com.example.Node1Action()"},"post": {"to": "end_node"}},{"id": "node2","name": "Node 2","action": {"createExp": "new com.example.Node2Action()"},"post": {"to": "end_node"}},{"id": "default_node","name": "Default Node","action": {"createExp": "new com.example.DefaultNodeAction()"},"post": {"to": "end_node"}},{"id": "end_node","name": "End Node","action": {"createExp": "new com.example.EndNodeAction()"}}]
}
在这个示例中,decision_node
是一个决策节点,它有两个条件分支,都设置为inclusive
模式。这意味着流程引擎会评估condition1
和condition2
,如果它们都满足,那么流程可以同时进入node1
和node2
。如果没有条件满足,流程将进入default_node
。这种配置允许更复杂的流程控制逻辑,使得流程可以根据多个条件动态地分支到不同的节点。
以上是如何在jd-easyflow中使用inclusive
的详细说明和示例。