This content is dedicated to our next version. It is work in progress: its content will evolve until the new version is released.

Before that time, it cannot be considered as official.

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/0 if 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 displayDescription but for the name. Only apply to UserTaskInstance, 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 UserTask or ManualTaskInstance, 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 FlowNodeInstance is defined

  • rootContainerId (rootCaseId for REST): Always return the top (root) process instance id. Compare to parentContainerId escalate to the root process instance when called on a FlowNodeInstance that 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: