OKMWorkflow
In all methods you’ll see a parameter named “token”. Because the Cron tasks are executed in the background without authentication, the methods used in this scenario might use the token parameter. In the default application execution context you must use the “null” value, which indicates that the application must use the “user session”.
Methods
Section titled “Methods”registerProcessDefinition
Section titled “registerProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| registerProcessDefinition(String token, InputStream is) | void | Registers a new workflow. |
Example:
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
Section titled “deleteProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| deleteProcessDefinition(String token, long processDefinitionId) | void | Deletes a workflow. |
- The parameter processDefinitionId value is a valid workflow process definition ID**.**
Example:
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
Section titled “getProcessDefinitionImage”Description:
| Method | Return values | Description |
|---|---|---|
| getProcessDefinitionImage(String token, long processDefinitionId, String node) | byte[] | Returns an image of a workflow process definition. |
- The parameter processDefinitionId value is a valid workflow process definition ID.
- The parameter node is a node that has a workflow in execution.
Example:
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
Section titled “getProcessDefinitionForms”Description:
| Method | Return values | Description |
|---|---|---|
| Map<String, List |
Map<String, List |
Returns a map of all workflow form definitions. |
- The parameter processDefinitionId value is a valid workflow process definition ID.
Example:
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
Section titled “getProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| ProcessDefinition getProcessDefinition(String token, long processDefinitionId) | ProcessDefinition | Returns a workflow process definition. |
- The parameter processDefinitionId value is a valid workflow process definition ID.
Example:
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
Section titled “runProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| runProcessDefinition(String token, long processDefinitionId, String uuid, List |
ProcessInstance | Executes a workflow on a node. |
- The parameter processDefinitionId value is a valid workflow process definition.
- The parameter uuid can be any document, mail, folder or record UUID.
- The parameter values are form element values needed to start the workflow (not all workflows need form values to start).
Example:
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 (without node association)
Section titled “runProcessDefinition (without node association)”Description:
| Method | Return values | Description |
|---|---|---|
| runProcessDefinition(String token, long processDefinitionId, List |
ProcessInstance | Executes a workflow without associating it to a specific node. |
- The parameter processDefinitionId value is a valid workflow process definition.
- The parameter values are form element values needed to start the workflow (not all workflows need form values to start).
Example:
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
Section titled “sendProcessInstanceSignal”Description:
| Method | Return values | Description |
|---|---|---|
| sendProcessInstanceSignal(String token, long processInstanceId, String transitionName) | ProcessInstance | Sends a signal to a process instance. |
- The parameter processInstanceId value is a valid workflow process instance ID.
- The parameter uuid can be any document, mail, folder or record UUID.
- The parameter transitionName is the chosen transition.
Example:
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
Section titled “endProcessInstance”Description:
| Method | Return values | Description |
|---|---|---|
| endProcessInstance(String token, long processInstanceId) | void | Ends a process instance. |
- The parameter processInstanceId value is a valid workflow process instance.
Example:
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
Section titled “deleteProcessInstance”Description:
| Method | Return values | Description |
|---|---|---|
| deleteProcessInstance(String token, long processInstanceId) | void | Deletes a process instance. |
- The parameter processInstanceId value is a valid workflow process instance.
Example:
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
Section titled “findProcessInstances”Description:
| Method | Return values | Description |
|---|---|---|
| findProcessInstances(String token, long processDefinitionId) | List |
Retrieves a list of all process instances for some registered workflow definitions. |
- The parameter processDefinitionId value is a valid workflow process definition.
Example:
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
Section titled “findAllProcessDefinitions”Description:
| Method | Return values | Description |
|---|---|---|
| findAllProcessDefinitions(String token, long processDefinitionId) | List |
Retrieves a list of all registered workflow definitions. |
Example:
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
Section titled “findLatestProcessDefinitions”Description:
| Method | Return values | Description |
|---|---|---|
| findLatestProcessDefinitions(String token) | List |
Retrieves a list of the latest workflow definitions. |
Example:
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
Section titled “findLastProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| findLastProcessDefinition(String token, String name) | ProcessDefinition | Retrieves the last workflow definition of a specific workflow. |
- The parameter name identifies a specific workflow definition group.
Example:
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
Section titled “getProcessInstance”Description:
| Method | Return values | Description |
|---|---|---|
| getProcessInstance(String token, long processInstanceId) | ProcessInstance | Returns the process instance. |
Example:
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
Section titled “suspendProcessInstance”Description:
| Method | Return values | Description |
|---|---|---|
| suspendProcessInstance(String token, long processInstanceId) | void | Suspends the process instance. |
Example:
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
Section titled “resumeProcessInstance”Description:
| Method | Return values | Description |
|---|---|---|
| resumeProcessInstance(String token, long processInstanceId) | void | Resumes the process instance. |
Example:
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
Section titled “findUserTaskInstances”Description:
| Method | Return values | Description |
|---|---|---|
| findUserTaskInstances(String token, int offset, int limit) | List |
Retrieves a list of task instances assigned to the user. |
Example:
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
Section titled “findPooledTaskInstances”Description:
| Method | Return values | Description |
|---|---|---|
| findPooledTaskInstances(String token, int offset, int limit) | List |
Retrieves a list of pooled task instances assigned to the user. |
Example:
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
Section titled “findTaskInstances”Description:
| Method | Return values | Description |
|---|---|---|
| findTaskInstances(String token, long processInstanceId) | List |
Retrieves a list of task instances for a process instance. |
Example:
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
Section titled “setTaskInstanceValues”Description:
| Method | Return values | Description |
|---|---|---|
| setTaskInstanceValues(String token, long taskInstanceId, String transitionName, List |
void | Sets a task instance’s values. |
- The parameter taskInstanceId is a valid task instance ID.
- The parameter transitionName is the chosen transition.
- The parameter values are form element values needed to start the workflow (not all workflow tasks need form values).
Example:
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
Section titled “getTaskInstance”Description:
| Method | Return values | Description |
|---|---|---|
| getTaskInstance(String token, long taskInstanceId) | TaskInstance | Returns a task instance. |
Example:
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
Section titled “setTaskInstanceActorId”Description:
| Method | Return values | Description |
|---|---|---|
| setTaskInstanceActorId(String token, long taskInstanceId, String actorId) | void | Sets the actor for a task instance. |
- The parameter taskInstanceId is a valid task instance ID.
- The parameter actorId must be a valid OpenKM user ID.
Example:
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
Section titled “startTaskInstance”Description:
| Method | Return values | Description |
|---|---|---|
| startTaskInstance(String token, long taskInstanceId) | void | Starts a task instance. |
- The parameter taskInstanceId is a valid task instance ID.
Example:
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
Section titled “endTaskInstance”Description:
| Method | Return values | Description |
|---|---|---|
| endTaskInstance(String token, long taskInstanceId, String transitionName) | void | Ends a task instance. |
- The parameter taskInstanceId is a valid task instance ID.
- The parameter transitionName is a transaction name.
Example:
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
Section titled “getToken”Description:
| Method | Return values | Description |
|---|---|---|
| getToken(String token, long tokenId) | Token | Returns a token object. |
- The parameter tokenId is a valid token ID.
Example:
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
Section titled “sendTokenSignal”Description:
| Method | Return values | Description |
|---|---|---|
| sendTokenSignal(String token, long tokenId, String transitionName) | Token | Sends a signal. |
- The parameter tokenId is a valid token ID.
- The parameter transitionName is a transition name.
Example:
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(); } }}