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