All Projects → nikku → bpmn-js-cli-modeling-dsl

nikku / bpmn-js-cli-modeling-dsl

Licence: MIT license
A modeling DSL for bpmn-js

Programming Languages

javascript
184084 projects - #8 most used programming language

As of version 1.0.0 this library exposes ES modules. Use an ES module aware bundler such as Webpack or Rollup to bundle it for the browser.

bpmn-js-cli-modeling-dsl

CI

A modeling DSL (domain specific language) for bpmn-js, built on top of bpmn-js-cli.

Usage

Use the extension for bpmn-js-cli to quickly model simple processes.

To model this process:

example BPMN diagram

simply execute the following command

cli.model('StartEvent_1 -> and -> service -> user -> icatch -> xor -> or -> ithrow -> end');

You may use the full classified name of any BPMN element such as bpmn:ServiceTask, too to model it.

Shortcuts

A number of aliases are registered for most commonly modeled BPMN elements:

var aliases = {
  service:     'bpmn:ServiceTask',
  user:        'bpmn:UserTask',
  manual:      'bpmn:ManualTask',
  task:        'bpmn:Task',
  end:         'bpmn:EndEvent',
  transaction: 'bpmn:Transaction',
  sub:         'bpmn:SubProcess',
  call:        'bpmn:CallActivity',
  icatch:      'bpmn:IntermediateCatchEvent',
  ithrow:      'bpmn:IntermediateThrowEvent',
  xor:         'bpmn:ExclusiveGateway',
  or:          'bpmn:InclusiveGateway',
  and:         'bpmn:ParallelGateway'
};

Use any of the aliases instead of the full qualified BPMN name.

Setup

Deploy the cli-extension with bpmn-js:

import BpmnModeler from 'bpmn-js/lib/Modeler';
import ModelingDslModule from 'bpmn-js-cli-modeling-dsl';

var modeler = new BpmnModeler({
  additionalModules: [
    ModelingDslModule
  ],
  cli: {
    bindTo: 'cli'
  }
});

modeler.importXML('some-bpmn-xml');

Access the cli as cli in your developer console (open via F12 in most browsers).

Create a simple process from <start> via

cli.model('<start> -> and -> service -> user -> icatch -> xor -> or -> ithrow -> end');

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].