org.ow2.bonita.facade
Interface RuntimeAPI

All Superinterfaces:
RemoteRuntimeAPI

public interface RuntimeAPI
extends RemoteRuntimeAPI

To manage process, process instance and task life cycle operations as well as to set/add/update variables within activity or instance. Default states for process, processes instances, tasks (aka manual activities) are:

Author:
Marc Blachon, Guillaume Porcher, Charles Souillard, Miguel Valdes, Pierre Vigneras
See Also:
TxHook

Method Summary
 void assignTask(TaskUUID taskUUID)
          Launches the execution of both roleMapper and performerAssignment for the given task.
 void assignTask(TaskUUID taskUUID, java.util.Set<java.lang.String> candidates)
          Forces to replace the candidates set of the given task by the given candidates set.
 void assignTask(TaskUUID taskUUID, java.lang.String actorId)
          Forces to assign the given task to the given actor id.
 void deleteAllProcessInstances(ProcessDefinitionUUID processUUID)
          Deletes all runtime objects for all instances created with the given process UUID and delete also all there recorded data from the journal.
 void deleteProcessInstance(ProcessInstanceUUID instanceUUID)
          Deletes all runtime objects for the process instance with the given instance UUID and delete also recorded data from the journal.
 void finishTask(TaskUUID taskUUID, boolean taskAssign)
          Finishes the task.
 ProcessInstanceUUID instantiateProcess(ProcessDefinitionUUID processUUID)
          Creates an instance of the specified process and start the execution.
 ProcessInstanceUUID instantiateProcess(ProcessDefinitionUUID processUUID, java.util.Map<java.lang.String,java.lang.Object> variables)
          Creates an instance of the specified process with the added variable map and start the execution.
 void resumeTask(TaskUUID taskUUID, boolean taskAssign)
          Resumes the task if the task has SUSPENDED state.
 void setActivityInstanceVariable(ActivityInstanceUUID activityUUID, java.lang.String variableId, java.lang.Object variableValue)
          Searches for variable with the given activity UUID and variable Id.
 void setProcessInstanceVariable(ProcessInstanceUUID instanceUUID, java.lang.String variableId, java.lang.Object variableValue)
          Searches for variable with id variableId within the given process instance with ProcessInstanceUUID instanceUUID.
 void setVariable(ActivityInstanceUUID activityUUID, java.lang.String variableId, java.lang.Object variableValue)
           Searches for variable with id variableId within the given activity instance with the given UUID.
 void startTask(TaskUUID taskUUID, boolean assignTask)
          Starts the task.
 void suspendTask(TaskUUID taskUUID, boolean assignTask)
          Suspends the task if the task has EXECUTING state.
 

Method Detail

instantiateProcess

ProcessInstanceUUID instantiateProcess(ProcessDefinitionUUID processUUID)
                                       throws ProcessNotFoundException
Creates an instance of the specified process and start the execution. returned instance has STARTED state. If the first activity has StartMode=manual then a task has been created. If the first activity has StartMode=automatic then the automatic behavior of the activity has been started.

Specified by:
instantiateProcess in interface RemoteRuntimeAPI
Parameters:
processUUID - the process UUID.
Returns:
the UUID of the created instance.
Throws:
ProcessNotFoundException - if the process has not been found.
BonitaInternalException - if an exception occurs.

instantiateProcess

ProcessInstanceUUID instantiateProcess(ProcessDefinitionUUID processUUID,
                                       java.util.Map<java.lang.String,java.lang.Object> variables)
                                       throws ProcessNotFoundException
Creates an instance of the specified process with the added variable map and start the execution. returned instance has STARTED state. If the first activity has StartMode=manual then a task has been created. If the first activity has StartMode=automatic then the automatic behavior of the activity has been started.

Specified by:
instantiateProcess in interface RemoteRuntimeAPI
Parameters:
processUUID - the process UUID.
variables - variables added to the variables already set within the process definition.
Returns:
the UUID of the created instance.
Throws:
ProcessNotFoundException - if the process has not been found.
BonitaInternalException - if an exception occurs.

