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)
...
Case you need to add a custom workflow to a running ONAP instance, you can use on 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.
...
- This method is useful in case you need to include some script files in your deployment.
- Specify Script format (JavaScript, groovy,..).
- Specify Script type as "External Script" in your script task.
- Refer to the script name using URI "deployment://{{script_file_name}}".
Use below cURL command to deploy the BPMN file and its associated scripts to your running ONAP instance
curl -w \
-H "Accept: application/json" \
-F "deployment-name=rest-test" \
-F "enable-duplicate-filtering=false" \
-F "deploy-changed-only=falses" \
-F "ExternalScript.bpmn=@/PATH_TO_BPMN_File/ExternalScript.bpmn" \
-F "externalScript.js=@/PATH_TO_SCRIPT_File/externalScript.js" \
http://{{onap_LB@}}:{{camunda_Pod_Port}}/sobpmnengine/deployment/create
- Use the Camunda cockpit application to view your custom workflow.
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 |
---|
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 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.