A BPMN.js extension to improve working with SpiffWorkflow - the python BPMN engine.
Go to file
jasquat 882f5b6472 some cleanup of the tests w/ burnettk 2022-08-30 14:31:50 -04:00
.github Bump dependabot/fetch-metadata from 1.3.1 to 1.3.3 2022-07-04 04:53:51 +00:00
app use index in property names and not a value that could change to avoid losing focus when typing 2022-08-26 08:57:35 -04:00
docs update readme with pretty picture 2022-06-07 15:15:32 -04:00
resources Ability to add and delete data objects (not just data object references) 2022-07-06 13:25:53 -04:00
test some cleanup of the tests w/ burnettk 2022-08-30 14:31:50 -04:00
.eslintrc first commit 2022-06-07 14:16:49 -04:00
.eslintrc.js some correlation keys are displaying in the collaboration prop panel w/ burnettk cullerton 2022-08-16 13:02:14 -04:00
.gitignore first commit 2022-06-07 14:16:49 -04:00
.prettierrc.js added some linting stuff for vim autocorrect 2022-08-05 09:35:26 -04:00
.tool-versions added tool-versions for node 18.3.0 which seems to be working w/ burnettk 2022-07-12 16:32:27 -04:00
LICENSE add license, update readme, add more docs in the file. 2022-06-07 15:30:55 -04:00
README.md fixing a bug that was preventing the dropping of components in some situtations. 2022-07-08 10:30:21 -04:00
RELEASE_PROCESS.md Documenting the release process 2022-06-09 13:18:49 -04:00
karma.conf.js adding the ability to see a list of messages that can be associated with a Send Task. (wip!) 2022-08-08 16:08:44 -04:00
package-lock.json added ability to create new messages w/ burnettk cullerton 2022-08-24 12:04:47 -04:00
package.json added ability to create new messages w/ burnettk cullerton 2022-08-24 12:04:47 -04:00
webpack.config.js Initial work to get a properties panel working. 2022-06-15 09:51:46 -04:00

README.md

Tests

SpiffWorkflow Extensions for BPMN.js

This package provides extensions that can be applied to BPMN.js that will enable some important features of SpiffWorkflow - the Python BPMN Library for executing business processes. See below for more information.

IMPORTANT: This is a work in progress, and is not yet released.

About

This extension creates a BPMN editor with all the capabilities of BPMN.js and the following additions / modifications:

  • Ability to insert BPMN's Data Input and Data Output Objects.
  • A SpiffWorkflow centric Properties Panel for specifying scripts to run before and after a task, and for defining documentation, and Mark-up content for displaying in user and manual tasks. Among other things.

Future Plans

  • We look forward to integrating a real time Python execution environment for live script development.

Data Input and Data Output Element

This extension will allow you to drag BPMN Data Input and Data Output elements onto the diagram and give them appropriate labels. This will generate valid BPMN elements in the underlying XML file - connecting them to the IO Specification of the process, as shown below:

  <bpmn:process id="my_delightful_process" isExecutable="true">
    <bpmn:ioSpecification>
      <bpmn:dataInput id="DataInput-745019423-1" name="num_dogs" />
      <bpmn:dataOutput id="DataOutput-711207596-1" name="happy_index" />
    </bpmn:ioSpecification>
    ...

Screenshot

Using these data input and outputs will allow you to create processes designed to be used as Call Activities. SpiffWorkflow (in a soon-to-be released version) will pick up this information, and enforce it. So that you must provide these input variables to execute, and only the variables mentioned in the output will be passed back to the calling process.

Usage

import BpmnModeler from 'bpmn-js/lib/Modeler';
import spiffworkflow from 'bpmn-js-spiffworkflow/app/spiffworkflow';


var bpmnJS = new BpmnModeler({
  additionalModules: [
    spiffworkflow
  ],
  moddleExtensions: {
    spiffworkflowModdle: spiffModdleExtension
  }
});

Run the Example

You need a NodeJS development stack with npm installed to build the project.

To install all project dependencies execute

npm install

To start the example execute

npm start

To build the example into the public folder execute

npm run all

License

MIT