Description

Code Sample

import org.joget.apps.app.service.AppUtil;
import org.joget.workflow.model.WorkflowProcessResult;
import org.joget.workflow.model.service.WorkflowManager;
 
WorkflowManager workflowManager = (WorkflowManager) AppUtil.getApplicationContext().getBean("workflowManager");
 
String recordId = "001";
String processDefId = "crm#2#process1";
 
//Start a process with existing record
WorkflowProcessResult result = workflowManager.processStart(processDefId, null, null, null, recordId, boolean false);

Fields

LATEST
public static String LATEST = "latest";

Keyword used to replace the version number in process definition id to always use the latest version.

Methods

activityAbort
public void activityAbort(java.lang.String processId, java.lang.String activityDefId)

Abort an activity based on the process instance Id and activity definition ID.

activityVariable
public void activityVariable(java.lang.String activityInstanceId, java.lang.String variableId, java.lang.Object variableValue)

Set the workflow variable based on an activity instance ID.

activityVariables
public void activityVariables(java.lang.String activityInstanceId, java.util.Map<java.lang.String, java.lang.String> variables)

Set the workflow variables based on an activity instance ID

activityStart
public boolean activityStart(java.lang.String processId, java.lang.String activityDefId, boolean abortRunningActivities)

Start a specific activity for a running process instance.

assignmentAccept
public void assignmentAccept(java.lang.String activityId)

Accept an assignment (for the current user) based on the activity instance ID.

Deprecated Since v3, the concept of accept & withdraw assignment is removed  

assignmentComplete
public void assignmentComplete(java.lang.String activityId)

Complete an assignment (for the current user) based on the activity instance ID.

assignmentComplete
public void assignmentComplete(java.lang.String activityId, java.util.Map<java.lang.String, java.lang.String> variableMap)

Complete an assignment (for the current user) while setting workflow variable values

assignmentForceComplete
public void assignmentForceComplete(java.lang.String processDefId, java.lang.String processId, java.lang.String activityId, java.lang.String username)

Force completes an assignment of a user

assignmentReassign
public void assignmentReassign(java.lang.String processDefId, java.lang.String processId, java.lang.String activityId, java.lang.String username, java.lang.String replaceUser)

Reassigns the assignment from a user to another user

assignmentWithdraw
public void assignmentWithdraw(java.lang.String activityId)

Withdraw an assignment (for the current user) based on the activity instance ID.

Deprecated Since v3, the concept of accept & withdraw assignment is removed.  

assignmentVariable
public void assignmentVariable(java.lang.String activityId, java.lang.String variableName, java.lang.String variableValue)

Set workflow variable value based on activity instance ID. This only works when the current user is assigned to the activity.

assignmentVariables
public void assignmentVariables(java.lang.String activityId, java.util.Map<java.lang.String, java.lang.String> variableMap)

Set workflow variables value based on activity instance ID. This only works when the current user is assigned to the activity.

getActivityById
public org.joget.workflow.model.WorkflowActivity getActivityById(java.lang.String activityId)

Returns an activity instance based on the activity instance ID.

getActivityInstanceByProcessIdAndStatus
public java.util.Map getActivityInstanceByProcessIdAndStatus(java.lang.String processId, java.lang.Boolean accepted)

Gets a map of active activities in a process instance.

Deprecated Since v3, the concept of accept & withdraw assignment is removed.  

getActivityList
public java.util.Collection<org.joget.workflow.model.WorkflowActivity> getActivityList(java.lang.String processId, java.lang.Integer start, java.lang.Integer rows, java.lang.String sort, java.lang.Boolean desc)

Returns a list of running or completed activities for a process instance ID.

getActivitySize
public int getActivitySize(java.lang.String processId)

Returns the number of running or completed activities for a process instance ID.

getActivityVariableList
public java.util.Collection<org.joget.workflow.model.WorkflowVariable> getActivityVariableList(java.lang.String activityId)

