Базовое администрирование > Поддержка совместной работы > Администрирование рабочих процессов > Инструменты рабочего процесса > Администрирование шаблонов рабочего процесса > Примеры кодов рабочего процесса > Примеры синхронизации робота > Синхронизация пользовательских событий рабочего процесса
  
Синхронизация пользовательских событий рабочего процесса
В этом разделе приведен пример узла робота синхронизации, который останавливает процесс до инициации определяемого пользователем события в другом процессе.
Рабочие процессы для справки
SynchronizationOfUserDefinedEvents.xml
UserEventsWorkflow.xml
Описание
Можно настроить робот таким образом, чтобы выполнение процесса останавливалось до тех пор, пока не будет инициировано конкретное определяемое пользователем событие в другом процессе. В приведенном ниже выражении робот отслеживает событие ACTIVITY_STATE_CHANGED в задаче и проверяет, было ли инициировано какое-либо из трех определяемых пользователем событий: тепловой анализ, анализ усталости или анализ напряжений. Для каждого из трех событий имеется соответствующее событие робота, которое необходимо инициировать и которое добавляется в вектор tempResult. В заключение результату присваивается значение вектора tempResult. Теперь роботом инициируются все события, содержащиеся в результирующем векторе.
Инструкции
Скопируйте следующий код:
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;