在进程实例之间进行同步
本主题提供了“同步”自动机节点监听活动状态更改的示例。
参考工作流
SynchronizationAccrossProcessInstances.xml
SynchronizeProcessInstance.xml
说明
此类型的同步与独立进程之间的同步非常类似,唯一的不同在于,在这种同步中,自动机监听的是 wt.workflow.engine.WfProcess 而非 WfAssignedActivity 的 ACTIVITY_STATE_CHANGED 事件。在下面的表达式中,自动机检查激发 State_Changed 事件的进程是否是所关心的那个进程。如果是,它将基于进程的状态执行路由。
指示
processName 是在自动机的父进程中定义的变量。它代表自动机要监听的进程的名称。
* 
可能有多个进程都具有名称 "processName"。
复制下列代码:
//get the process that emitted the event
wt.workflow.engine.WfProcess processInstance = ( wt.workflow.engine.WfProcess ) ((wt.events.KeyedEvent)event).getEventTarget();
//Check if the process that triggered the event is the same one we are interested in.
if ( processInstance.getName( ).equals(processName)){
//If so, check for the state of the process. Set result to "completed" if the process has been successfully completed
// and to "terminated" if the process has been terminated. In all other cases, check again.
if ( wt.workflow.engine.WfState.CLOSED_COMPLETED_EXECUTED.equals(processInstance.getState( ))){
result= "completed";
}
else if ( wt.workflow.engine.WfState.CLOSED_TERMINATED.equals(processInstance.getState( ))){
result= "terminated";
}
}
这对您有帮助吗?