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 > Options de comptabilisation des votes > Exemple d'expression de comptage contenant plusieurs appels de comptage
  
Exemple d'expression de comptage contenant plusieurs appels de comptage
Cette rubrique propose un exemple d'utilisation de plusieurs appels de comptage dans une expression et d'une procédure permettant d'éviter que le même événement ne soit déclenché deux fois.
Processus référencé
TallyExpressionWithTwoTallyCalls.xml
Description
Une expression peut contenir plusieurs appels de comptage. Dans ce cas, un même événement de routage risque d'être ajouté plusieurs fois à la liste d'événements. Pour éviter ceci, utilisez la méthode setEvents( ) comme indiqué dans l'exemple. Cette méthode collecte les événements de routage non dupliqués, afin que chaque événement de routage de la liste ne soit déclenché qu'une seule fois. L'expression ci-après effectue un sondage sur le nombre de fois où l'événement "Test" a été choisi et stocke le résultat dans un vecteur tallyResults. Elle réalise ensuite un sondage sur le pourcentage d'intervenants ayant choisi "Modifier," plutôt que les deux autres événements. Le résultat du sondage est ensuite ajouté au vecteur tallyResults. L'utilisation de la méthode setEvents empêche l'événement "Modifier" (qui apparaît dans les deux appels de comptage) d'apparaître deux fois dans la liste des événements à déclencher. Le résultat est alors affecté au vecteur tallyResults.
Instructions
Cette activité peut comporter plusieurs événements de routage. Seuls les votes des intervenants sélectionnés comme étant obligatoires dans la définition du processus sont utilisés dans le sondage.
Copiez le code suivant :
//Create a vector that will hold all the non-duplicated UserEvents chosen for this activity.
Vector tallyResults = new Vector( );
//Get the object representing this activity.
wt.workflow.work.WfAssignedActivity mySelf = (( wt.workflow.work.WfAssignedActivity ) self.getObject( ));
//Get all the UserEvents for this activity. The resulting Vector may hold duplicate values of some events.
Vector userEvents = (Vector) mySelf.getUserEventList( );
//If "Test" receives 2 or more of the required votes, get "Test", else get "Modify".
//Collect the non-duplicated events into the Vector tallyResults ( i.e add only those events that do not already exist in the vector.
WfTally.setEvents(tallyResults , wt.workflow.work.WfTally.number(self , WfTally.GTE, 2, "Test", "Modify"));
//If "Modify" receives more than 35% of the required votes, get "Modify" else get "Approve and Release".
//Collect the non-duplicated events into the Vector tallyResults ( i.e add only those events that do not already exist in the vector.
WfTally.setEvents(tallyResults , wt.workflow.work.WfTally.percent(self , WfTally.GT, 35, "Modify", "Approve and Release"));
//set result to the tallyResults Vector.
result= tallyResults