jBPM Decision Node

jBPM Decision Node

   决策节点的执行时的逻辑如下:

   1. 先判断是否设置了decisionDelegation的类。如果设置了,则调用该代理的decide方法来返回相应的transition的名称。根据该名称从本节点找相应的transition,如果为空则从父节点找相应的transition。如果仍不存在,则抛异常。

   2. 是否设置了decisionExpression语句。如果设置则执行该表达式并根据返回的值找到相应的transition。

   3. 如果存在设置condition的transition,且前两步仍没有找到相应的transition,则对节点的所有transition扫描,返回第一个设置condition且为True的transition。

   4. 如果仍没有找到相应的transition,则返回默认的transition。
       默认的transition定义为:
           A) 如果该节点定义了transition,则第一个transition即为默认值;
           B) 如果没有定义transition,则返回父节点的默认transition。

 

http://savegod.spaces.live.com/Blog/cns!54158A19561EC233!522.entry

你可能感兴趣的:(jbpm,Blog)