startTask

void startTask(TaskUUID taskUUID,
               boolean assignTask)
               throws TaskNotFoundException,
                      IllegalTaskStateException
Starts the task. If successful, this operation changes task state from READY to EXECUTING.
If the boolean assignTask is true the task is also assigned to the logged user otherwise the assignment of the task is not affected by this operation.

Specified by:
startTask in interface RemoteRuntimeAPI
Parameters:
taskUUID - the task UUID.
assignTask - true to assign the task to the logged user; false to don't assign the task.
Throws:
TaskNotFoundException - if the task has not been found.
IllegalTaskStateException - if the state of the task has not READY state.
BonitaInternalException - if an exception occurs.

finishTask

void finishTask(TaskUUID taskUUID,
                boolean taskAssign)
                throws TaskNotFoundException,
                       IllegalTaskStateException
Finishes the task. If successful, this operation changes task state from EXECUTING to FINISHED.
If the boolean assignTask is true the task is also assigned to the logged user otherwise the assignment of the task is not affected by this operation.

Specified by:
finishTask in interface RemoteRuntimeAPI
Parameters:
taskUUID - the task UUID.
Throws:
TaskNotFoundException - if the task has not been found.
IllegalTaskStateException - if the state of the task has not EXECUTING state.
BonitaInternalException - if an exception occurs.

suspendTask

void suspendTask(TaskUUID taskUUID,
                 boolean assignTask)
                 throws TaskNotFoundException,
                        IllegalTaskStateException
Suspends the task if the task has EXECUTING state.
If successful, this operation changes task state from EXECUTING to SUSPENDED.
If the boolean assignTask is true the task is also assigned to the logged user otherwise the assignment of the task is not affected by this operation.

Specified by:
suspendTask in interface RemoteRuntimeAPI
Parameters:
taskUUID - the task UUID.
Throws:
TaskNotFoundException - if the task has not been found.
IllegalTaskStateException - if the state of the task has not either READY or EXECUTING state.
BonitaInternalException - if an exception occurs.

resumeTask

void resumeTask(TaskUUID taskUUID,
                boolean taskAssign)
                throws TaskNotFoundException,
                       IllegalTaskStateException
Resumes the task if the task has SUSPENDED state. If successful, this operation changes task state from SUSPENDED to EXECUTING.
If the boolean assignTask is true the task is also assigned to the logged user otherwise the assignment of the task is not affected by this operation.

Specified by:
resumeTask in interface RemoteRuntimeAPI
Parameters:
taskUUID - the task UUID.
Throws:
TaskNotFoundException - if the task has not been found.
IllegalTaskStateException - if the state of the task has not SUSPENDED state.
BonitaInternalException - if an other exception occurs.

assignTask

void assignTask(TaskUUID taskUUID)
                throws TaskNotFoundException
Launches the execution of both roleMapper and performerAssignment for the given task.
If a roleMapper has been defined within the participant referenced by the performer of the task, it is executed.
If a performerAssignment has been defined within the activity of the task it is also executed.

Specified by:
assignTask in interface RemoteRuntimeAPI
Parameters:
taskUUID - the task UUID.
Throws:
TaskNotFoundException - if the task has not been found.
BonitaInternalException - if an other exception occurs.

assignTask

void assignTask(TaskUUID taskUUID,
                java.lang.String actorId)
                throws TaskNotFoundException
Forces to assign the given task to the given actor id.

Specified by:
assignTask in interface RemoteRuntimeAPI
Parameters:
taskUUID - the task UUID.
actorId - the actor id.
Throws:
TaskNotFoundException - if the task has not been found.

assignTask

void assignTask(TaskUUID taskUUID,
                java.util.Set<java.lang.String> candidates)
                throws TaskNotFoundException
Forces to replace the candidates set of the given task by the given candidates set.

