[adsenseyu2]
Following are key source code blocks/classes/APIs to consider for you to get started with Bonita REST API implementation:
- AccessorUtil: This is the gateway API which is used to get instance of key API implementations. For example, AccessorUtil.getRuntimeAPI() gets you an instance of RuntimeAPI to work with.
- ProcessDefinitionUUID: The ProcessDefinitionUUID (org.ow2.bonita.facade.uuid.ProcessDefinitionUUID) class is one of the important parameter required to create an instance of process, such as ProcessInstanceUUID. Following code helps instantiate the process:
ProcessDefinitionUUID processDefinitionUUID = new ProcessDefinitionUUID(process, version); try { return runtimeAPI.instantiateProcess(processDefinitionUUID, params); } catch (ProcessNotFoundException e) { } catch (VariableNotFoundException e) { }
- LightTaskInstance: LightTaskInstance (org.ow2.bonita.light.LightTaskInstance) defines the tasks for the workflow.
- RuntimeAPI: RuntimeAPI (org.ow2.bonita.facade.RuntimeAPI) is used to start the tasks by setting the process instance variables and finish the tasks. Some of the important APIs methods are following:
- startTask
- setProcessInstanceVariables
- finishTasks
Following is the source code representing usage of above methods to create a task:
public void createTask(final String taskId, final Map<String, Object> taskVariables) { ActivityInstanceUUID activityUUID = new ActivityInstanceUUID(taskId); ProcessInstanceUUID processUUID; runtimeAPI = AccessorUtil.getRuntimeAPI(); queryRuntimeAPI = AccessorUtil.getQueryRuntimeAPI(); try { processUUID = queryRuntimeAPI.getLightTaskInstance(activityUUID).getProcessInstanceUUID(); LightProcessInstance lpInstance = queryRuntimeAPI.getLightProcessInstance(processUUID); runtimeAPI.startTask(activityUUID, true); runtimeAPI.setProcessInstanceVariables(lpInstance.getProcessInstanceUUID(), taskVariables); runtimeAPI.finishTask(activityUUID, true); } catch (TaskNotFoundException e) { } catch (InstanceNotFoundException e) { } catch (IllegalTaskStateException e) { } catch (VariableNotFoundException e) { } }
- ProcessInstanceUUID: ProcessInstanceUUID (org.ow2.bonita.facade.uuid.ProcessInstanceUUID) represents the actual process instance
- LightTaskInstance: Represents the task instance. Following code can be used to create the task instance:
public LightTaskInstance getTask(final String taskId) { ActivityInstanceUUID activityInstanceUUID = new ActivityInstanceUUID(taskId); try { return queryRuntimeAPI.getLightTaskInstance(activityInstanceUUID); } catch (TaskNotFoundException e) { } return null; }
[adsenseyu1]
Latest posts by Ajitesh Kumar (see all)
- Agentic Reasoning Design Patterns in AI: Examples - October 18, 2024
- LLMs for Adaptive Learning & Personalized Education - October 8, 2024
- Sparse Mixture of Experts (MoE) Models: Examples - October 6, 2024
I found it very helpful. However the differences are not too understandable for me