Workflow samples
Basics
Section titled “Basics”Suggested code sample
Section titled “Suggested code sample”First, you must create the webservice object:
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);Then should login using the method “login”. You can access the “login” method from webservice object “ws” as is shown below:
ws.login(user, password);At this point you can use all the Workflow methods from “workflow” class as is shown below:
ws.workflow.registerProcessDefinition(is);For most examples it has been used the Purchase workflow sample.
Methods
Section titled “Methods”registerProcessDefinition
Section titled “registerProcessDefinition”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(); } }}deleteProcessDefinition
Section titled “deleteProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| deleteProcessDefinition(long pdId) | void | Deletes a workflow. |
The parameter pdId value is a valid workflow process definition.
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(); } }}getProcessDefinition
Section titled “getProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| getProcessDefinition(long pdId) | void | Returns a workflow process definition. |
The parameter pdId value is a valid 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(); } }}runProcessDefinition
Section titled “runProcessDefinition”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.
The parameter uuid can be any document, mail, folder or record UUID.
The propertiesMap values are the form element values needed for starting the workflow ( not all workflows need form values for starting ).
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(); } }}findProcessInstances
Section titled “findProcessInstances”Description:
| Method | Return values | Description |
|---|---|---|
| findProcessInstances(long pdId) | List |
Retrieves a list of all process instances of some registered workflows definition. |
The parameter pdId value is a valid workflow process definition.
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(); } }}findAllProcessDefinitions
Section titled “findAllProcessDefinitions”Description:
| Method | Return values | Description |
|---|---|---|
| findAllProcessDefinitions() | List |
Retrieves a list of all registered workflows 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(); } }}findLatestProcessDefinitions
Section titled “findLatestProcessDefinitions”Description:
| Method | Return values | Description |
|---|---|---|
| findLatestProcessDefinitions() | List |
Retrieves a list of the last workflows 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(); } }}findLastProcessDefinition
Section titled “findLastProcessDefinition”Description:
| Method | Return values | Description |
|---|---|---|
| findLastProcessDefinition(String name) | ProcessDefinition | Retrieves last workflow definition of some specific workflow. |
The parameter name identifies an specific workflow definitions 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(); } }}getProcessInstance
Section titled “getProcessInstance”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(); } }}findUserTaskInstances
Section titled “findUserTaskInstances”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(); } }}findTaskInstances
Section titled “findTaskInstances”Description:
| Method | Return values | Description |
|---|---|---|
| findTaskInstances(long piId) | List |
Retrieves a list of task instances from a process instance id. |
The parameter piId is a valid 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(); } }}setTaskInstanceValues
Section titled “setTaskInstanceValues”Description:
| Method | Return values | Description |
|---|---|---|
| setTaskInstanceValues(long tiId, String transName, Map<String, String> propertiesMap) | void | Set a task instance vales. |
The parameter tiId is a valid task instance id.
The parameter transName is the choosen transaction.
The propertiesMap values are 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(); } }}getTaskInstance
Section titled “getTaskInstance”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(); } }}startTaskInstance
Section titled “startTaskInstance”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(); } }}setTaskInstanceActorId
Section titled “setTaskInstanceActorId”Description:
| Method | Return values | Description |
|---|---|---|
| setTaskInstanceActorId(long tiId, String actorId) | void | Set the actor to a task instance. |
The parameter tiId is a valid task instance id.
The parameter actorId must be some valid OpenKM userId.
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(); } }}endTaskInstance
Section titled “endTaskInstance”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(); } }}getProcessDefinitionForms
Section titled “getProcessDefinitionForms”Description:
| Method | Return values | Description |
|---|---|---|
| getProcessDefinitionForms(long pdId) | Map<String, List |
Return a map with all the process definition forms. |
The parameter pdId value is a valid workflow process definition.
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(); } }}getProcessDefinitionImage
Section titled “getProcessDefinitionImage”Description:
| Method | Return values | Description |
|---|---|---|
| getProcessDefinitionImage(string pdId, string uuid) | String | Returns a workflow diagram in Base64. |
The parameter pdId value is a valid workflow process definition.
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(); } }}findPooledTaskInstances
Section titled “findPooledTaskInstances”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(); } }}findProcessInstancesByNode
Section titled “findProcessInstancesByNode”Description:
| Method | Return values | Description |
|---|---|---|
| findProcessInstancesByNode(String uuid) | List |
Retrieves a list of all process instances by node of some registered workflows definition. |
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(); } }}getSuggestBoxKeyValue
Section titled “getSuggestBoxKeyValue”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(); } }}getSuggestBoxKeyValuesFiltered
Section titled “getSuggestBoxKeyValuesFiltered”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 - with 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(); } }}