Synchronisation sur l'état d'un objet
Cette rubrique propose un exemple d'utilisation du noeud d'automate de synchronisation pour savoir lorsqu'un document atteint un état de cycle de vie spécifique.
Processus référencé
SynchronizeOn State.xml
Description
L'expression analyse l'état d'un document et se déclenche lors de l'officialisation de ce dernier. L'événement vérifié par l'automate est wt.lifecycle.lifeCycleServiceEvent.STATE_CHANGE et la classe Windchill vérifiée par l'automate est wt.doc.WTDocument.
Instructions
Créez un document dans le dossier System dans le modèle de processus. Définissez une variable appelée docNumber et attribuez-lui une valeur par défaut équivalente au numéro du document que vous venez de créer. Notez que cette variable est de type java.lang.String.
Copiez le code suivant :
//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";
}
}