Synchronisierung über Prozessinstanzen
Dieses Thema liefert ein Beispiel dafür, wie ein Synchronisierungs-Robot-Knoten auf eine Änderung des Aktivitätsstatus wartet.
Referenzierte Workflows
SynchronizationAccrossProcessInstances.xml
SynchronizeProcessInstance.xml
Beschreibung
Dieser Synchronisierungstyp ähnelt der Synchronisierung von unabhängigen Prozessen. Der einzige Unterschied besteht darin, dass in diesem Fall der Robot auf das Ereignis AKTIVITÄTSSTATUS_GEÄNDERT der Klasse wt.workflow.engine.WfProcess anstatt der Klasse WfAssignedActivity wartet. Im untenstehenden Ausdruck prüft der Robot, ob der Prozess, von dem das Status_geändert-Ereignis ausgegeben wurde, derjenige ist, auf den gewartet wird. Wenn dies der Fall ist, wird ein Routing basierend auf dem Status des Prozesses durchgeführt.
Anweisungen
processName ist eine im Eltern-Prozess des Robots definierte Variable. Sie steht für den Namen des Prozesses, auf den der Robot wartet.
* 
Es ist möglich, dass mehr als ein Prozess den Namen "processName" aufweist.
Kopieren Sie den folgenden Code:
//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";
}
}
War dies hilfreich?