Ir al contenido

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.

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();
}
}
}

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();
}
}
}

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));
}
}

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.

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.

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.

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.