public class ActivitiWorkflowImpl extends java.lang.Object implements IWorkflow
Constructor and Description |
---|
ActivitiWorkflowImpl() |
Modifier 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
|
protected java.util.List<org.activiti.engine.task.Task> |
getUnclaimedActivitiTasks(java.lang.String ticket,
java.lang.String userLoginName,
java.lang.String workflowInstanceId) |
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 processId)
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) |
protected WorkflowPackage |
getWorkflowPackageByWorkflowInstanceId(java.lang.String ticket,
java.lang.String workflowInstanceId,
boolean loadPackageObjects,
org.activiti.engine.RuntimeService runtimeService) |
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) |
protected void |
setOCTicketOnExecutionScope(java.lang.String ticket,
java.lang.String processInstanceId,
org.activiti.engine.ProcessEngine processEngine) |
protected void |
setOCTicketOnExecutionScopeFromTask(java.lang.String ticket,
java.lang.String taskId,
org.activiti.engine.ProcessEngine processEngine)
May throw an exception if there is no execution scope for the parameterized 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)
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.
|
public java.util.List<TaskInstance> getTasks(java.lang.String ticket, java.lang.String userLoginName, java.lang.String workflowInstanceId, java.lang.String taskName)
IWorkflow
public java.util.List<TaskInstance> getUnclaimedTasks(java.lang.String ticket, java.lang.String userLoginName, java.lang.String workflowInstanceId)
IWorkflow
getUnclaimedTasks
in interface IWorkflow
userLoginName
- - user whose assigned tasks are returned. if null, returns all tasks unrestricted by user.protected java.util.List<org.activiti.engine.task.Task> getUnclaimedActivitiTasks(java.lang.String ticket, java.lang.String userLoginName, java.lang.String workflowInstanceId)
public TaskInstance getTask(java.lang.String ticket, java.lang.String taskId)
IWorkflow
public java.lang.String getWorkflowInstanceIdFromTaskId(java.lang.String ticket, java.lang.String taskId)
getWorkflowInstanceIdFromTaskId
in interface IWorkflow
ticket
- taskId
- public WorkflowInstance getWorkflowInstance(java.lang.String ticket, java.lang.String workflowInstanceId)
IWorkflow
null
.getWorkflowInstance
in interface IWorkflow
public java.lang.String getWorkflowDefinitionId(java.lang.String ticket, java.lang.String processId)
IWorkflow
getWorkflowDefinitionId
in interface IWorkflow
public boolean setTaskAssignee(java.lang.String ticket, java.lang.String taskId, java.lang.String userLoginName, java.util.Map<java.lang.String,java.lang.String> props)
IWorkflow
setTaskAssignee
in interface IWorkflow
public boolean setTaskStatus(java.lang.String ticket, java.lang.String taskId, java.lang.String status)
setTaskStatus
in interface IWorkflow
public java.lang.String startWorkflow(java.lang.String ticket, java.lang.String workflowDefinitionId, java.util.Map props)
IWorkflow
startWorkflow
in interface IWorkflow
public java.lang.String buildWorkflowPackage(java.lang.String ticket, java.lang.String[] packageItemIds)
buildWorkflowPackage
in interface IWorkflow
public boolean processWorkflowPackage(java.lang.String ticket, java.lang.String workflowInstanceId, java.lang.String workflowPackageId)
processWorkflowPackage
in interface IWorkflow
public WorkflowPackage getWorkflowPackageByTaskId(java.lang.String ticket, java.lang.String taskId)
getWorkflowPackageByTaskId
in interface IWorkflow
public WorkflowPackage getWorkflowPackageByPackageId(java.lang.String ticket, java.lang.String wfPackageId)
getWorkflowPackageByPackageId
in interface IWorkflow
public WorkflowPackage getWorkflowPackageByWorkflowInstanceId(java.lang.String ticket, java.lang.String workflowInstanceId, boolean loadPackageObjects)
getWorkflowPackageByWorkflowInstanceId
in interface IWorkflow
protected WorkflowPackage getWorkflowPackageByWorkflowInstanceId(java.lang.String ticket, java.lang.String workflowInstanceId, boolean loadPackageObjects, org.activiti.engine.RuntimeService runtimeService)
public void setWorkflowPackage(java.lang.String ticket, java.lang.String workflowInstanceId, WorkflowPackage workflowPackage)
setWorkflowPackage
in interface IWorkflow
public boolean completeTask(java.lang.String ticket, java.lang.String taskId, java.util.Map<java.lang.String,java.lang.Object> props)
completeTask
in interface IWorkflow
public void acquireTask(java.lang.String ticket, java.lang.String taskId)
IWorkflow
acquireTask
in interface IWorkflow
public void releaseTask(java.lang.String ticket, java.lang.String taskId, boolean canReleaseAnotherUsersTask)
IWorkflow
releaseTask
in interface IWorkflow
taskId
- - String representing the task's idcanReleaseAnotherUsersTask
- - boolean for if another user's
acquired task can be released by userpublic void cancelWorkflow(java.lang.String ticket, java.lang.String workflowInstanceId, java.lang.String deleteReason)
IWorkflow
cancelWorkflow
in interface IWorkflow
public java.lang.String deployWorkflowDefinitionOnClasspath(java.lang.String ticket, java.lang.String wfDefFileNameOnClasspath)
IWorkflow
deployWorkflowDefinitionOnClasspath
in interface IWorkflow
public void deleteWorkflowDefinitionDeployment(java.lang.String ticket, java.lang.String deploymentId)
deleteWorkflowDefinitionDeployment
in interface IWorkflow
public java.util.List<java.lang.String> getCandidateUsers(java.lang.String ticket, java.lang.String taskId)
getCandidateUsers
in interface IWorkflow
public java.util.List<java.lang.String> getCandidateGroups(java.lang.String ticket, java.lang.String taskId)
getCandidateGroups
in interface IWorkflow
public java.util.List<java.lang.String> getWorkflowInstanceIdsForContent(java.lang.String ticket, java.lang.String nodeId)
IWorkflow
getWorkflowInstanceIdsForContent
in interface IWorkflow
public java.util.List<java.lang.String> getTaskIdsForContent(java.lang.String ticket, java.lang.String nodeId)
IWorkflow
getTaskIdsForContent
in interface IWorkflow
public java.util.List<java.lang.String> getTaskAssignees(java.lang.String ticket, java.lang.String taskId)
getTaskAssignees
in interface IWorkflow
public boolean addTaskAssignee(java.lang.String ticket, java.lang.String taskId, java.lang.String userLoginName)
addTaskAssignee
in interface IWorkflow
public boolean removeTaskAssignee(java.lang.String ticket, java.lang.String taskId, java.lang.String userLoginName)
removeTaskAssignee
in interface IWorkflow
public boolean setExecutionVariable(java.lang.String ticket, java.lang.String processInstanceId, java.lang.String variable, java.lang.Object variableValue)
setExecutionVariable
in interface IWorkflow
protected void setOCTicketOnExecutionScopeFromTask(java.lang.String ticket, java.lang.String taskId, org.activiti.engine.ProcessEngine processEngine) throws java.lang.Exception
ticket
- taskId
- java.lang.Exception
protected void setOCTicketOnExecutionScope(java.lang.String ticket, java.lang.String processInstanceId, org.activiti.engine.ProcessEngine processEngine)
public java.util.List<WorkflowInstanceSnapshot> getWorkflowInstanceSnapshots(java.lang.String ticket, java.lang.String userLoginName, int numPerPage)
IWorkflow
getWorkflowInstanceSnapshots
in interface IWorkflow
public java.lang.String getInboxProxyUser(java.lang.String ticket, java.lang.String userLoginName)
getInboxProxyUser
in interface IWorkflow
public java.util.List<WorkflowDefinition> getWorkflowDefinitions(java.lang.String ticket)
getWorkflowDefinitions
in interface IWorkflow
public java.util.List<WorkflowInstanceSnapshot> getAllWorkflowInstanceSnapshots(java.lang.String ticket)
IWorkflow
getAllWorkflowInstanceSnapshots
in interface IWorkflow
ticket
- valid OC ticketpublic java.util.List<WorkflowInstanceSnapshot> getAllWorkflowInstanceSnapshotsByGroup(java.lang.String ticket, java.util.List<java.lang.String> groups)
IWorkflow
getAllWorkflowInstanceSnapshotsByGroup
in interface IWorkflow
groups
- - list of strings of group namespublic java.util.List<WorkflowInstance> getAllWorkflowInstances(java.lang.String ticket)
IWorkflow
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.getAllWorkflowInstances
in interface IWorkflow
ticket
- the OC ticketList
containing all WorkflowInstance
objects in the systempublic java.util.List<WorkflowInstance> getOrphanedWorkflows(java.lang.String ticket)
IWorkflow
getOrphanedWorkflows
in interface IWorkflow
ticket
- valid OC ticketList containing the orphaned workflows, or an empty list if there are none.
IUser.isAuthenticatedUserAdmin(String)
public java.util.List<WorkflowInstance> abortOrphanedWorkflows(java.lang.String ticket)
IWorkflow
IWorkflow.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.abortOrphanedWorkflows
in interface IWorkflow
ticket
- valid OC ticketList containing the orphaned workflows that were deleted, or an empty list if there are none.
IUser.isAuthenticatedUserAdmin(String)
,
IWorkflow.getOrphanedWorkflows(String)
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getTasksForProcess(java.lang.String ticket, java.lang.String processDefinitionId)
IWorkflow
getTasksForProcess
in interface IWorkflow
public java.util.Map<java.lang.String,java.lang.Object> getStartForm(java.lang.String ticket, java.lang.String processDefinitionId) throws OCException
IWorkflow
getStartForm
in interface IWorkflow
processDefinitionId
- base Activiti Workflow Definition name such as activitiReview - see bpmn.xml for the configured namesOCException