Administración básica > Soporte de la colaboración > Administración de procesos de trabajo > Herramientas de procesos de trabajo > Administración de plantillas de procesos de trabajo > Muestras de código de proceso de trabajo > Recuentos de votos > Muestra de una expresión de recuento con más de una llamada de recuento
  
Muestra de una expresión de recuento con más de una llamada de recuento
En este tema se proporciona una muestra del uso de más de una llamada de recuento en una expresión y de cómo evitar el arranque del mismo evento dos veces.
Proceso de trabajo de referencia
TallyExpressionWithTwoTallyCalls.xml
Descripción
Es posible contar con más de una llamada de recuento en la misma expresión. En este caso, existe el riesgo de añadir varias veces el mismo evento de distribución a la lista de eventos. Para evitarlo, utilice el método setEvents( ) tal como se muestra en el ejemplo. Este método recopila eventos de distribución no duplicados para que cada evento de distribución de la lista se inicie una sola vez. La siguiente expresión realiza un sondeo sobre el número de veces que se ha elegido "Test" y almacena el resultado en un vector tallyResults. A continuación, realiza un sondeo sobre el porcentaje de encargados que eligen "Modify" en lugar de los otros dos. El resultado de este sondeo se añade al vector tallyResults. El uso del método setEvents impide que el evento "Modify" (que aparece en ambas llamadas de recuento) aparezca dos veces en la lista de eventos para arrancar. A continuación, el resultado se define en el vector tallyResults.
Instrucciones
Puede existir cualquier número de eventos de distribución para esta actividad. En el sondeo sólo se utilizan los votos de los encargados que se han seleccionado como obligatorios en la definición del proceso de trabajo.
Copie el código siguiente:
//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