WorkflowUtils
Clase de utilidad con métodos auxiliares estáticos para consultar instancias de proceso de workflow y sus entradas de log. Todos los métodos son estáticos y pueden lanzar WorkflowException si el motor de workflow no está disponible.
Consultas de instancias de proceso
Sección titulada «Consultas de instancias de proceso»findProcessInstancesByNode
Sección titulada «findProcessInstancesByNode»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findProcessInstancesByNode(String uuid) | List |
Devuelve todas las instancias de proceso asociadas al nodo del repositorio identificado por el UUID indicado. El UUID puede pertenecer a un documento, carpeta, correo o record. Devuelve una lista vacía si el UUID es null o no se encuentran instancias. |
- uuid: El UUID del documento, carpeta, correo o record.
Ejemplo:
package com.openkm;
import com.openkm.bean.workflow.ProcessInstance;import com.openkm.util.WorkflowUtils;
public class Test {
public static void main(String[] args) { try { String uuid = "d50133e3-dbfa-4d01-a109-28785cd48f40"; for (ProcessInstance pi : WorkflowUtils.findProcessInstancesByNode(uuid)) { System.out.println(pi); } } catch (Exception e) { e.printStackTrace(); } }}findLogsByProcessInstance
Sección titulada «findLogsByProcessInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findLogsByProcessInstance(long processInstanceId) | List |
Devuelve las entradas de log asociadas al ID de instancia de proceso indicado, ordenadas por fecha. Cada entrada contiene: processDefinitionId, processDefinitionName, processInstanceId, token, date, type e info. |
- processInstanceId: El ID numérico de la instancia de proceso.
Ejemplo:
package com.openkm;
import com.openkm.bean.workflow.ProcessInstance;import com.openkm.util.WorkflowUtils;import com.openkm.util.WorkflowUtils.ProcessInstanceLogEntry;
public class Test {
public static void main(String[] args) { try { String uuid = "d50133e3-dbfa-4d01-a109-28785cd48f40"; for (ProcessInstance pi : WorkflowUtils.findProcessInstancesByNode(uuid)) { System.out.println("Process instance: " + pi.getId()); for (ProcessInstanceLogEntry entry : WorkflowUtils.findLogsByProcessInstance(pi.getId())) { System.out.println(" [" + entry.getDate() + "] " + entry.getType() + ": " + entry.getInfo()); } } } catch (Exception e) { e.printStackTrace(); } }}getRunningWorkflowNodes
Sección titulada «getRunningWorkflowNodes»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getRunningWorkflowNodes() | Set |
Devuelve el conjunto de UUID de nodos del repositorio que tienen al menos una instancia de proceso de workflow en ejecución (aún no finalizada). Devuelve un conjunto vacío si no hay ningún workflow en ejecución actualmente o si el motor de workflow no está disponible. |
Ejemplo:
package com.openkm;
import com.openkm.util.WorkflowUtils;import java.util.Set;
public class Test {
public static void main(String[] args) { Set<String> runningNodes = WorkflowUtils.getRunningWorkflowNodes(); System.out.println("Nodes with active workflows: " + runningNodes.size()); runningNodes.forEach(uuid -> System.out.println(" " + uuid)); }}Conversión de instancias de proceso
Sección titulada «Conversión de instancias de proceso»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| copy(ProcessInstanceRef piRef) | ProcessInstance | Convierte un objeto adaptador ProcessInstanceRef específico de jBPM a un bean ProcessInstance de OpenKM. Usado internamente por la capa adaptadora de workflow. |
Clases internas
Sección titulada «Clases internas»ProcessInstanceLogEntry
Sección titulada «ProcessInstanceLogEntry»Una clase de datos que representa una única entrada de log de una instancia de proceso. Campos:
processInstanceId(long): El ID de la instancia de proceso.processDefinitionId(long): El ID de la definición de proceso.processDefinitionName(String): El nombre de la definición de proceso.token(String): El identificador del token de workflow.date(Date): La marca de tiempo de la entrada de log.type(String): El tipo de evento de log.info(String): Información adicional sobre el evento.
DiagramInfo
Sección titulada «DiagramInfo»Contiene información de disposición de un diagrama de proceso de workflow. Campos:
width(int): Ancho total del diagrama en píxeles.height(int): Alto total del diagrama en píxeles.nodeMap(Map<String, DiagramNodeInfo>): Mapa del nombre de nodo a su información de disposición.
Método: getNodes() — devuelve una lista no modificable de todas las entradas DiagramNodeInfo.
DiagramNodeInfo
Sección titulada «DiagramNodeInfo»Contiene información de posición y tamaño de un único nodo en un diagrama de workflow. Campos:
name(String): El nombre del nodo.x(int): Posición horizontal en píxeles.y(int): Posición vertical en píxeles.width(int): Ancho del nodo en píxeles.height(int): Alto del nodo en píxeles.