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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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();
        }
    }
}