Package com.day.cq.workflow
Interface WorkflowSession
public interface WorkflowSession
The
WorkflowSession
class provides all functionality (depending
on the users rights) for managing WorkflowModel
s, Workflow
instances and their execution.
It provides methods to:
- deploy/create a workflow models
- start, stop, suspend, resume and complete a workflow instance
- retrieve and complete
WorkItem
s assigned to a user/group
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Completes the
for the assignedWorkItem
instance and assign to the nextWorkflow
according to the givenWorkflowNode
.Route
createNewModel
(String title) Creates a new blank
.WorkflowModel
createNewModel
(String title, String id) Creates a new blank
under the given path.WorkflowModel
void
delegateWorkItem
(WorkItem item, Authorizable participant) Delegates theWorkItem
to the specifiedAuthorizable
.void
deleteModel
(String id) Deletes the given
.WorkflowModel
void
deployModel
(WorkflowModel model) Deploys a new or modified
.WorkflowModel
boolean
evaluate
(WorkflowData data, String rule) Evaluate the passed rule by choosing the right rule engine.WorkItem[]
getActiveWorkItems
(long start, long limit) getActiveWorkItems
(long start, long limit, WorkItemFilter filter) Workflow[]
Returns allWorkflow
s which the
has access to.WorkflowSession
WorkItem[]
getAllWorkItems
(long start, long limit) getBackRoutes
(WorkItem item) All
to all possible already passed destinations will be returned.Route
getBackRoutes
(WorkItem item, boolean expand) All
to all possible already passed destinations will be returned.Route
getDelegatees
(WorkItem item) Returns alldelegatees
asAuthorizable
who are allowed to take over theWorkItem
getHistory
(Workflow instance) The complete ordered list ofHistoryItem
s is returned for the givenWorkflow
instance.Returns newest version of the
with the given ID.WorkflowModel
Returns the
with the given ID and version.WorkflowModel
Returns newest versions of all deployed
s.WorkflowModel
getModels
(long start, long limit) Returns newest versions of all deployed
s.WorkflowModel
getModels
(long start, long limit, WorkflowModelFilter filter) Returns newest versions of all deployed
s.WorkflowModel
getModels
(WorkflowModelFilter filter) Returns newest versions of all deployed
s.WorkflowModel
All
to all possible destinations will be returned.Route
All
to all possible destinations will be returned.Route
Returns the JCR
assigned to theSession
WorkflowSession
instance.getUser()
Returns the user that owns theWorkflowSession
.getWorkflow
(String id) Retrieve the
instance with the given ID.Workflow
Workflow[]
getWorkflows
(String[] states) Returns all
instances that are in one of the given states and to which theWorkflow
has access to.WorkflowSession
getWorkflows
(String[] states, long start, long limit) Returns all
s instances that are in one of the given states and to which theWorkflow
has access to.WorkflowSession
Returns the
that was used to create theWorkflowService
WorkflowSession
instance.getWorkItem
(String id) boolean
Checks for the workflow superuservoid
logout()
The logout method has to be called in order to clean up all jcr session references.newWorkflowData
(String payloadType, Object payload) Creates a new
instance based on the given data.WorkflowData
void
restartWorkflow
(Workflow workflow) This method restarts a workflow instance that is in a "stale" state.void
resumeWorkflow
(Workflow instance) Resumes the givenWorkflow
instance.startWorkflow
(WorkflowModel model, WorkflowData data) startWorkflow
(WorkflowModel model, WorkflowData data, Dictionary<String, String> metaData) Deprecated.It is recommended to use startWorkflow(WorkflowModel, WorkflowData, Map) instead.startWorkflow
(WorkflowModel model, WorkflowData data, Map<String, Object> metaData) void
suspendWorkflow
(Workflow instance) Suspends the givenWorkflow
instance.void
terminateWorkflow
(Workflow instance) Terminates the givenWorkflow
instance.void
updateWorkflowData
(Workflow instance, WorkflowData data) Updates the workflow data of a running workflow instance to the givenWorkflowData
.
-
Method Details
-
getWorkflowService
WorkflowService getWorkflowService()Returns the
that was used to create theWorkflowService
WorkflowSession
instance.- Returns:
- The
that was used to create theWorkflowService
WorkflowSession
instance.
-
getSession
Session getSession()Returns the JCR
assigned to theSession
WorkflowSession
instance.- Returns:
- The JCR
assigned to theSession
WorkflowSession
instance.
-
getUser
Authorizable getUser()Returns the user that owns theWorkflowSession
.- Returns:
- The user that owns the
WorkflowSession
.
-
evaluate
Evaluate the passed rule by choosing the right rule engine.- Parameters:
data
- workflow data to apply the rulerule
- rule to execute- Returns:
true
if rule evaluation is true or the rule isnull
-
deployModel
Deploys a new or modified
.WorkflowModel
- Parameters:
model
- The
to be deployed.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error prevents deployment of the
.WorkflowModel
-
createNewModel
Creates a new blank
.WorkflowModel
- Parameters:
title
- The title of the newly created
.WorkflowModel
- Returns:
- The newly created
.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error prevents creation of the
.WorkflowModel
-
createNewModel
Creates a new blank
under the given path.WorkflowModel
- Parameters:
title
- The title of the newly created
.WorkflowModel
id
- The ID of the new
.WorkflowModel
- Returns:
- The newly created
.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error prevents creation of the
.WorkflowModel
-
deleteModel
Deletes the given
.WorkflowModel
- Parameters:
id
- The ID of the
to be deleted.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error prevents deployment of the
.WorkflowModel
-
getModels
Returns newest versions of all deployed
s.WorkflowModel
- Returns:
- All deployed
at their newest versions.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error occurs while fetching the
s.WorkflowModel
-
getModels
Returns newest versions of all deployed
s.WorkflowModel
- Parameters:
filter
- The
used for getting workflow modelsWorkflowModelFilter
- Returns:
- All deployed
at their newest versions.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error occurs while fetching the
.WorkflowModel
-
getModels
Returns newest versions of all deployed
s.WorkflowModel
- Parameters:
start
- Start index of the result set.limit
- Limit of the result set.- Returns:
- All deployed
at their newest versions.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error occurs while fetching the
s.WorkflowModel
-
getModels
ResultSet<WorkflowModel> getModels(long start, long limit, WorkflowModelFilter filter) throws WorkflowException Returns newest versions of all deployed
s.WorkflowModel
- Parameters:
start
- Start index of the result set.limit
- Limit of the result set.filter
- The
used for getting workflow modelsWorkflowModelFilter
- Returns:
- All deployed
at their newest versions.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error occurs while fetching the
s.WorkflowModel
-
getModel
Returns newest version of the
with the given ID.WorkflowModel
- Parameters:
id
- The ID of theWorkflowModel
.- Returns:
- The newest version of the
with the given ID or null, if noWorkflowModel
with the given ID exists.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error occurs while fetching the
.WorkflowModel
-
getModel
Returns the
with the given ID and version.WorkflowModel
- Parameters:
id
- The ID of theWorkflowModel
.version
- The version of theWorkflowModel
.- Returns:
- The
with the given ID and version or null, if noWorkflowModel
matches the given ID and/or version.WorkflowModel
- Throws:
WorkflowException
- Thrown in case an error occurs while fetching the
.WorkflowModel
VersionException
- Thrown in case the version does not exist or can not be accessed.
-
startWorkflow
- Parameters:
model
-
to be used for the newWorkflowModel
Workflow
instance.data
-
to be attached to the new workflow instance.WorkflowData
- Returns:
- The
of the newly startedWorkflow
Workflow
instance. - Throws:
WorkflowException
- Thrown in case the workflow process cannot be started.
-
startWorkflow
Workflow startWorkflow(WorkflowModel model, WorkflowData data, Dictionary<String, String> metaData) throws WorkflowExceptionDeprecated.It is recommended to use startWorkflow(WorkflowModel, WorkflowData, Map) instead.- Parameters:
model
-
to be used for the newWorkflowModel
Workflow
instance.data
-
to be attached to the new workflow instance.WorkflowData
metaData
- Meta data assigned to the new
.Workflow
- Returns:
- The
of the newly startedWorkflow
Workflow
instance. - Throws:
WorkflowException
- Thrown in case the workflow process cannot be started.
-
startWorkflow
Workflow startWorkflow(WorkflowModel model, WorkflowData data, Map<String, Object> metaData) throws WorkflowException- Parameters:
model
-
to be used for the newWorkflowModel
Workflow
instance.data
-
to be attached to the new workflow instance.WorkflowData
metaData
- Meta data assigned to the new
.Workflow
- Returns:
- The
of the newly startedWorkflow
Workflow
instance. - Throws:
WorkflowException
- Thrown in case the workflow process cannot be started.
-
terminateWorkflow
Terminates the givenWorkflow
instance.- Parameters:
instance
- The
instance that shall be terminated.Workflow
- Throws:
WorkflowException
- Thrown in case the workflow instance cannot be terminated.
-
resumeWorkflow
Resumes the givenWorkflow
instance.- Parameters:
instance
- The
instance that shall be resumed.Workflow
- Throws:
WorkflowException
- Thrown in case the workflow instance cannot be resumed.
-
suspendWorkflow
Suspends the givenWorkflow
instance.- Parameters:
instance
- The
of the workflow instance that shall be suspended.Workflow
- Throws:
WorkflowException
- Thrown in case the workflow instance cannot be suspended.
-
getActiveWorkItems
All
s assigned to an activeWorkItem
Workflow
instance and the respective user of theWorkflowSession
will be returned.- Returns:
- All
s assigned to an active workflow and the respective usersWorkItem
WorkflowSession
. - Throws:
WorkflowException
- Thrown in case an exception occurs while fetching the active
s.WorkItem
-
getActiveWorkItems
All
s assigned to an activeWorkItem
Workflow
instance and the respective user of theWorkflowSession
will be returned.- Parameters:
start
- Start index of the result set.limit
- Limit of the result set.- Returns:
- All
s assigned to an active workflow and the respective usersWorkItem
WorkflowSession
. - Throws:
WorkflowException
- Thrown in case an exception occurs while fetching the active
s.WorkItem
-
getActiveWorkItems
ResultSet<WorkItem> getActiveWorkItems(long start, long limit, WorkItemFilter filter) throws WorkflowException All
s assigned to an activeWorkItem
Workflow
instance and the respective user of theWorkflowSession
will be returned.- Parameters:
start
- Start index of the result set.limit
- Limit of the result set.filter
- filter for work items- Returns:
- All
s assigned to an active workflow and the respective usersWorkItem
WorkflowSession
. - Throws:
WorkflowException
- Thrown in case an exception occurs while fetching the active
s.WorkItem
-
getAllWorkItems
All
s assigned to aWorkItem
Workflow
instance and assigned to the respective user of theWorkflowSession
will be returned.- Returns:
- All
s assigned to aWorkItem
Workflow
instance and the respective usersWorkflowSession
. - Throws:
WorkflowException
- Thrown in case an exception occurs while fetching all
s.WorkItem
-
getAllWorkItems
All
s assigned to aWorkItem
Workflow
instance and assigned to the respective user of theWorkflowSession
will be returned.- Parameters:
start
- Start index of the result set.limit
- Limit of the result set.- Returns:
- All
s assigned to aWorkItem
Workflow
instance and the respective usersWorkflowSession
. - Throws:
WorkflowException
- Thrown in case an exception occurs while fetching all
s.WorkItem
-
getWorkItem
Returns the
with the given ID assigned to aWorkItem
Workflow
instance, but only if the respective usersWorkflowSession}
has access to it.- Parameters:
id
- The ID of the
.WorkItem
- Returns:
- The
with the given ID.WorkItem
- Throws:
WorkflowException
- Thrown in case an exception is occurs while fetching the
.WorkItem
-
getWorkflows
Returns all
instances that are in one of the given states and to which theWorkflow
has access to.WorkflowSession
- Parameters:
states
- The list of states used to select the
instances.Workflow
- Returns:
- All
s that are in one of the given states and to which theWorkflow
has access to.WorkflowSession
- Throws:
WorkflowException
- Thrown in case an error occurred while retrieving the
s.Workflow
-
getWorkflows
Returns all
s instances that are in one of the given states and to which theWorkflow
has access to.WorkflowSession
- Parameters:
states
- The list of states used to select the
instances.Workflow
start
- Start index of the result set.limit
- Limit of the result set.- Returns:
- All
s that are in one of the given states and to which theWorkflow
has access to.WorkflowSession
- Throws:
WorkflowException
- Thrown in case an error occurred while retrieving the
s.Workflow
-
getAllWorkflows
Returns allWorkflow
s which the
has access to.WorkflowSession
- Returns:
- All
s theWorkflow
has access to.WorkflowSession
- Throws:
WorkflowException
- Thrown in case an error occurred while retrieving the
s.Workflow
-
getWorkflow
Retrieve the
instance with the given ID.Workflow
- Parameters:
id
- The ID of the
instance that should be returned.Workflow
- Returns:
- The
instance with the given ID or null, if noWorkflow
instance ID matches the given ID.Workflow
- Throws:
WorkflowException
- Thrown in case an unexpected error occurs while retrieving the
.Workflow
-
complete
Completes the
for the assignedWorkItem
instance and assign to the nextWorkflow
according to the givenWorkflowNode
.Route
- Parameters:
item
- The
to be completed.WorkItem
route
- The
to the destination to be advanced.Route
- Throws:
WorkflowException
- Thrown in case an error is occurs while completing the
.WorkItem
-
getRoutes
All
to all possible destinations will be returned. Rules will be already executed, thus all routes that are active can be selected.Route
- Parameters:
item
- The
to retrieve routes from.WorkItem
- Returns:
- All
s to advance.Route
- Throws:
WorkflowException
- Thrown in case an error is occurs while evaluating the
s.Route
-
getRoutes
All
to all possible destinations will be returned. Rules will be already executed, thus all routes that are active can be selected.Route
- Parameters:
item
- The
to retrieve routes from.WorkItem
expand
- Expands the group members if the destination points to a group. Means that not only the group is retourned as route but as well all group members.- Returns:
- All
s to advance.Route
- Throws:
WorkflowException
- Thrown in case an error is occurs while evaluating the
s.Route
-
getBackRoutes
All
to all possible already passed destinations will be returned. Rules will be already executed, thus all routes that are active can be selected.Route
- Parameters:
item
- The
to retrieve back routes from.WorkItem
- Returns:
- All
s to advance (back).Route
- Throws:
WorkflowException
- Thrown in case an error is occurs while evaluating the
s.Route
-
getBackRoutes
All
to all possible already passed destinations will be returned. Rules will be already executed, thus all routes that are active can be selected.Route
- Parameters:
item
- The
to retrieve back routes from.WorkItem
expand
- Expands the group members if the destination points to a group. Means that not only the group is retourned as route but as well all group members.- Returns:
- All
s to advance (back).Route
- Throws:
WorkflowException
- Thrown in case an error is occurs while evaluating the
s.Route
-
newWorkflowData
Creates a new
instance based on the given data.WorkflowData
- Parameters:
payloadType
- The type of payload for the new
instance.WorkflowData
payload
- The payload object used for creating the new
instance.WorkflowData
instance.WorkflowData
- Returns:
- The new
instance.WorkflowData
-
getDelegatees
Returns alldelegatees
asAuthorizable
who are allowed to take over theWorkItem
- Parameters:
item
- The workitem- Returns:
- The list of
Authorizable
s who are allowed to act as delegatees. - Throws:
WorkflowException
- in case the delegatees could not be retrieved for some reason
-
delegateWorkItem
void delegateWorkItem(WorkItem item, Authorizable participant) throws WorkflowException, AccessControlException Delegates theWorkItem
to the specifiedAuthorizable
.- Parameters:
item
- the corresponding workitemparticipant
- the participant to delegate- Throws:
AccessControlException
- if the given participant is not allowed to take over the workitem.WorkflowException
- in case the delegation fails in regards of persisting the "new" state.
-
getHistory
The complete ordered list ofHistoryItem
s is returned for the givenWorkflow
instance.- Parameters:
instance
-Workflow
instance- Returns:
List
ofHistoryItem
s- Throws:
WorkflowException
- in case the history item retrieval fails
-
updateWorkflowData
Updates the workflow data of a running workflow instance to the givenWorkflowData
.- Parameters:
instance
- The
instance for which to update the data.Workflow
data
- The
for the update.WorkflowData
-
logout
void logout()The logout method has to be called in order to clean up all jcr session references. -
isSuperuser
boolean isSuperuser()Checks for the workflow superuser- Returns:
true
if the user is a workflow superuser
-
restartWorkflow
This method restarts a workflow instance that is in a "stale" state. means there is no workitem around. this could happen in case the eventing which controls the the script/java processes purges an event/job (there is the depending (serialized) workitem stored). The restart tries to start the workflow at the position right before the workitem got lost. Note: This is an administrative method and can only be used by a workflow superuser!- Parameters:
workflow
- workflow- Throws:
WorkflowException
- in case an error occurs
-