camunda-bpmn-moddle

Camunda moddle extensions for BPMN 2.0

Usage no npm install needed!

<script type="module">
  import camundaBpmnModdle from 'https://cdn.skypack.dev/camunda-bpmn-moddle';
</script>

README

camunda-bpmn-moddle

CI

This project defines the Camunda namespace extensions for BPMN 2.0 as a moddle descriptor.

Usage

Use it together with bpmn-moddle to validate Camunda BPMN 2.0 extensions.

var BpmnModdle = require('bpmn-moddle');

var camundaModdle = require('camunda-bpmn-moddle/resources/camunda');

var moddle = new BpmnModdle({ camunda: camundaModdle });

var serviceTask = moddle.create('bpmn:ServiceTask', {
  'javaDelegate': 'my.company.SomeDelegate'
});

Building the Project

To run the test suite that includes XSD schema validation you must have a Java JDK installed and properly exposed through the JAVA_HOME variable.

Execute the test via

npm test

Perform a complete build of the application via

npm run all

bpmn-js Extension

We include an extension that makes bpmn-js Modeler copy and replace mechanisms aware of Camunda properties.

var BpmnJS = require('bpmn-js/lib/Modeler'),
    camundaExtensionModule = require('camunda-bpmn-moddle/lib'),
    camundaModdle = require('camunda-bpmn-moddle/resources/camunda');

var modeler = new BpmnJS({
    additionalModules: [
      camundaExtensionModule
    ],
    moddleExtensions: {
      camunda: camundaModdle
    }
  });

This extension hooks into the copy mechanism provided by the BPMN editor and ensures Camunda properties are kept and or dropped on copy and element replace.

License

Use under the terms of the MIT license.