jBPM4 PVM的流程定义模型与过程调度
2009-09-21 00:00:00 来源:WEB开发网TransitionEndActivity销毁移出节点的scope execution,接着执行TransitionTake:
Java代码
//如果activity存在scope execution的话,则销毁,返回父execution
if (activity.isLocalScope()) {
propagatingExecution = execution.destroyScope(activity);
}
//父execution执行TRANSITION_TAKE原子操作
propagatingExecution.performAtomicOperation(AtomicOperation.
TRANSITION_TAKE);
TransitionTake触发转移线的take事件,并执行TransitionStartActivity:
Java代码
execution.fire(Event.TAKE,transition,AtomicOperation.
TRANSITION_START_ACTIVITY);
TransitionStartActivity设置execution位置为目标节点,创建scope execution并执行ExecutionActivity:
Java代码
//设置当前execution的位置
execution.setActivity(activity);
ExecutionImpl propagatingExecution = execution;
//如果activity存在scope的话,则创建scope execution
if (activity.isLocalScope()) {
propagatingExecution = execution.createScope(activity);
}
propagatingExecution.setTransition(null);
//scope execution执行EXECUTE_ACTIVITY原子操作
propagatingExecution.performAtomicOperation(AtomicOperation.
EXECUTE_ACTIVITY);
上述5种原子操作构成了一个完整的execution节点间移动过程,分别是:执行节点、触发流转、结束源节点、执行转移线和开始目标节点。如果节点是自动节点(没有等待状态),则触发流转(signal)这一步操作不会执行。
存在结构块的情况下,TransitionEndActivity会依次触发父节点的结束事件,前提是下一个目标节点未被父节点所包含,如果包含,则属于结构块内的节点移动;TransitionStartActivity会依次触发父节点的开始事件,前提同样是上一个源节点未被该父节点所包含,不属于结构块内的节点移动。
MoveToParentActivity使用在节点执行或signal时没有指定传播方式,同时又找不到移出的转移线时,会去执行父节点的signal操作。MoveToChildActivity使用在节点含有子节点时,将execution转移至子节点执行。这两种原子操作共同构成了进入和结束结构块时execution的移动行为。
图片看不清楚?请点击这里查看原图(大图)。
- ››JBPM4 4.0 使用问题 -- 1:结合Sqlserver使用问题...
- ››JBPM4 4.0 使用问题 -- 2: jbpm 4 在Tomcat 6.0...
- ››JBPM 4.0 使用问题 -- 3:也谈 JBPM 4 整合Sprin...
- ››Jbpm 4.1 与Spring 集成
- ››jBPM-Side流程设计器架构说明
- ››jBPM4 PVM的流程定义模型与过程调度
- ››JBPM基于Spring系统工作流平台整合1------版...
- ››JBPM基于Spring系统工作流平台整合2------整...
- ››JBPM基于Spring系统工作流平台整合3------J...
- ››JBPM基于Spring系统工作流平台整合4------系...
- ››JBPM基于Spring系统工作流平台整合5------流...
- ››JBPM基于Spring系统工作流平台整合6------系...
更多精彩
赞助商链接