Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

    • Service Instance Rendering and Detail Widget
      • Capabilities
        • Get a process definition XML through the Service Id and Process instance association.
        • use Camunda REST API, GET /process-defintion/{id}/xml
        • Get the state of a process instance from the activity-instances
        • Use Camunda REST API, get/process-instance/{id}/activity-instances
        • Render the BPMN XML with bpmn.io and places markers on top of it, and provide Service instance detail views.
      • Design
        • This widget will be on the secondary/pop-up browser page. 
          • The Service List page will be the primiary page, so the user can open multiple Service Instance Rendering and Detail pages.
          • The number of pages can be limited to the default 10, but it can be configured.
        • The search criteria fields are for display only, and they cannot be changed.
        • The Detail panel is scrollable and display contents with the tag: value formt.
        • Query a process instance with the matched 'serviceInstanceId' process variable.
          • get a process instande id: query bases on the process variable, 
            • GET /history/variable-instance/{variableValue}, where {variableValue} = 'serviceIntanceId' ;
          • query BPML XML based on a process instance id
            • GET /process-definition/{id}/xml
          • query the process instance detail such as process variables
            • GET /process-instance/{id}/variables
            • Display the process variables on the Service Instance Detail panel
          • query and activity instance (tree) for the process instance id
            • GET /process-instance/{id}/activity-instances
            • GET /history/activity-instance/{id}/activity-instances
            • The response provides child activity instance info. By using this we can find the parent and child process instnce id and definition id.
              • If the current process instance id has its parent, enable the Drill-Up button.
            • When a user clicks on a task, display the task varables
              • GET /task/{id}variables
              • When the task activity type is call activity, it enables the Drill-Down button.
        • Render the process instance diagram with the retrieved XML.
          • use bpmn.io javascript library for the XML rendering and event attachments for process instance tasks.

...

  • REST APIs for providing data to UIs
    • Capabilities
      • Provides REST services, by utilzing 1) Camunda REST APIs, such as BPMN XML string, process activity data, process variable, statistic, and 2) SO Request DB APIs for a service list.
      • Consolidate data responses from multpile multple Camunda calls (both from process and history database) and feed them to UIs.
      • Use of HistoryService APIs, example, processEngine.getHistoryService().createHistoricProcessVariableQuery().xyz
      • Set a History level to ACTIVITY as a minimum; AUDIT (default) level for process variable tracing
      • Provides workflow tracing (between parent-child workflows, interaction with other services; service task in and out); example,
        • processEngine.getRuntimeService().createExecutionQuery().processVariableValueEquals("serviceInstanceId", serviceInstanceId).singleResult();
      • Custom Query
        • Custom Query against History ACT_HI_DETAIL database table, as needed
      • Create a REST API, getServiceList with search criteria
        • Enhance MsoRequestsDbAdapter and MsoRequestsDbAdapterImpl to implement getInfraRequest(...) with additional parameters
        • invoke getInfraRequest(...) to collect service list data based on search criteria.
    • Design
      • Write REST APIs 
        • getServiceList(...) invokes new getInfraRequest(...)
        • getProcessInstanceId(String serviceInstanceId);
        • getprocessDiagram(String processInstanceId); getProcessDiagram(String serviceInstanceId);
        • getprocessInstanceDetail(String processInstanceId); getProcessInstanceDetail(String serviceInstanceId);
        • getProcessInstanceActivity(String processInstanceId); getProcessInstanceActivity(String serviceInstanceId);
        • getProcessTaskDetail(String taskId);
        • getProcessTaskType(String taskid);

...