Camunda custom workflows

Camunda custom workflows

The purpose of this page is to describe different methods that can be used to include a custom BPMN workflow to ONAP SO (Casablanca Release)

Add workflows to source code

This option might be useful case you have several SO project customization and you are already building your own SO project.

 

Case you need to add a custom workflow to a running ONAP instance, you can use one of the below methods :

Prerequisite : For ONAP casablanca release, Camunda apps are not exposed by default, so in order to be able to access Camunda applications (rest-engine, cockpit, tasklist,..), you need to expose the so-bpmn-infra deployment in your running ONAP instance.

Ex. : use "kubectl -n onap  expose deployment onap-so-so-bpmn-infra --type=NodePort --name=onap-so-bpmn-infra-svc-expose" to get a new port for camunda applications pod.

Ex. : use "kubectl -n onap  expose deployment onap-so-so-bpmn-infra --type=NodePort --name=onap-so-bpmn-infra-svc-expose" to get a new port for camunda applications pod.

Using Camunda Modeler deploy option

Using cURL

Running the custom workflows

You can run the workflow directly using below URI

http://{{onap_LB@}}:{{camunda_Pod_Port}}/sobpmnengine/process-definition/key/{{BPMN_NAME}}/start

http://{{onap_LB@}}:{{camunda_Pod_Port}}/sobpmnengine/process-definition/key/{{BPMN_NAME}}/start

The above link will bypass the API handler and run the required workflow directly.

How SO links a Service or VNF to a workflow ?

To be able to run the workflows via the APIhandler, you first need to manually create a link between the service UUID and the associated workflow in the service, service_recipe and vnf_recipe tables in SO db (catalogdb) , in order to have SO trigger the custom workflow when the createinstance action is triggered to SO API handler.

For example below, you can see in the screenshot how a custom workflow is added and linked to a specific service model in the SO service_recipe table.

 

You can find the SERVICE_MODEL_UUID from the services table, when a new service model is distributed from SDC to SO, a new row with the service model UUID will be created there.

Where are the BPMN workflows in SO ?

 

If you check the camunda database schema here https://docs.camunda.org/manual/latest/user-guide/process-engine/database/

 The process definitions are in the act_re_procdef table in camunda db:

 

Inside so-bpmn-infra /app/app.jar, if we follow the path from the table above, we can find all the bpmn, e.g. BOOT-INF/classes/process/CreateVfModuleInfra.bpmn, as shown in the screenshot below.