public interface IWorkflow
WorkflowDefinition
- Not stateful, can be instantiated into a WorkflowInstance using startWorkflow(String, String, Map)
WorkflowInstance
- Stateful, can have many TaskInstances and can own a WorkflowPackage.
TaskInstance
- Stateful, belong to a WorkflowInstance and can be completed through completeTask(String, String, Map)
WorkflowPackage
- contains a String[] of repository object ids to go along with the ride of a WorkflowInstanceModifier and Type | Method and Description |
---|---|
java.util.List<WorkflowInstance> |
abortOrphanedWorkflows(java.lang.String ticket)
Abort the workflows in the system that are orphaned.
|
void |
acquireTask(java.lang.String ticket,
java.lang.String taskId)
Throws a runtime exception if the task already belongs to a user.
|
boolean |
addTaskAssignee(java.lang.String ticket,
java.lang.String taskId,
java.lang.String userLoginName) |
java.lang.String |
buildWorkflowPackage(java.lang.String ticket,
java.lang.String[] packageItemIds) |
void |
cancelWorkflow(java.lang.String ticket,
java.lang.String workflowInstanceId,
java.lang.String deleteReason)
Terminates the specified workflow.
|
boolean |
completeTask(java.lang.String ticket,
java.lang.String taskId,
java.util.Map<java.lang.String,java.lang.Object> props) |
void |
deleteWorkflowDefinitionDeployment(java.lang.String ticket,
java.lang.String deploymentId) |
java.lang.String |
deployWorkflowDefinitionOnClasspath(java.lang.String ticket,
java.lang.String wfDefFileNameOnClasspath)
Deploys a workflow definition that is present on the classpath.
|
java.util.List<WorkflowInstance> |
getAllWorkflowInstances(java.lang.String ticket)
Return a list of all
WorkflowInstance objects in the system. |
java.util.List<WorkflowInstanceSnapshot> |
getAllWorkflowInstanceSnapshots(java.lang.String ticket)
Returns a list of ALL in-flight workflow processes regardless of their initiator
|
java.util.List<WorkflowInstanceSnapshot> |
getAllWorkflowInstanceSnapshotsByGroup(java.lang.String ticket,
java.util.List<java.lang.String> groups)
Returns a list of WorkflowInstanceSnapshot objects with tasks assigned to a group in groups
|
java.util.List<java.lang.String> |
getCandidateGroups(java.lang.String ticket,
java.lang.String taskId) |
java.util.List<java.lang.String> |
getCandidateUsers(java.lang.String ticket,
java.lang.String taskId) |
java.lang.String |
getInboxProxyUser(java.lang.String ticket,
java.lang.String userLoginName) |
java.util.List<WorkflowInstance> |
getOrphanedWorkflows(java.lang.String ticket)
Return a list of workflows that are orphaned.
|
java.util.Map<java.lang.String,java.lang.Object> |
getStartForm(java.lang.String ticket,
java.lang.String processDefinitionId)
Get the Start Form key for an Activiti Workflow
|
TaskInstance |
getTask(java.lang.String ticket,
java.lang.String taskId)
TODO document
|
java.util.List<java.lang.String> |
getTaskAssignees(java.lang.String ticket,
java.lang.String taskId) |
java.util.List<java.lang.String> |
getTaskIdsForContent(java.lang.String ticket,
java.lang.String nodeId)
Returns list of task ids of workflows in which nodeId is part of a WorkflowPackage
|
java.util.List<TaskInstance> |
getTasks(java.lang.String ticket,
java.lang.String userLoginName,
java.lang.String workflowInstanceId,
java.lang.String taskName)
Returns a list of OC Workflow TaskInstances, narrowed down by parameters.
|
java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
getTasksForProcess(java.lang.String ticket,
java.lang.String processDefinitionId)
Returns a list of all tasks available for a Process Definition (Workflow)
WARNING: This is using internal Activiti classes right now: https://forums.activiti.org/content/gettaskdesfinitionlist
|
java.util.List<TaskInstance> |
getUnclaimedTasks(java.lang.String ticket,
java.lang.String userLoginName,
java.lang.String workflowInstanceId)
Returns a list of OC Workflow TaskInstances, narrowed down by parameters.
|
java.lang.String |
getWorkflowDefinitionId(java.lang.String ticket,
java.lang.String workflowInstanceId)
Returns the workflow definition id that the specified workflow instance id is an instance of.
|
java.util.List<WorkflowDefinition> |
getWorkflowDefinitions(java.lang.String ticket) |
WorkflowInstance |
getWorkflowInstance(java.lang.String ticket,
java.lang.String workflowInstanceId)
Returns the workflow instance for the given instance id.
|
java.lang.String |
getWorkflowInstanceIdFromTaskId(java.lang.String ticket,
java.lang.String taskId)
Returns the workflow instance id that the specified taskId belongs to.
|
java.util.List<java.lang.String> |
getWorkflowInstanceIdsForContent(java.lang.String ticket,
java.lang.String nodeId)
Returns the workflowInstanceIds of any workflows that nodeId is part of a WorkflowPackage in.
|
java.util.List<WorkflowInstanceSnapshot> |
getWorkflowInstanceSnapshots(java.lang.String ticket,
java.lang.String userLoginName,
int numPerPage)
Returns a list of OC workflowInstanceSnapshot objects representing workflows
initiated by @userLoginName
|
WorkflowPackage |
getWorkflowPackageByPackageId(java.lang.String ticket,
java.lang.String wfPackageId) |
WorkflowPackage |
getWorkflowPackageByTaskId(java.lang.String ticket,
java.lang.String taskId) |
WorkflowPackage |
getWorkflowPackageByWorkflowInstanceId(java.lang.String ticket,
java.lang.String workflowInstanceId,
boolean loadPackageObjects) |
boolean |
processWorkflowPackage(java.lang.String ticket,
java.lang.String workflowInstanceId,
java.lang.String workflowPackageId) |
void |
releaseTask(java.lang.String ticket,
java.lang.String taskId,
boolean canReleaseAnotherUsersTask)
If canReleaseAnotherUsersTask is set to true, a user can release a task
that is assigned to another user.
|
boolean |
removeTaskAssignee(java.lang.String ticket,
java.lang.String taskId,
java.lang.String userLoginName) |
boolean |
setExecutionVariable(java.lang.String ticket,
java.lang.String processInstanceId,
java.lang.String variable,
java.lang.Object variableValue) |
boolean |
setTaskAssignee(java.lang.String ticket,
java.lang.String taskId,
java.lang.String userLoginName,
java.util.Map<java.lang.String,java.lang.String> props)
Sets the specified user as the assignee of the specified task.
|
boolean |
setTaskStatus(java.lang.String ticket,
java.lang.String taskId,
java.lang.String status) |
void |
setWorkflowPackage(java.lang.String ticket,
java.lang.String workflowInstanceId,
WorkflowPackage workflowPackage) |
java.lang.String |
startWorkflow(java.lang.String ticket,
java.lang.String workflowDefinitionId,
java.util.Map props)
Starts a new instance of the specified workflow.
|
java.util.List<TaskInstance> getTasks(java.lang.String ticket, java.lang.String userLoginName, java.lang.String workflowInstanceId, java.lang.String taskName)
ticket
- userLoginName
- - user whose assigned tasks are returned. if null, returns all tasks unrestricted by user.workflowInstanceId
- - The id of the workflow instance, optional.taskName
- - The name/type of task to return, optional.java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getTasksForProcess(java.lang.String ticket, java.lang.String processDefinitionId)
TaskInstance getTask(java.lang.String ticket, java.lang.String taskId)
ticket
- taskId
- java.util.List<TaskInstance> getUnclaimedTasks(java.lang.String ticket, java.lang.String userLoginName, java.lang.String workflowInstanceId)
ticket
- userLoginName
- - user whose assigned tasks are returned. if null, returns all tasks unrestricted by user.workflowInstanceId
- java.lang.String getWorkflowInstanceIdFromTaskId(java.lang.String ticket, java.lang.String taskId)
ticket
- taskId
- WorkflowInstance getWorkflowInstance(java.lang.String ticket, java.lang.String workflowInstanceId)
null
.ticket
- workflowInstanceId
- java.lang.String getWorkflowDefinitionId(java.lang.String ticket, java.lang.String workflowInstanceId)
ticket
- workflowInstanceId
- java.util.List<java.lang.String> getTaskAssignees(java.lang.String ticket, java.lang.String taskId)
boolean setTaskAssignee(java.lang.String ticket, java.lang.String taskId, java.lang.String userLoginName, java.util.Map<java.lang.String,java.lang.String> props)
ticket
- taskId
- userLoginName
- boolean addTaskAssignee(java.lang.String ticket, java.lang.String taskId, java.lang.String userLoginName)
boolean removeTaskAssignee(java.lang.String ticket, java.lang.String taskId, java.lang.String userLoginName)
boolean setExecutionVariable(java.lang.String ticket, java.lang.String processInstanceId, java.lang.String variable, java.lang.Object variableValue)
boolean setTaskStatus(java.lang.String ticket, java.lang.String taskId, java.lang.String status)
java.lang.String startWorkflow(java.lang.String ticket, java.lang.String workflowDefinitionId, java.util.Map props)
ticket
- workflowDefinitionId
- props
- java.lang.String buildWorkflowPackage(java.lang.String ticket, java.lang.String[] packageItemIds)
boolean processWorkflowPackage(java.lang.String ticket, java.lang.String workflowInstanceId, java.lang.String workflowPackageId)
WorkflowPackage getWorkflowPackageByTaskId(java.lang.String ticket, java.lang.String taskId)
WorkflowPackage getWorkflowPackageByPackageId(java.lang.String ticket, java.lang.String wfPackageId)
WorkflowPackage getWorkflowPackageByWorkflowInstanceId(java.lang.String ticket, java.lang.String workflowInstanceId, boolean loadPackageObjects)
void setWorkflowPackage(java.lang.String ticket, java.lang.String workflowInstanceId, WorkflowPackage workflowPackage)
boolean completeTask(java.lang.String ticket, java.lang.String taskId, java.util.Map<java.lang.String,java.lang.Object> props)
void acquireTask(java.lang.String ticket, java.lang.String taskId)
ticket
- taskId
- void cancelWorkflow(java.lang.String ticket, java.lang.String workflowInstanceId, java.lang.String deleteReason)
ticket
- workflowInstanceId
- void releaseTask(java.lang.String ticket, java.lang.String taskId, boolean canReleaseAnotherUsersTask)
ticket
- taskId
- - String representing the task's idcanReleaseAnotherUsersTask
- - boolean for if another user's
acquired task can be released by userjava.lang.String deployWorkflowDefinitionOnClasspath(java.lang.String ticket, java.lang.String wfDefFileNameOnClasspath)
ticket
- wfDefFileNameOnClasspath
- void deleteWorkflowDefinitionDeployment(java.lang.String ticket, java.lang.String deploymentId)
java.util.List<java.lang.String> getCandidateUsers(java.lang.String ticket, java.lang.String taskId)
java.util.List<java.lang.String> getCandidateGroups(java.lang.String ticket, java.lang.String taskId)
java.util.List<java.lang.String> getWorkflowInstanceIdsForContent(java.lang.String ticket, java.lang.String nodeId)
ticket
- nodeId
- java.util.List<java.lang.String> getTaskIdsForContent(java.lang.String ticket, java.lang.String nodeId)
ticket
- nodeId
- java.lang.String getInboxProxyUser(java.lang.String ticket, java.lang.String userLoginName)
java.util.List<WorkflowDefinition> getWorkflowDefinitions(java.lang.String ticket)
java.util.List<WorkflowInstanceSnapshot> getWorkflowInstanceSnapshots(java.lang.String ticket, java.lang.String userLoginName, int numPerPage)
ticket
- userLoginName
- java.util.List<WorkflowInstanceSnapshot> getAllWorkflowInstanceSnapshots(java.lang.String ticket)
ticket
- valid OC ticketjava.util.List<WorkflowInstanceSnapshot> getAllWorkflowInstanceSnapshotsByGroup(java.lang.String ticket, java.util.List<java.lang.String> groups)
ticket
- groups
- - list of strings of group namesjava.util.List<WorkflowInstance> getAllWorkflowInstances(java.lang.String ticket)
WorkflowInstance
objects in the system. Note that Active Wizard approval
routes will actually have two items in the list for one "workflow". This is because the main process
and the subprocess each are contained in this list.
Additionally, implementations should be careful to ensure that the calling user is an administrator
and capable of viewing all documents.ticket
- the OC ticketList
containing all WorkflowInstance
objects in the systemjava.util.List<WorkflowInstance> getOrphanedWorkflows(java.lang.String ticket)
ticket
- valid OC ticketList containing the orphaned workflows, or an empty list if there are none.
IUser.isAuthenticatedUserAdmin(String)
java.util.List<WorkflowInstance> abortOrphanedWorkflows(java.lang.String ticket)
getOrphanedWorkflows(String)
for what
constitutes an orphaned workflow.
Before calling this method, it may be a good idea to first list out the orphaned workflows to ensure
you do not end up aborting workflows that should not be.ticket
- valid OC ticketList containing the orphaned workflows that were deleted, or an empty list if there are none.
IUser.isAuthenticatedUserAdmin(String)
,
getOrphanedWorkflows(String)
java.util.Map<java.lang.String,java.lang.Object> getStartForm(java.lang.String ticket, java.lang.String processDefinitionId) throws OCException
processDefinitionId
- base Activiti Workflow Definition name such as activitiReview - see bpmn.xml for the configured namesOCException