Skip to content

An util for bpmn-js to extract Camunda BPM process variables from a BPMN 2.0 diagram.

License

Notifications You must be signed in to change notification settings

bpmn-io/extract-process-variables

Repository files navigation

extract-process-variables

CI

An util for bpmn-js to extract Camunda BPM process variables from a BPMN 2.0 diagram.

Installation

$ npm i --save @bpmn-io/extract-process-variables

Usage

Camunda Platform 7

Given this example diagram

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.

Properties support

Camunda Platform 7

We are currently extracting process variables from the following diagram properties

  • camunda:formField
  • camunda:outputParameter
  • camunda:out
  • camunda:resultVariable
  • camunda:errorCodeVariable
  • camunda:errorMessageVariable
  • camunda:escalationCodeVariable

Camunda Platform 8

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

See also

License

MIT

About

An util for bpmn-js to extract Camunda BPM process variables from a BPMN 2.0 diagram.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks