Skip to content
Other versions

Loading…

Workflow samples

First, you must create the web service object:

OKMWebservices ws = OKMWebservicesFactory.getInstance(host);

Then you should log in using the method “login”. You can access the “login” method from the web service object “ws” as shown below:

ws.login(user, password);

At this point you can use all the Workflow methods from the “workflow” class as shown below:

ws.workflow.registerProcessDefinition(is);

For most examples, the Purchase workflow sample has been used.

Description:

Method Return values Description
registerProcessDefinition(InputStream is) void Registers a new workflow.

Example:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
InputStream is = new FileInputStream("/home/openkm/Purchase.par");
ws.workflow.registerProcessDefinition(is);
IOUtils.closeQuietly(is);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
deleteProcessDefinition(long pdId) void Deletes a workflow.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 1; // Valid workflow process definition
ws.workflow.deleteProcessDefinition(pdId);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getProcessDefinition(long pdId) void Returns a workflow process definition.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 1; // Valid workflow process definition
ProcessDefinition pd = ws.workflow.getProcessDefinition(pdId);
System.out.println(pd);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
runProcessDefinition(long pdId, String uuid, Map<String, String> propertiesMap) ProcessInstance Executes a workflow on a node.
  • The parameter pdId value is a valid workflow process definition id.
  • The parameter uuid can be any document, mail, folder or record UUID.
  • The propertiesMap values are the form element values needed to start the workflow (not all workflows need form values to start).

Example:

