Workflow samples
Basics
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);
Once you are logged with the webservices the session is keep in the webservice Object. Then you can use the other API method
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
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
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
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
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
Description:
Method | Return values | Description |
---|---|---|
findProcessInstances(long pdId) |
List<ProcessInstance> |
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
Description:
Method | Return values | Description |
---|---|---|
findAllProcessDefinitions() |
List<ProcessDefinition> |
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
Description:
Method | Return values | Description |
---|---|---|
findLatestProcessDefinitions() |
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.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
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. Several workflow definition versions that have the same name. |
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
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
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
Description:
Method | Return values | Description |
---|---|---|
findTaskInstances(long piId) |
List<TaskInstance> |
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
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
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
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
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
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
Description:
Method | Return values | Description |
---|---|---|
getProcessDefinitionForms(long pdId) |
Map<String, List<FormElement>> |
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
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
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();
}
}
}