WorkflowManager

Description

  • org.joget.workflow.model.service.WorkflowManager
  • Under wflow-wfengine module
  • Service methods to interact with workflow engine

 

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.

 

activityStartAndAssignTo

public boolean activityStartAndAssignTo(java.lang.String processId, java.lang.String activityDefId, java.lang.String[] usernames, boolean abortRunningActivities)

Start a specific activity for a running process instance, and assign to specific user(s).

 

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.

 

getAssignmentByRecordId

public org.joget.workflow.model.WorkflowAssignment getAssignmentByRecordId(java.lang.String recordId, java.lang.String processDefId, java.lang.String activityDefId, java.lang.String username)

Returns the first assignment based on record 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).

 

getClosedActivitiesList

public Collection<WorkflowActivity> getClosedActivitiesList(String packageId, String processDefId, String processId, String activityDefId, String username, String state, String sort, Boolean desc, Integer start, Integer rows)

 Returns a Collection of WorkflowActivity that matches the search criteria.

New Feature

These are new methods for Joget DX version 8.1 onwards.

  • Added APIs to retrieve closed activities by user & state.

 

getClosedActivitiesList

public Collection<WorkflowActivity> getClosedActivitiesList(String packageId, String processDefId, String processId, String activityDefId, String username, String state, String sort, Boolean desc, Integer start, Integer rows)

 Returns a Collection of WorkflowActivity that matches the search criteria.

 

getClosedActivitiesListSize

public int getClosedActivitiesListSize(String packageId, String processDefId, String processId, String activityDefId, String username, String state)

  Returns the result count that matches the search criteria.

 

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 who accepted/completed the activity.

Parameters:

processDefId - Unsed for now.

 

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.

 

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 variable values and starting 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 a 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 a 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 a process instance ID.

 

reevaluateAssignmentsForUser

public void reevaluateAssignmentsForUser(java.lang.String username)

Reevaluate assignments for a user.

 

removeProcessInstance

public void removeProcessInstance(java.lang.String procInstanceId)

Deletes a process instance.

 

setWorkflowUserManager

public void setWorkflowUserManager(WorkflowUserManager userManager)

Method used by the system to set WorkflowUserManager implementation.

 

Created by Damian Last modified by Aadrian on Dec 13, 2024