Some Source Code for Bonita Rest API Implementation

0

[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]

Ajitesh Kumar

Ajitesh Kumar

Ajitesh has been recently working in the area of AI and machine learning. Currently, his research area includes Safe & Quality AI. In addition, he is also passionate about various different technologies including programming languages such as Java/JEE, Javascript and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data etc.

He has also authored the book, Building Web Apps with Spring 5 and Angular.
Ajitesh Kumar

Leave A Reply

Time limit is exhausted. Please reload the CAPTCHA.