A util for bpmn-js to extract Camunda BPM process variables from a BPMN 2.0 diagram.
npm install @bpmn-io/extract-process-variables
An util for bpmn-js to extract Camunda BPM process variables from a BPMN 2.0 diagram.
``sh`
$ npm i --save @bpmn-io/extract-process-variables
`js
import {
getProcessVariables,
getVariablesForScope,
} from '@bpmn-io/extract-process-variables';
// For Camunda Platform 8 diagrams, use the /zeebe submodule
// import {
// getProcessVariables,
// getVariablesForScope,
// } from '@bpmn-io/extract-process-variables/zeebe';
const canvas = modeler.get('canvas');
const rootElement = canvas.getRootElement();
const allVariables = getProcessVariables(rootElement.businessObject);
/*
[
{
"name": "variable1",
"origin": [ "Task_1" ],
"scope": "Process_1"
},
{
"name": "variable2",
"origin": [ "Task_1" ],
"scope": "Process_1"
},
{
"name": "variable3",
"origin": [ "Task_2" ],
"scope": "SubProcess_1"
}
]
*/
const scopeVariables = getVariablesForScope('Process_1', rootElement.businessObject);
/*
[
{
"name": "variable1",
"origin": [ "Task_1" ],
"scope": "Process_1"
},
{
"name": "variable2",
"origin": [ "Task_1" ],
"scope": "Process_1"
}
]
*/
`
Note that origin and scope retrieves the full moddle element. The example outputs are reduced due to better readibility.
Note that camunda-bpmn-moddle or zeebe-bpmn-moddle descriptors have to be installed.
* camunda:outputParameter
* camunda:out
* camunda:resultVariable
* camunda:errorCodeVariable
* camunda:errorMessageVariable
* camunda:escalationCodeVariable$3
We are currently extracting process variables from the following diagram properties
* zeebe:input
* zeebe:output
* zeebe:loopCharacteristics > inputElement
* zeebe:loopCharacteristics > outputCollection
* zeebe:calledDecision > resultVariable
* zeebe:script > resultVariable`* camunda-bpmn-moddle
* Camunda BPM Process Variables Documentation
* zeebe-bpmn-moddle
* Camunda Platform 8 Variables Documentation
MIT