Specified by:
assignTask in interface RemoteRuntimeAPI
Parameters:
taskUUID - the task UUID.
candidates - the set of candidate actors.
Throws:
TaskNotFoundException - if the task has not been found.

setProcessInstanceVariable

void setProcessInstanceVariable(ProcessInstanceUUID instanceUUID,
                                java.lang.String variableId,
                                java.lang.Object variableValue)
                                throws InstanceNotFoundException,
                                       VariableNotFoundException
Searches for variable with id variableId within the given process instance with ProcessInstanceUUID instanceUUID.
If the variable is found, the given value is set.
The field selectedValue of Enumeration type can contain only one value from the possibleValues list field.

Specified by:
setProcessInstanceVariable in interface RemoteRuntimeAPI
Parameters:
instanceUUID - the instance UUID.
variableId - the variable id.
variableValue - the variable value.
Throws:
InstanceNotFoundException - if the instance has not been found.
VariableNotFoundException - if the variable has not been found.
BonitaInternalException - if an exception occurs.

setVariable

void setVariable(ActivityInstanceUUID activityUUID,
                 java.lang.String variableId,
                 java.lang.Object variableValue)
                 throws ActivityNotFoundException,
                        VariableNotFoundException

Searches for variable with id variableId within the given activity instance with the given UUID.
If the variable is found within the activity, the given value is set.
If the variable is not found within the activity the search is performed within the process instance.
If the variable is found within the process instance, the given value is set.

The field selectedValue of Enumeration type can contain only one value from the possibleValues list field.

Specified by:
setVariable in interface RemoteRuntimeAPI
Parameters:
activityUUID - the activity UUID.
variableId - the variable id.
variableValue - the variable value.
Throws:
VariableNotFoundException - if the variable has not been found.
BonitaInternalException - if an exception occurs.
ActivityNotFoundException

setActivityInstanceVariable

void setActivityInstanceVariable(ActivityInstanceUUID activityUUID,
                                 java.lang.String variableId,
                                 java.lang.Object variableValue)
                                 throws ActivityNotFoundException,
                                        VariableNotFoundException
Searches for variable with the given activity UUID and variable Id.
If the activity variable is found, the given value is set.
The field selectedValue can contain only one value from the possibleValues list field.

Specified by:
setActivityInstanceVariable in interface RemoteRuntimeAPI
Parameters:
activityUUID - the activity UUID.
variableId - the variable id.
variableValue - the variable value.
Throws:
ActivityNotFoundException - if the activity has not been found.
VariableNotFoundException - if the variable has not been found.
BonitaInternalException - if an exception occurs.

deleteProcessInstance

void deleteProcessInstance(ProcessInstanceUUID instanceUUID)
                           throws InstanceNotFoundException,
                                  UndeletableInstanceException
Deletes all runtime objects for the process instance with the given instance UUID and delete also recorded data from the journal. If this instance was not found in the journal, then the archived instance is deleted from history. If the instance represented by the given instanceUUID has a parentInstance, then UndeletableInstanceException is thrown.

Specified by:
deleteProcessInstance in interface RemoteRuntimeAPI
Parameters:
instanceUUID - the instance UUID.
Throws:
InstanceNotFoundException - if if the instance has not been found.
BonitaInternalException - if an exception occurs.
UndeletableInstanceException

deleteAllProcessInstances

void deleteAllProcessInstances(ProcessDefinitionUUID processUUID)
                               throws ProcessNotFoundException,
                                      UndeletableInstanceException
Deletes all runtime objects for all instances created with the given process UUID and delete also all there recorded data from the journal. If instances some instances of this process were not found in the journal, then the archived instances are deleted from history.

Specified by:
deleteAllProcessInstances in interface RemoteRuntimeAPI
Parameters:
processUUID - the process UUID.
Throws:
ProcessNotFoundException - if the process with the given UUID does not exists.
BonitaInternalException - if an exception occurs.
UndeletableInstanceException


Copyright © 2008 OW2 Consortium. All Rights Reserved.