Синхронизация по состоянию объекта
В этом разделе приведен пример узла робота синхронизации, распознающего достижение документом заданного состояния жизненного цикла.
Рабочий процесс для справки
SynchronizeOn State.xml
Описание
Выражение отслеживает состояние документа и инициируется, когда документ достигает состояния released (выпущен). Роботом отслеживается событие wt.lifecycle.lifeCycleServiceEvent.STATE_CHANGE и класс Windchill wt.doc.WTDocument.
Инструкции
Создайте документ в системной папке в шаблоне рабочего процесса. Определите переменную с именем docNumber и присвойте ей значение по умолчанию, эквивалентное номеру созданного документа. Обратите внимание, что эта переменная относится к типу java.lang.String.
Скопируйте следующий код:
//fetch the object that emitted the State_change event.
wt.doc.WTDocument targetObject = ( wt.doc.WTDocument ) ((wt.events.KeyedEvent) event).getEventTarget();
//Set the result to null so the robot keeps running until the condition is satisfied.
result=nul
l
//check if the object that emitted the state_change event is the same document that the Robot is looking for.
// docNumber is a variable that holds the number of the document that the Robot is looking for.
if ( targetObject.getNumber( ).equals ((( wt.doc.WTDocument ) primaryBusinessObject). getNumber ())){
//check if the document has been released. If so, fire the next activity else the result is null so the robot keeps running //in the background.
if ( targetObject.getLifeCycleState ().equals ( wt.lifecycle.State.RELEASED )){
result = "released";
}
}