Administration de base > Prise en charge de la collaboration > Administration des processus > Outils de processus > Administration des modèles de processus > Exemples de codes de processus > Exemples d'automate de synchronisation > Synchronisation des instances de processus
  
Synchronisation des instances de processus
Cette rubrique propose un exemple d'utilisation du noeud d'automate de synchronisation pour analyser une modification d'état de l'activité.
Processus référencés
SynchronizationAccrossProcessInstances.xml
SynchronizeProcessInstance.xml
Description
Ce type de synchronisation est très similaire à la synchronisation de processus indépendants. La seule différence est que l'automate scrute l'événement ACTIVITY_STATE_CHANGED de wt.workflow.engine.WfProcess au lieu de WfAssignedActivity. Dans l'expression ci-dessous, l'automate vérifie que le processus ayant émis l'événement State_Changed est le même que celui qui l'intéresse. Si tel est le cas, il effectue un routage basé sur l'état du processus.
Instructions
La variable processName est définie dans le processus parent de l'automate. C'est le nom d'un processus auquel l'automate s'intéresse.
* 
Plusieurs processus peuvent porter le nom "processName".
Copiez le code suivant :
//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";
}
}