OKMWorkflow
En todos los métodos verá un parámetro llamado “token”. Como las tareas de Cron se ejecutan en segundo plano sin autenticación, los métodos usados en ese escenario pueden usar el parámetro token. En el contexto de ejecución por defecto de la aplicación debe usar el valor “null”, que indica que la aplicación debe usar la “sesión de usuario”.
Métodos
Sección titulada «Métodos»registerProcessDefinition
Sección titulada «registerProcessDefinition»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| registerProcessDefinition(String token, InputStream is) | void | Registra un nuevo workflow. |
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import com.openkm.util.ContextWrapper;import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMWorkflow;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class); InputStream is = new FileInputStream("/opt/files/Purchase.par") okmWorkflow.registerProcessDefinition(null, is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}deleteProcessDefinition
Sección titulada «deleteProcessDefinition»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| deleteProcessDefinition(String token, long processDefinitionId) | void | Elimina un workflow. |
- El valor del parámetro processDefinitionId es un ID de definición de proceso de workflow válido**.**
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class); long pdId = 5; // Valid workflow process definition okmWorkflow.deleteProcessDefinition(null, pdId); } catch (Exception e) { e.printStackTrace(); } }}getProcessDefinitionImage
Sección titulada «getProcessDefinitionImage»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getProcessDefinitionImage(String token, long processDefinitionId, String node) | byte[] | Devuelve una imagen de una definición de proceso de workflow. |
- El valor del parámetro processDefinitionId es un ID de definición de proceso de workflow válido.
- El parámetro node es un nodo que tiene un workflow en ejecución.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;import org.apache.commons.io.IOUtils;
import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileOutputStream;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pdId = 5; // Valid workflow process definition byte[] img = okmWorkflow.getProcessDefinitionImage(null, pdId, "/okm:root/sample.pdf"); ByteArrayInputStream in = new ByteArrayInputStream(img); FileOutputStream out = new FileOutputStream(new File("/home/test/img.jpg")); IOUtils.copy(in, out); IOUtils.closeQuietly(in); IOUtils.closeQuietly(out); } catch (Exception e) { e.printStackTrace(); } }}getProcessDefinitionForms
Sección titulada «getProcessDefinitionForms»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| Map<String, List |
Map<String, List |
Devuelve un mapa de todas las definiciones de formularios del workflow. |
- El valor del parámetro processDefinitionId es un ID de definición de proceso de workflow válido.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.form.FormElement;import com.openkm.util.ContextWrapper;
import java.util.List;import java.util.Map;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pdId = 5; // Valid workflow process definition Map<String, List<FormElement>> map = okmWorkflow.getProcessDefinitionForms(null, pdId); for (String key : map.keySet()) { System.out.println("group:" + key); for (FormElement fe : map.get(key)) { System.out.println(fe); } } } catch (Exception e) { e.printStackTrace(); } }}getProcessDefinition
Sección titulada «getProcessDefinition»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| ProcessDefinition getProcessDefinition(String token, long processDefinitionId) | ProcessDefinition | Devuelve una definición de proceso de workflow. |
- El valor del parámetro processDefinitionId es un ID de definición de proceso de workflow válido.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.ProcessDefinition;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pdId = 5; // Valid workflow process definition ProcessDefinition pd = okmWorkflow.getProcessDefinition(null, pdId); System.out.println(pd); } catch (Exception e) { e.printStackTrace(); } }}runProcessDefinition
Sección titulada «runProcessDefinition»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| runProcessDefinition(String token, long processDefinitionId, String uuid, List |
ProcessInstance | Ejecuta un workflow sobre un nodo. |
- El valor del parámetro processDefinitionId es una definición de proceso de workflow válida.
- El parámetro uuid puede ser el UUID de cualquier documento, correo, carpeta o record.
- El parámetro values son los valores de los elementos de formulario necesarios para iniciar el workflow (no todos los workflows necesitan valores de formulario para iniciarse).
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.form.FormElement;import com.openkm.bean.form.Input;import com.openkm.bean.form.TextArea;import com.openkm.util.ContextWrapper;
import java.util.ArrayList;import java.util.List;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pdId = 8041; // Some valid workflow process definition id List<FormElement> feList = new ArrayList<>(); // Case as part of starting workflow are required form parameter Input price = new Input(); price.setName("price"); price.setValue("1000"); feList.add(price); TextArea textArea = new TextArea(); textArea.setName("description"); textArea.setValue("some description here"); feList.add(textArea); okmWorkflow.runProcessDefinition(null, pdId, "f86cc22d-9b50-434f-a940-b04cea9c0048", feList); } catch (Exception e) { e.printStackTrace(); } }}runProcessDefinition (sin asociación a nodo)
Sección titulada «runProcessDefinition (sin asociación a nodo)»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| runProcessDefinition(String token, long processDefinitionId, List |
ProcessInstance | Ejecuta un workflow sin asociarlo a un nodo específico. |
- El valor del parámetro processDefinitionId es una definición de proceso de workflow válida.
- El parámetro values son los valores de los elementos de formulario necesarios para iniciar el workflow (no todos los workflows necesitan valores de formulario para iniciarse).
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.form.FormElement;import com.openkm.bean.form.Input;import com.openkm.bean.form.TextArea;import com.openkm.bean.workflow.ProcessInstance;import com.openkm.util.ContextWrapper;
import java.util.ArrayList;import java.util.List;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pdId = 8041; // Some valid workflow process definition id List<FormElement> feList = new ArrayList<>(); // Case where form parameters are required to start workflow Input priority = new Input(); priority.setName("priority"); priority.setValue("high"); feList.add(priority); TextArea comments = new TextArea(); comments.setName("comments"); comments.setValue("This is a standalone workflow process"); feList.add(comments); ProcessInstance pi = okmWorkflow.runProcessDefinition(null, pdId, feList); System.out.println("Process instance created: " + pi); } catch (Exception e) { e.printStackTrace(); } }}sendProcessInstanceSignal
Sección titulada «sendProcessInstanceSignal»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| sendProcessInstanceSignal(String token, long processInstanceId, String transitionName) | ProcessInstance | Envía una señal a una instancia de proceso. |
- El valor del parámetro processInstanceId es un ID de instancia de proceso de workflow válido.
- El parámetro uuid puede ser el UUID de cualquier documento, correo, carpeta o record.
- El parámetro transitionName es la transición elegida.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pId = 1046; // Some valid process instance id okmWorkflow.sendProcessInstanceSignal(null, pId, "jump2"); } catch (Exception e) { e.printStackTrace(); } }}endProcessInstance
Sección titulada «endProcessInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| endProcessInstance(String token, long processInstanceId) | void | Finaliza una instancia de proceso. |
- El valor del parámetro processInstanceId es una instancia de proceso de workflow válida.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pId = 1046; // Some valid process instance id okmWorkflow.endProcessInstance(null, pId); } catch (Exception e) { e.printStackTrace(); } }}deleteProcessInstance
Sección titulada «deleteProcessInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| deleteProcessInstance(String token, long processInstanceId) | void | Elimina una instancia de proceso. |
- El valor del parámetro processInstanceId es una instancia de proceso de workflow válida.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long pId = 1046; // Some valid process instance id okmWorkflow.deleteProcessInstance(null, pId); } catch (Exception e) { e.printStackTrace(); } }}findProcessInstances
Sección titulada «findProcessInstances»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findProcessInstances(String token, long processDefinitionId) | List |
Obtiene una lista de todas las instancias de proceso de algunas definiciones de workflow registradas. |
- El valor del parámetro processDefinitionId es una definición de proceso de workflow válida.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.ProcessDefinition;import com.openkm.bean.workflow.ProcessInstance;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
// Get all workflow definitions for (ProcessDefinition pd : okmWorkflow.findAllProcessDefinitions(null)) { System.out.println("WF definition: " + pd);
// Get all process of some workflow definition for (ProcessInstance pi : okmWorkflow.findProcessInstances(null, pd.getId())) { System.out.println("PI: " + pi); } } } catch (Exception e) { e.printStackTrace(); } }}findAllProcessDefinitions
Sección titulada «findAllProcessDefinitions»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findAllProcessDefinitions(String token, long processDefinitionId) | List |
Obtiene una lista de todas las definiciones de workflow registradas. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.ProcessDefinition;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
// Get all workflow definitions for (ProcessDefinition pd : okmWorkflow.findAllProcessDefinitions(null)) { System.out.println("WF definition: " + pd); } } catch (Exception e) { e.printStackTrace(); } }}findLatestProcessDefinitions
Sección titulada «findLatestProcessDefinitions»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findLatestProcessDefinitions(String token) | List |
Obtiene una lista de las últimas definiciones de workflow. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.ProcessDefinition;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
// Get all workflow definitions for (ProcessDefinition pd : okmWorkflow.findLatestProcessDefinitions(null)) { System.out.println("WF definition: " + pd); } } catch (Exception e) { e.printStackTrace(); } }}findLastProcessDefinition
Sección titulada «findLastProcessDefinition»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findLastProcessDefinition(String token, String name) | ProcessDefinition | Obtiene la última definición de workflow de un workflow específico. |
- El parámetro name identifica un grupo de definición de workflow específico.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.ProcessDefinition;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
ProcessDefinition pd = okmWorkflow.findLastProcessDefinition(null, "purchase"); System.out.println("WF definition: " + pd); } catch (Exception e) { e.printStackTrace(); } }}getProcessInstance
Sección titulada «getProcessInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getProcessInstance(String token, long processInstanceId) | ProcessInstance | Devuelve la instancia de proceso. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.ProcessInstance;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long piId = 8108; // Some valid process instance id ProcessInstance pi = okmWorkflow.getProcessInstance(null, piId); System.out.println("PI: " + pi); } catch (Exception e) { e.printStackTrace(); } }}suspendProcessInstance
Sección titulada «suspendProcessInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| suspendProcessInstance(String token, long processInstanceId) | void | Suspende la instancia de proceso. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long piId = 8108; // Some valid process instance id okmWorkflow.suspendProcessInstance(null, piId); } catch (Exception e) { e.printStackTrace(); } }}resumeProcessInstance
Sección titulada «resumeProcessInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| resumeProcessInstance(String token, long processInstanceId) | void | Reanuda la instancia de proceso. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long piId = 8108; // Some valid process instance id okmWorkflow.resumeProcessInstance(null, piId); } catch (Exception e) { e.printStackTrace(); } }}findUserTaskInstances
Sección titulada «findUserTaskInstances»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findUserTaskInstances(String token, int offset, int limit) | List |
Obtiene una lista de instancias de tarea asignadas al usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.TaskInstance;import com.openkm.bean.workflow.TaskInstanceResultSet;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
TaskInstanceResultSet resultSet = okmWorkflow.findUserTaskInstances(null, 0, 10); System.out.println("Total: " + resultSet.getTotal()); // Get all user task intances for (TaskInstance ti : resultSet.getResults()) { System.out.println(ti); } } catch (Exception e) { e.printStackTrace(); } }}findPooledTaskInstances
Sección titulada «findPooledTaskInstances»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findPooledTaskInstances(String token, int offset, int limit) | List |
Obtiene una lista de instancias de tarea agrupadas (pooled) asignadas al usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.TaskInstance;import com.openkm.bean.workflow.TaskInstanceResultSet;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
TaskInstanceResultSet resultSet = okmWorkflow.findPooledTaskInstances(null, 0, 10); System.out.println("Total: " + resultSet.getTotal()); // Get all user task intances for (TaskInstance ti : resultSet.getResults()) { System.out.println(ti); } } catch (Exception e) { e.printStackTrace(); } }}findTaskInstances
Sección titulada «findTaskInstances»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| findTaskInstances(String token, long processInstanceId) | List |
Obtiene una lista de instancias de tarea de una instancia de proceso. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.TaskInstance;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
// Get all user task intances long piId = 8108; // Some valid process instance id for (TaskInstance ti : okmWorkflow.findTaskInstances(null, piId)) { System.out.println(ti); } } catch (Exception e) { e.printStackTrace(); } }}setTaskInstanceValues
Sección titulada «setTaskInstanceValues»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| setTaskInstanceValues(String token, long taskInstanceId, String transitionName, List |
void | Establece los valores de una instancia de tarea. |
- El parámetro taskInstanceId es un ID de instancia de tarea válido.
- El parámetro transitionName es la transición elegida.
- El parámetro values son los valores de los elementos de formulario necesarios para iniciar el workflow (no todas las tareas de workflow necesitan valores de formulario).
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.form.FormElement;import com.openkm.util.ContextWrapper;
import java.util.ArrayList;import java.util.List;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long tiId = 8110; // Some valid task instance id List<FormElement> feList = new ArrayList<>(); okmWorkflow.setTaskInstanceValues(null, tiId, "approve", feList); } catch (Exception e) { e.printStackTrace(); } }}getTaskInstance
Sección titulada «getTaskInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getTaskInstance(String token, long taskInstanceId) | TaskInstance | Devuelve una instancia de tarea. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.TaskInstance;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long tiId = 8110; // Some valid task instance id TaskInstance ti = okmWorkflow.getTaskInstance(null, tiId); System.out.println(ti); } catch (Exception e) { e.printStackTrace(); } }}setTaskInstanceActorId
Sección titulada «setTaskInstanceActorId»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| setTaskInstanceActorId(String token, long taskInstanceId, String actorId) | void | Establece el actor de una instancia de tarea. |
- El parámetro taskInstanceId es un ID de instancia de tarea válido.
- El parámetro actorId debe ser un ID de usuario de OpenKM válido.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long tiId = 8110; // Some valid task instance id okmWorkflow.setTaskInstanceActorId(null, tiId, "okmAdmin"); } catch (Exception e) { e.printStackTrace(); } }}startTaskInstance
Sección titulada «startTaskInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| startTaskInstance(String token, long taskInstanceId) | void | Inicia una instancia de tarea. |
- El parámetro taskInstanceId es un ID de instancia de tarea válido.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long tiId = 8110; // Some valid task instance id okmWorkflow.startTaskInstance(null, tiId); } catch (Exception e) { e.printStackTrace(); } }}endTaskInstance
Sección titulada «endTaskInstance»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| endTaskInstance(String token, long taskInstanceId, String transitionName) | void | Finaliza una instancia de tarea. |
- El parámetro taskInstanceId es un ID de instancia de tarea válido.
- El parámetro transitionName es un nombre de transacción.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long tiId = 8110; // Some valid task instance id okmWorkflow.endTaskInstance(null, tiId, "end"); } catch (Exception e) { e.printStackTrace(); } }}getToken
Sección titulada «getToken»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getToken(String token, long tokenId) | Token | Devuelve un objeto token. |
- El parámetro tokenId es un ID de token válido.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.Token;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long tkId = 8110; // Some valid token id Token tk = okmWorkflow.getToken(null, tkId); System.out.println(tk); } catch (Exception e) { e.printStackTrace(); } }}sendTokenSignal
Sección titulada «sendTokenSignal»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| sendTokenSignal(String token, long tokenId, String transitionName) | Token | Envía una señal. |
- El parámetro tokenId es un ID de token válido.
- El parámetro transitionName es un nombre de transición.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.Token;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);
long tkId = 8110; // Some valid token id Token tk = okmWorkflow.sendTokenSignal(null, tkId, "end"); System.out.println(tk); } catch (Exception e) { e.printStackTrace(); } }}