Sincronización en instancias de procesos
En este tema se proporciona un ejemplo de un nodo de robot de sincronización que espera un cambio en el estado de actividad.
Procesos de trabajo de referencia
SynchronizationAccrossProcessInstances.xml
SynchronizeProcessInstance.xml
Descripción
Este tipo de sincronización es muy similar a la de procesos independientes; la única diferencia es que, en este caso, el robot espera el evento ACTIVITY_STATE_CHANGED de wt.workflow.engine.WfProcess en lugar de WfAssignedActivity. En la expresión siguiente, el robot comprueba si el proceso que ha emitido el evento State_Changed es el mismo en el que está interesado. En caso afirmativo, realiza una distribución basada en estado del proceso.
Instrucciones
processName es una variable definida en el proceso padre del robot. Representa el nombre de un proceso en el que está interesado el robot.
|
Es posible que más de un proceso tenga el nombre "processName".
|
Copie el código siguiente:
//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";
}
}