[SOLUCIONADO] Eliminar un workflow en Java

cancel
Showing results for 
Search instead for 
Did you mean: 
rhakaro
Member II

[SOLUCIONADO] Eliminar un workflow en Java

Hola a todos!

Tengo una duda que me está quitando el sueño. Necesito cancelar un workflow cuando se cambia el tipo a un documento (mediante la opción Cambiar tipo que hay en el detalle de un documento).

He definido un behaviour (que utilizo para muchas tareas automatizaedas), y supongo que deba añadir algún método en él (no encuentro un "OnChangeNodeTypePolicy".

A parte de no saber dónde puedo definir el código, tampoco sé como eliminar un workflow. Estoy utilizando Activiti, y parece que la clase WorkflowService tiene un método "deleteWorkflow(String workflowID)" que puede ayudarme. El caso es que no sé cómo puedo conocer el identificador del workflow a borrar. Supongo que con el tipo de workflow y el documento, pueda obtener el ID, pero ¿cómo?

¿Alguien puede guiarme un poco?

Muchas gracias, un saludo!
1 Reply
rhakaro
Member II

Re: [SOLUCIONADO] Eliminar un workflow en Java

Hola de nuevo,

Al final no era ta difícil, debí de liarme yo solo.

Os pongo cómo lo he solucionado, por si alguien tiene el mismo problema y encuentra este post (yo tengo la premisa de que un mismo documento no puede pertenecer a varias tareas del mismo workflow.

<java>
// Se recorren los workflows asociados al documento
for(WorkflowInstance wfInstance : services.getWorkflowService().getWorkflowsForContent(nodeRef, true)){
            
   WorkflowDefinition wfDefinition = wfInstance.getDefinition();

   // Si el workflow es el que estamos buscando => Se elimina y se sale del bucle
   if(wfDefinition.getTitle().equals(Constants.TITULO_WORKFLOW_A_BUSCAR)){
      
      logger.info("Encontrado workflow de tipificacion que debe ser eliminado");
      
      // Se elimina el workflow
      services.getWorkflowService().deleteWorkflow(wfInstance.getId());
      
      // Se detiene la ejecucion del bucle para que no siga recorriendo
      break;
   }
}
</java>