OKMWorkflow
On all methods you'll see parameter named "token". Because the Cron Task are executed in background without authentication, the methods used in this scenario might use the token parameter. From default application execution context you must use "null" value what indicates to the application must use the "user session".
On special cases you might be "promoted as Administrator" using the "administrator token".
String systemToken = DbSessionManager.getInstance().getSystemToken();
Methods
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
Description:
Method | Return values | Description |
---|---|---|
deleteProcessDefinition(String token, long processDefinitionId) |
void |
Deletes a workflow. |
The parameter processDefinitionId value is a valid workflow process definition. |
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
Description:
Method | Return values | Description |
---|---|---|
getProcessDefinitionImage(String token, long processDefinitionId, String node) |
byte[] |
Returns a workflow image process definition. |
The parameter processDefinitionId value is a valid workflow process definition. The parameter node is a node with 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
Description:
Method | Return values | Description |
---|---|---|
Map<String, List<FormElement>> getProcessDefinitionForms(String token, long processDefinitionId) |
Map<String, List<FormElement>> |
Returns a map with all workflow form definitions. |
The parameter processDefinitionId value is a valid workflow process definition. |
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
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. |
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
Description:
Method | Return values | Description |
---|---|---|
runProcessDefinition(String token, long processDefinitionId, String uuid, List<FormElement> variables) |
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 for starting the workflow ( not all workflows need form values for starting ). |
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();
}
}
}
sendProcessInstanceSignal
Description:
Method | Return values | Description |
---|---|---|
sendProcessInstanceSignal(String token, long processInstanceId, String transitionName) |
ProcessInstance |
Send a signal to a process intance id. |
The parameter processInstanceId value is a valid workflow process instance. The parameter uuid can be any document, mail, folder or record UUID. The parameter transactionName is the choosen transaction. |
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
Description:
Method | Return values | Description |
---|---|---|
endProcessInstance(String token, long processInstanceId) |
void |
Ends a process intance id. |
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
Description:
Method | Return values | Description |
---|---|---|
deleteProcessInstance(String token, long processInstanceId) |
void |
Delete a process intance id. |
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
Description:
Method | Return values | Description |
---|---|---|
findProcessInstances(String token, long processDefinitionId) |
List<ProcessInstance> |
Retrieves a list of all process instances of some registered workflows definition. |
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
Description:
Method | Return values | Description |
---|---|---|
findAllProcessDefinitions(String token, long processDefinitionId) |
List<ProcessDefinition> |
Retrieves a list of all registered workflows 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
Description:
Method | Return values | Description |
---|---|---|
findLatestProcessDefinitions(String token) |
List<ProcessDefinition> |
Retrieves a list of the last workflows definitions. |
Several versions of the same workflow can be registered. |
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
Description:
Method | Return values | Description |
---|---|---|
findLastProcessDefinition(String token, String name) |
ProcessDefinition |
Retrieves last workflow definition of some specific workflow. |
The parameter name identifies an specific workflow definitions group. Several workflow definition versions that have the same name. |
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
Description:
Method | Return values | Description |
---|---|---|
getProcessInstance(String token, long processInstanceId) |
ProcessInstance |
Returns the process instance. |
The parameter processInstanceId is a valid process instance id. |
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
Description:
Method | Return values | Description |
---|---|---|
suspendProcessInstance(String token, long processInstanceId) |
void |
Suspends the process instance. |
The parameter processInstanceId is a valid process 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 piId = 8108; // Some valid process instance id
okmWorkflow.suspendProcessInstance(null, piId);
} catch (Exception e) {
e.printStackTrace();
}
}
}
resumeProcessInstance
Description:
Method | Return values | Description |
---|---|---|
resumeProcessInstance(String token, long processInstanceId) |
void |
Resume the process instance. |
The parameter processInstanceId is a valid process 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 piId = 8108; // Some valid process instance id
okmWorkflow.resumeProcessInstance(null, piId);
} catch (Exception e) {
e.printStackTrace();
}
}
}
findUserTaskInstances
Description:
Method | Return values | Description |
---|---|---|
findUserTaskInstances(String token, int offset, int limit) |
List<TaskInstance> |
Retrieves a list of task instances assigned to the user. |
The parameter "limit" and "offset" allows you to retrieve just a portion of the results of a query.
|
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
Description:
Method | Return values | Description |
---|---|---|
findPooledTaskInstances(String token, int offset, int limit) |
List<TaskInstance> |
Retrieves a list of pooled task instances assigned to the user. |
The parameter "limit" and "offset" allows you to retrieve just a portion of the results of a query.
|
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
Description:
Method | Return values | Description |
---|---|---|
findTaskInstances(String token, long processInstanceId) |
List<TaskInstance> |
Retrieves a list of task instances by process intance. |
The parameter processInstanceId is a valid process instance id. |
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
Description:
Method | Return values | Description |
---|---|---|
setTaskInstanceValues(String token, long taskInstanceId, String transitionName, List<FormElement> values) |
void |
Set a task instance values. |
The parameter taskInstanceId is a valid task instance id. The parameter transitionName is the choosen transaction. The parameter values are form element values needed for starting 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
Description:
Method | Return values | Description |
---|---|---|
getTaskInstance(String token, long taskInstanceId) |
TaskInstance |
Returns a task instance. |
The parameter taskInstanceId is a valid task instance id. |
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
Description:
Method | Return values | Description |
---|---|---|
setTaskInstanceActorId(String token, long taskInstanceId, String actorId) |
void |
Set the actor to a task instance. |
The parameter taskInstanceId is a valid task instance id. The parameter actorId must be some valid OpenKM userId. |
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
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
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
Description:
Method | Return values | Description |
---|---|---|
getToken(String token, long tokenId) |
Token |
Return 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
Description:
Method | Return values | Description |
---|---|---|
sendTokenSignal(String token, long tokenId, String transitionName) |
Token |
Send a signal. |
The parameter tokenId is a valid token id. The parameter transitionName is a transaction 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();
}
}
}