Sincronización de eventos del proceso de trabajo personalizado
En este tema se proporciona un ejemplo de nodo de robot de sincronización que detiene un proceso hasta el arranque de un evento específico definido por un usuario en otro proceso.
Procesos de trabajo de referencia
SynchronizationOfUserDefinedEvents.xml
UserEventsWorkflow.xml
Descripción
Es posible configurar un robot para que detenga el desarrollo de un proceso hasta que se arranque un determinado evento definido por el usuario en otro proceso. En la expresión siguiente, el robot espera el evento ACTIVITY_STATE_CHANGED de una actividad y comprueba si se ha arrancado alguno de los tres eventos definidos por el usuario (análisis térmico, análisis de fatiga o análisis de estrés). Para cada uno de estos eventos, dispone de un evento correspondiente propio que se debe arrancar y que añade al vector: tempResult. Por último, se define el resultado en Vector tempResult. Ahora, el robot arranca todos los eventos que contiene el Vector resultante.
Instrucciones
Copie el código siguiente:
Vector tempResult = new Vector ();
//Get activity that caused the event
WfAssignedActivity activity = (WfAssignedActivity) (( wt.events.KeyedEvent) event).getEventTarget();
//Check if the activity and process are the one's we're looking for
if (activity.getName().equals(activityName)){
//Check if the Parent process of the activity is the one we are interested in.
if (activity.getParentProcess().getName().equals(processName)){
//Check if the list of events for the activity contains the event "thermal analysis".
//If so, add to the Vector tempResult, the appropriate event to fire for the robot.
if (activity.getAllEvents().contains("thermal analysis")){
tempResult.addElement("thermal analysis");
}
//Check if the list of events for the activity contains the event "fatigue analysis".
//If so, add to the Vector tempResult, appropriate event for the robot.
if (activity.getAllEvents().contains("fatigue analysis")){
tempResult.addElement("fatigue analysis");
}
//Check if the list of events for the activity contains the event "stress analysis".
//If so, add to the Vector tempResult, appropriate event for the robot.
if (activity.getAllEvents().contains("stress analysis")){
tempResult.addElement("stress analysis");
}
}
}
//Set result to the Vector tempResult.
//Note that in the previous steps, all the events that the robot must fire were added to tempResult.
result = tempResult;