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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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.

  • The parameter "limit" is used to limit the number of results returned.
  • The parameter "offset" is used to skip that many results before the beginning to return results.

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:

MethodReturn valuesDescription

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.

  • The parameter "limit" is used to limit the number of results returned.
  • The parameter "offset" is used to skip that many results before the beginning to return results.

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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:

MethodReturn valuesDescription

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