Returns a list of workflow variables for the specified activity instance ID (for any user)

getAssignment
public org.joget.workflow.model.WorkflowAssignment getAssignment(java.lang.String activityId)

Returns an assignment for the current user based on an activity instance ID.

getAssignmentAcceptedList
public org.joget.commons.util.PagedList<org.joget.workflow.model.WorkflowAssignment> getAssignmentAcceptedList(java.lang.String processDefId, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns accepted assignments for the current user.

Deprecated Since v3, the concept of accept & withdraw assignment is removed.

getAssignmentByProcess
public org.joget.workflow.model.WorkflowAssignment getAssignmentByProcess(java.lang.String processId)

Returns the first assignment for the current user based on a process instance ID.

getAssignmentList
public java.util.Collection<org.joget.workflow.model.WorkflowAssignment> getAssignmentList(java.lang.Boolean accepted, java.lang.String processDefId, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns a list of assignments for the current user

getAssignmentList
public java.util.Collection<org.joget.workflow.model.WorkflowAssignment> getAssignmentList(java.lang.String packageId, java.lang.String processDefId, java.lang.String processId, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns a list of assignments for the current user.

getAssignmentList
public java.util.Collection<org.joget.workflow.model.WorkflowAssignment> getAssignmentList(java.lang.String packageId, java.lang.String processDefId, java.lang.String processId, java.lang.String activityDefId, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns a list of assignments for the current user.

getAssignmentListFilterByProccessDefIds
public java.util.Collection<org.joget.workflow.model.WorkflowAssignment> getAssignmentListFilterByProccessDefIds(java.lang.String[] processDefIds, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns a list of assignments for the current user filter by processDefIds

getAssignmentListFilterByProccessDefIdsSize
public int getAssignmentListFilterByProccessDefIdsSize(java.lang.String[] processDefIds)

Returns the number of assignments for the current user filter by processDefIds.

getAssignmentListLite
public java.util.Collection<org.joget.workflow.model.WorkflowAssignment> getAssignmentListLite(java.lang.String packageId, java.lang.String processDefId, java.lang.String processId, java.lang.String activityDefId, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns a list of assignments with lite info for the current user.

getAssignmentPendingAndAcceptedList
public org.joget.commons.util.PagedList<org.joget.workflow.model.WorkflowAssignment> getAssignmentPendingAndAcceptedList(java.lang.String packageId, java.lang.String processDefId, java.lang.String processId, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns the all (pending and accepted) assignments for the current user.

getAssignmentPendingList
public org.joget.commons.util.PagedList<org.joget.workflow.model.WorkflowAssignment> getAssignmentPendingList(java.lang.String processDefId, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns pending assignments for the current user

getAssignmentResourceIds
public java.util.List<java.lang.String> getAssignmentResourceIds(java.lang.String processId, java.lang.String processInstanceId, java.lang.String activityInstanceId)

Returns a list of usernames that are assigned to a specific activity instance.

getAssignmentSize
public int getAssignmentSize(java.lang.Boolean accepted, java.lang.String processDefId)

Returns the number of assignments for the current user.

getAssignmentSize
public int getAssignmentSize(java.lang.String packageId, java.lang.String processDefId, java.lang.String processId)

Returns the number of assignments for the current user.

getAssignmentSize
public int getAssignmentSize(java.lang.String packageId, java.lang.String processDefId, java.lang.String processId, java.lang.String activityDefId)

Returns the number of assignments for the current user.

getAssignmentVariableList
public java.util.Collection<org.joget.workflow.model.WorkflowVariable> getAssignmentVariableList(java.lang.String activityId)

Returns a list of workflow variables for the specified activity instance ID (only if assigned to the current user)

getCompletedProcessList
public java.util.Collection<org.joget.workflow.model.WorkflowProcess> getCompletedProcessList(java.lang.String packageId, java.lang.String processId, java.lang.String processName, java.lang.String version, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns a list of completed processes, filtered by optional parameter values.

getCompletedProcessSize
public int getCompletedProcessSize(java.lang.String packageId, java.lang.String processId, java.lang.String processName, java.lang.String version)

Returns the number of completed processes, filtered by optional parameter values.

getConvertedLatestProcessDefId
public java.lang.String getConvertedLatestProcessDefId(java.lang.String processDefId)

Replaces the WorkflowManager.LATEST in process def id to the latest process def id 

getCurrentPackageVersion
public java.lang.String getCurrentPackageVersion(java.lang.String packageId)

Returns the latest package version for the given package ID

getMigrationAssignmentUserList
public java.util.List<java.lang.String> getMigrationAssignmentUserList(java.lang.String processId, java.lang.String activityDefId)

Gets the usernames of process activity for process version migration

getMockAssignment
public org.joget.workflow.model.WorkflowAssignment getMockAssignment(java.lang.String activityId)

Returns a mock assignment based on an activity instance ID.

getPackage
public org.joget.workflow.model.WorkflowPackage getPackage(java.lang.String packageId, java.lang.String version)

Retrieve a specific workflow package.

getPackageContent
public byte[] getPackageContent(java.lang.String packageId, java.lang.String version)

Returns the XPDL content for a package version.

getPackageIdFromDefinition
public java.lang.String getPackageIdFromDefinition(byte[] processDefinitionData)

Reads package ID from XPDL definition

getPackageList
public java.util.Collection<org.joget.workflow.model.WorkflowPackage> getPackageList()

Returns a list of packages currently in the system.

getParticipantMap
public java.util.Map<java.lang.String, org.joget.workflow.model.WorkflowParticipant> getParticipantMap(java.lang.String processDefId)

Returns the participant definitions for a process definition ID in a map.

getProcess
public org.joget.workflow.model.WorkflowProcess getProcess(java.lang.String processDefId)

Returns a process definition by its definition ID.

getProcessActivityDefinition
public java.util.Collection<org.joget.workflow.model.WorkflowActivity> getProcessActivityDefinitionList(java.lang.String processDefId)

Returns the activity definitions for a process definition ID.

getProcessActivityDefinitionList
public java.util.Collection<org.joget.workflow.model.WorkflowActivity> getProcessActivityDefinitionList(java.lang.String processDefId)

Returns the activity definitions for a process definition ID.

getProcessDefIdByInstanceId
public java.lang.String getProcessDefIdByInstanceId(java.lang.String instanceId)

Returns a process definition ID based on a process instance ID.

getProcessList
public java.util.Collection<org.joget.workflow.model.WorkflowProcess> getProcessList(java.lang.String packageId)

Returns a list of process definitions.

getProcessList
public java.util.Collection<org.joget.workflow.model.WorkflowProcess> getProcessList(java.lang.String packageId, java.lang.String version)

Returns a list of process definitions.

getProcessList
public org.joget.commons.util.PagedList<org.joget.workflow.model.WorkflowProcess> getProcessList(java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows, java.lang.String packageId, java.lang.Boolean all, java.lang.Boolean checkWhiteList);

Returns a list of process definitions

getProcessParticipantDefinitionList
public java.util.Collection<org.joget.workflow.model.WorkflowParticipant> getProcessParticipantDefinitionList(java.lang.String processDefId)

Returns the participant definitions for a process definition ID.

getProcessToolDefinitionList
public java.util.Collection<org.joget.workflow.model.WorkflowTool> getProcessToolDefinitionList(java.lang.String processDefId)

Returns the application definitions for a process definition ID.

getProcessVariable
public java.lang.String getProcessVariable(java.lang.String processInstanceId, java.lang.String variableId)

Returns the variable value based on a process instance ID.

getProcessVariableDefinitionList
public java.util.Collection<org.joget.workflow.model.WorkflowVariable> getProcessVariableDefinitionList(java.lang.String processDefId)

Returns the variable definitions for a process definition ID.

getProcessVariableList
public java.util.Collection<org.joget.workflow.model.WorkflowVariable> getProcessVariableList(java.lang.String processId)

Returns a list of workflow variables for the specified process instance ID (for any user)

getServiceLevelMonitorForRunningActivity
public double getServiceLevelMonitorForRunningActivity(java.lang.String activityInstanceId)

Gets the service level for a specific activity instance ID.

getServiceLevelMonitorForRunningProcess
public double getServiceLevelMonitorForRunningProcess(java.lang.String processInstanceId)

Gets the service level for a specific process instance ID.

getRunningActivityInfo
public org.joget.workflow.model.WorkflowActivity getRunningActivityInfo(java.lang.String activityInstanceId)

Returns activity monitoring info (eg date creation, limit, due (creation + limit), delay and completion) for a process instance ID.

getRunningProcessById
public org.joget.workflow.model.WorkflowProcess getRunningProcessById(java.lang.String processId)

Returns a running process by process instance ID.

getRunningProcessInfo
public org.joget.workflow.model.WorkflowProcess getRunningProcessInfo(java.lang.String processInstanceId)

Returns process monitoring info (eg date creation, due dates, etc) for a process instance ID.

getRunningProcessList
public java.util.Collection<org.joget.workflow.model.WorkflowProcess> getRunningProcessList(java.lang.String packageId, java.lang.String processId, java.lang.String processName, java.lang.String version, java.lang.String sort, java.lang.Boolean desc, java.lang.Integer start, java.lang.Integer rows)

Returns a list of running processes, filtered by optional parameter values.

getRunningProcessSize
public int getRunningProcessSize(java.lang.String packageId, java.lang.String processId, java.lang.String processName, java.lang.String version)

Returns the number of running processes, filtered by optional parameter values.

getUserByProcessIdAndActivityDefId
public java.lang.String getUserByProcessIdAndActivityDefId(java.lang.String processDefId, java.lang.String processId, java.lang.String activityDefId)

Returns the name of the user that accepted/completed activity.

Parameters:

processDefId - Unsed for now

getWorkflowProcessLink
public org.joget.workflow.model.WorkflowProcessLink getWorkflowProcessLink(java.lang.String processId)

Gets the parent process instance id of a process instance

getWorkflowUserManager
public org.joget.workflow.model.service.WorkflowUserManager getWorkflowUserManager()

Method used by system to get WorkflowUserManager implementation

internalCheckDeadlines
public java.lang.Boolean internalCheckDeadlines(java.lang.String[] pids)

Internal method used to checks deadlines for selected process instances 

internalCheckDeadlines
public void internalCheckDeadlines(int instancesPerTransaction, int failuresToIgnore)

Internal method used to checks deadlines

internalDeleteWorkflowProcessLink
public void internalDeleteWorkflowProcessLink(org.joget.workflow.model.WorkflowProcessLink wfProcessLink)

Internal method used to delete the processes link

internalRemoveProcessOnComplete
public void internalRemoveProcessOnComplete(java.lang.String procInstanceId)

Internal method used to delete a process instance only if it is completed.

internalUpdateDeadlineChecker
public void internalUpdateDeadlineChecker()

Internal method used to updates deadline checker time interval

isAssignmentExist
public java.lang.Boolean isAssignmentExist(java.lang.String activityId)

Check an assignment is exist or not (for current user) based on an activity instance ID.

isPackageIdExist
public java.lang.Boolean isPackageIdExist(java.lang.String packageId)

Checks to see whether or not package exists.

isUserInWhiteList
public java.lang.Boolean isUserInWhiteList(java.lang.String processDefId)

Checks the current user is allow to start a process

processAbort
public java.lang.Boolean processAbort(java.lang.String processId)

Abort a process instance.

processCopyFromInstanceId
public org.joget.workflow.model.WorkflowProcessResult processCopyFromInstanceId(java.lang.String currentProcessId, java.lang.String newProcessDefId, java.lang.Boolean abortCurrentProcess)

Start a new process while copying variables, form data and running activities from a previous running process instance.

processCreateWithoutStart
public java.lang.String processCreateWithoutStart(java.lang.String processDefId)

Create a process instance without starting any activities.

processDeleteAndUnload
public void processDeleteAndUnload(java.lang.String packageId)

Deletes all versions for a package together with its associated process instances.

processDeleteAndUnloadVersion
public void processDeleteAndUnloadVersion(java.lang.String packageId, java.lang.String version)

Deletes a specific package version together with its process instances.

processStart
public org.joget.workflow.model.WorkflowProcessResult processStart(java.lang.String processDefId)

Starts a process based on the process definition ID.

processStart
public org.joget.workflow.model.WorkflowProcessResult processStart(java.lang.String processDefId, java.util.Map<java.lang.String, java.lang.String> variables)

Starts a process based on the process definition ID, while setting workflow variables values

processStart
public org.joget.workflow.model.WorkflowProcessResult processStart(java.lang.String processDefId, java.util.Map<java.lang.String, java.lang.String> variables, java.lang.String startProcUsername)

Starts a process based on the process definition ID, while setting workflow variables values and start process username.

processStart
public org.joget.workflow.model.WorkflowProcessResult processStart(java.lang.String processDefId, java.lang.String processId, java.util.Map<java.lang.String, java.lang.String> variables, java.lang.String startProcUsername, java.lang.String parentProcessId, java.lang.Boolean startManually)

Generic method to start a process with various options.

Parameters:
processDefId - The process definition ID of the process to start
processId - The process instance ID of a current running process to start
variables - Workflow variables values to set for the process
startProcUsername - The username of the person starting the process
parentProcessId - The process instance ID of a parent or calling process
startManually - Set to true to prevent beginning activities from being started.

processStartWithInstanceId
public org.joget.workflow.model.WorkflowProcessResult processStartWithInstanceId(java.lang.String processDefId, java.lang.String processId, java.util.Map<java.lang.String, java.lang.String> variables)

Starts a process based on the process definition ID, while setting workflow variables values, start process username and parent process id.

processStartWithLinking
public org.joget.workflow.model.WorkflowProcessResult processStartWithLinking(java.lang.String processDefId, java.util.Map<java.lang.String, java.lang.String> variables, java.lang.String startProcUsername, java.lang.String parentProcessId)

Starts a process based on the process definition ID, while setting workflow variables values, start process username and parent process id.

processUpload
public java.lang.String processUpload(java.lang.String packageId, byte[] processDefinitionData) throws Exception

Upload a package XPDL together with forms, participant and activity mapping information

processUploadWithoutUpdateMapping
public java.lang.String processUploadWithoutUpdateMapping(java.lang.String packageId, byte[] processDefinitionData) throws Exception

Upload a package XPDL without updating mapping information

processVariable
public void processVariable(java.lang.String processInstanceId, java.lang.String variableId, java.lang.Object variableValue)

Set the workflow variable based on an process instance ID.

processVariables
public void processVariables(java.lang.String processInstanceId, java.util.Map<java.lang.String, java.lang.String> variables)

Set the workflow variables based on an process instance ID.

reevaluateAssignmentsForActivity
public void reevaluateAssignmentsForActivity(java.lang.String activityInstanceId)

Reevaluate assignments for an activity based on an activity instance ID.

reevaluateAssignmentsForProcess
public void reevaluateAssignmentsForProcess(java.lang.String procInstanceId)

Reevaluate assignments for a process based on an process instance ID.

reevaluateAssignmentsForUser
public void reevaluateAssignmentsForUser(java.lang.String username)

Reevaluate assignments for an user

removeProcessInstance
public void removeProcessInstance(java.lang.String procInstanceId)

Deletes a process instance.

setWorkflowUserManager
public void setWorkflowUserManager(WorkflowUserManager userManager)

Method used by system to sets WorkflowUserManager implementation