package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 8041; // Some valid workflow process definition id
// Case as part of starting workflow are required form parameter
Map<String, String> properties = new HashMap<>();
properties.put("price", "1000");
properties.put("description", "some description here");
ws.workflow.runProcessDefinition(pdId, "f86cc22d-9b50-434f-a940-b04cea9c0048", properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
runProcessDefinition(long pdId, Map<String, String> propertiesMap) ProcessInstance Executes a workflow without associating it to a node.
  • The parameter pdId value is a valid workflow process definition id.
  • The propertiesMap values are the form element values needed to start the workflow (not all workflows need form values to start).

Example:

package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 8041; // Some valid workflow process definition id
// Case as part of starting workflow are required form parameter
Map<String, String> properties = new HashMap<>();
properties.put("price", "1000");
properties.put("description", "some description here");
ws.workflow.runProcessDefinition(pdId, properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findProcessInstances(long pdId) List Retrieves a list of all process instances for some registered workflow definitions.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.bean.workflow.ProcessInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all workflow definitions
for (ProcessDefinition pd : ws.workflow.findAllProcessDefinitions()) {
System.out.println("WF definition: " + pd);
// Get all process of some workflow definition
for (ProcessInstance pi : ws.workflow.findProcessInstances(pd.getId())) {
System.out.println("PI: " + pi);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findAllProcessDefinitions() List Retrieves a list of all registered workflow definitions.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (ProcessDefinition pd : ws.workflow.findAllProcessDefinitions()) {
System.out.println(pd);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findLatestProcessDefinitions() List Retrieves a list of the latest workflow definitions.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all latest workflow definitions
for (ProcessDefinition pd : ws.workflow.findLatestProcessDefinitions()) {
System.out.println("WF definition: " + pd);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findLastProcessDefinition(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.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
ProcessDefinition pd = ws.workflow.findLastProcessDefinition("purchase");
System.out.println("WF definition: " + pd);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getProcessInstance(long piId) ProcessInstance Returns the process instance.
  • The parameter piId is a valid process instance id.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long piId = 8108; // Some valid process instance id
ProcessInstance pi = ws.workflow.getProcessInstance(piId);
System.out.println("PI: " + pi);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findUserTaskInstances() TaskInstanceResultSet Retrieves a list of task instances assigned to the user.

Example:

package com.openkm.example;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.bean.workflow.TaskInstanceResultSet;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
TaskInstanceResultSet results = ws.workflow.findUserTaskInstances();
System.out.println("Total: " + results.getTotal());
for (TaskInstance ti : results.getResults()) {
System.out.println(ti);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findTaskInstances(long piId) List Retrieves a list of task instances for a process instance id.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all task instances of some process instance
long piId = 8108; // Some valid process instance id
for (TaskInstance ti : ws.workflow.findTaskInstances(piId)) {
System.out.println(ti);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
setTaskInstanceValues(long pdId, long tiId, String tiName, String transName, Map<String, String> properties) void Sets task instance values.
  • The parameter pdId is the process definition id.
  • The parameter tiId is a valid task instance id.
  • The parameter tiName is the name of the task instance.
  • The parameter transName is the chosen transition.
  • The properties values are the form element values needed for the workflow task (not all workflow tasks need form values).

Example:

package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 2;
long tiId = 8110; // Some valid task instance id
TaskInstance ti = ws.workflow.getTaskInstance(tiId);
Map<String, String> properties = new HashMap<>();
ws.workflow.setTaskInstanceValues(pdId, ti.getId(), ti.getName(), "aprove", properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getTaskInstance(long tiId) TaskInstance Returns a task instance.
  • The parameter tiId is a valid task instance id.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
TaskInstance ti = ws.workflow.getTaskInstance(tiId);
System.out.println(ti);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
startTaskInstance(long tiId) void Starts a task instance.
  • The parameter tiId is a valid task instance id.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
ws.workflow.startTaskInstance(tiId);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
setTaskInstanceActorId(long tiId, String actorId) void Sets the actor for a task instance.
  • The parameter tiId is a valid task instance id.
  • The parameter actorId must be a valid OpenKM user id.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
ws.workflow.setTaskInstanceActorId(tiId, "okmAdmin");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
endTaskInstance(long tiId, String transName) void Ends a task instance.
  • The parameter tiId is a valid task instance id.
  • The parameter transName is a transaction name.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
ws.workflow.endTaskInstance(tiId, "end");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getProcessDefinitionForms(long pdId) Map<String, List> Returns a map with all the process definition forms.

Example:

package com.openkm;
import java.util.List;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.form.FormElement;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, List<FormElement>> forms = ws.workflow.getProcessDefinitionForms(12);
for (String key : forms.keySet()) {
System.out.println("Key:" + key);
for (FormElement fe : forms.get(key)) {
System.out.println("Fe:" + fe);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getProcessDefinitionImage(String pdId, String uuid) String Returns a workflow diagram in Base64.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
String tiId = "1";
String res = ws.workflow.getProcessDefinitionImage(tiId, "82ed9618-11eb-4b1f-87e7-f853ee60c3c0");
System.out.println(res);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findPooledTaskInstances() TaskInstanceResultSet Retrieves a list of all pooled task instances.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (TaskInstance ti : ws.workflow.findPooledTaskInstances()) {
System.out.println(ti);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
findProcessInstancesByNode(String uuid) List Retrieves a list of all process instances by node for some registered workflow definitions.
  • The parameter uuid can be any document, mail, folder or record UUID.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.bean.workflow.ProcessInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all workflow definitions
for (ProcessDefinition pd : ws.workflow.findAllProcessDefinitions()) {
System.out.println("WF definition: " + pd);
// Get all process of some workflow definition
for (ProcessInstance pi : ws.workflow.findProcessInstances(pd.getId())) {
System.out.println("PI: " + pi);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getSuggestBoxKeyValue(long pdId, String uuid, String taskName, String propertyName, String key) String Returns the suggestBox value for a key.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 4;
String taskName = "task-elaboration";
System.out.println(ws.workflow.getSuggestBoxKeyValue(pdId, "301de803-f4ae-48f1-8505-e83b26716956", taskName, "suggestbox", "es"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getSuggestBoxKeyValuesFiltered(long pdId, String uuid, String taskName, String propertyName, String filter) Map<String, String>
Retrieves a map (key-value pairs) of suggestBox values.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> values = ws.workflow.getSuggestBoxKeyValuesFiltered(4, "301de803-f4ae-48f1-8505-e83b26716956", "task-elaboration", "suggestbox", "pai");
for (String key : values.keySet()) {
String value = values.get(key);
System.out.println(key + ":" + value);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
searchAssignedTasks(Calendar start, Calendar end, String status, Long procDefId, int offset, int limit) ProcessInstanceResultSet Searches for workflow process instances with tasks assigned to the current user, filtered by date range, status, and process definition.

Example:

import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
import com.openkm.sdk4j.bean.ProcessInstanceResultSet;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Calendar start = Calendar.getInstance();
start.add(Calendar.MONTH, -1);
Calendar end = Calendar.getInstance();
ProcessInstanceResultSet result = ws.workflow.searchAssignedTasks(start, end, null, null, 0, 10);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
searchStartedByMe(Calendar start, Calendar end, String status, Long procDefId, int offset, int limit) ProcessInstanceResultSet Searches for workflow process instances started by the current user, filtered by date range, status, and process definition.

Example:

import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
import com.openkm.sdk4j.bean.ProcessInstanceResultSet;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Calendar start = Calendar.getInstance();
start.add(Calendar.MONTH, -1);
Calendar end = Calendar.getInstance();
ProcessInstanceResultSet result = ws.workflow.searchStartedByMe(start, end, null, null, 0, 10);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
searchOverview(Calendar start, Calendar end, String status, Long procDefId, String initiator, String taskUser, int offset, int limit) ProcessInstanceResultSet Searches for workflow process instances across all users, filtered by date range, status, process definition, initiator, and assigned task user. Intended for administrative overviews.

Example:

import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
import com.openkm.sdk4j.bean.ProcessInstanceResultSet;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Calendar start = Calendar.getInstance();
start.add(Calendar.MONTH, -1);
Calendar end = Calendar.getInstance();
ProcessInstanceResultSet result = ws.workflow.searchOverview(start, end, null, null, null, null, 0, 10);
} catch (Exception e) {
e.printStackTrace();
}
}
}