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 > Muestras de transición > Transición Completar tarea
  
Transición Completar tarea
Muchas actividades se distribuyen según los recuentos de votos de Recuentos de votos. Por ejemplo, puede asignarse una tarea de aprobación a varios usuarios. Para completar la tarea, el usuario debe aprobar o rechazar el objeto en revisión. La opción que se seleccione determina la forma en la que avanza el proceso de trabajo.
Los recuentos de votos se configuran normalmente añadiendo una expresión en la ficha Distribución. Sin embargo, puede usar la transición Completar tarea en la ficha Transiciones para obtener un control más detallado sobre el proceso de recuento.
Ejemplo
Puede crear una plantilla de proceso de trabajo sencilla para usarla cuando revise determinados objetos. La primera actividad requiere que los usuarios revisen el objeto y que lo aprueben o rechacen.
Si se aprueba el objeto, se mueve al estado Aprobado. Si se rechaza, se mueve al estado Rechazado:
Todos los participantes son obligatorios. Los participantes de la actividad son usuarios en el rol de responsable de control de calidad y el rol de ingeniero:
Para mover el objeto al estado Aprobado, todos los participantes deben votar "Aprobar".
Si cualquiera de los 2 usuarios en el rol de responsable de control de calidad vota "Rechazar", la actividad se completa y el objeto se mueve al estado Rechazado.
Para que esto se cumpla, puede introducir la siguiente expresión para la transición Completar tarea:
java.util.Locale locale=wt.util.WTContext.getContext().getLocale();
int number=wt.workflow.work.WfTally.count(self,"Reject","Quality Manager",locale);
if(number>=2)
{
wt.workflow.work.WorkflowHelper.service.completeActivity(self,"Reject");
}
API Completar tarea
Votos de recuento por rol:

/*
* @param self : WfAssignedActivity ObjectReference
* @param eventToMatch : Routing option to tally
* @param assigneeRole : Role for which you want to tally the routing option
* @param locale : The locale in which you have specified the assignee role
* @return int : Number of votes from user in the specified role
* @throws WTException
*/
public static int count(ObjectReference self,String eventToMatch,String assigneeRole,Locale locale) throws WTException
Votos de recuento por evento de distribución:

/*
* @param self : WfAssignedActivity ObjectReference
* @param eventToMatch : Routing option to tally
* @param int : Number of votes for the routing event in the activity
* @throws WTException
*/
public static int count(ObjectReference self,String eventToMatch) throws WTException
Complete la actividad cuando se cumplan las condiciones:

/*
Supported API : True
Method to complete the activity
* @param self : WfAssignedActivity ObjectReference
* @param events : Routing event to follow
* @throws WTException
*/
public void completeActivity(ObjectReference self,String events) throws WTException