在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
的详细说明和示例。