Bonita REST API glossary
List of Bonita REST API definitions and descriptions.
Definition
Definition: in Bonita Studio you can define your processes. A definition of a process includes name, version, definition of actors name…
The process definition includes tasks definition.
The definition of tasks includes connectors, contract inputs declaration (for user task)…
Instance : when you start a process (through Applications, or the API) what actually happen is a creation of a new process instance based on the selected process definition.
Starting a process instance will actually start a new instance of the start event and usually start a new instance of the first task.
| if a process loops on a task, multiple instances of a same task definition will be created. | 
Case: A case is a process instance.
ProcessInstance (REST: case)
- 
id: id of the process instance 
- 
callerId (not in REST): id of the call activity use to create this process instance. null/0if process instance was not created using a call activity.
- 
processDefinitionId: the id of process definition use to create this process instance. 
- 
rootProcessInstanceId (rootCaseId for REST): the id of the top parent process instance. Parents exist for event sub-processes and when instance was created using a call activity. If there is no parent it is his own id. 
- 
endDate: the date on which the process instance is marked as completed. 
| the completed state is a transitionnary state. Right after a process instance is completed, it is archived. | 
FlowNodeInstance (REST: flowNode)
Use to represent an instance of a none start event, user task, call activity, multi instance activity (the container instance and also included instances), gateways…
- 
id: id of the FlowNodeInstance 
- 
displayDescription: dynamically generated human readable flow node description. Only apply to UserTaskInstance, empty in REST API and null in Engine API otherwise.
- 
displayName: same as for displayDescriptionbut for the name. Only apply toUserTaskInstance, empty in REST API and null in Engine API otherwise.
- 
executedBy: the id (long) of the user who performed this flow node. If performed by a substitute id is set to 0 and the performer id is stored in executedBySubstitute.
- 
executedBySubstitute: the id (long) of the user who performed this flow node in case where a substitute did it. If flow node was not performed by a substitute the value is set to 0 and the performer is stored in executedBy. It applies only to flow nodes that are user tasks
- 
flownodeDefinitionId (not in REST): the id of the flow node definition who lead to this flow node instance creation. In the case of a multi-activity task instance, each instance points to the original flow node multi instance definition. 
- 
parentContainerId (parentCaseId for REST): - 
Id is not always an id of a process instance: - 
For UserTaskorManualTaskInstance,AutomaticTaskInstance(BPMN service task),BoundaryEventInstance,CallActivityInstance: id of the process instance that include directly the instance of the element. Behavior is the same in case of a process instance created by a call activity: id returned is the id of the child process that includes the flow node.
- 
For a flow node that is created by a mutli-instantiated task definition: parent flow node instance id. 
- 
For BoundaryEventInstance: id of the parent of the attached task instance
- 
For tasks in event sub process: event sub process id 
 
- 
 
- 
- 
parentProcessInstanceId (parentCaseId for REST): - 
Always returns the immediate containing process instance ID. Don’t escalate to parent process. 
- 
For event sub-process: id of the process instance that initiate the sub-process event. 
 
- 
- 
processDefinitionId (processId for REST): Returns the ID of the process definition where this FlowNodeInstanceis defined
- 
rootContainerId (rootCaseId for REST): Always return the top (root) process instance id. Compare to parentContainerIdescalate to the root process instance when called on aFlowNodeInstancethat is part of a process instance created by a call activity execution.
- 
parentTaskId for REST: Only apply to sub task (task dynamically added by user at runtime). Represent the id of the task from which the subtask was created. 
For a complete description of the different elements, check out the following pages:
- 
on the engine side, the Javadoc page 
- 
on the web site, the REST API page page