三、 decision节点
decision节点是一个路径多重选择。也为作为一个决定。一个decision节点有多个流程转移并且当一个流程执行到此节点时,将会自动评估来决定执行
哪一个流程转移路线。
一个decision节点可以通过以下三种方式来配置:
3.1、条件decision。
此种方式时在decision节点的transition元素中的conditions元素来判断执行那个一个transition。流程会执行第一个判断结果为true或者没有配置
condition元素的transition。
condition元素的属性
属性 | 类型 | 默认 | 是否必须 | 描述 |
---|---|---|---|---|
expr | 表达式 | 必须 | script that will be evaluated in the specified expression language. | |
lang | 表达式语言 | the default-expression-language taken from the script-manager configuration | 可选 | the language in whichexpr is to be evaluated. |
实例:

实例代码:
<process name="DecisionConditions" >
<start>
<transition to="evaluate document" />
</start>
<decision name="evaluate document">
<transition to="submit document">
<condition expr="#{content=="good"}" />
</transition>
<transition to="try again">
<condition expr="#{content=="not so good"}" />
</transition>
<transition to="give up" />
</decision>
<state name="submit document" />
<state name="try again" />
<state name="give up" />
</process>
通过以下代码启动流程实例后:
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("content", "good");
ProcessInstance processInstance =
executionService.startProcessInstanceByKey("DecisionConditions", variables);
submit document节点将会执行。