Git Product home page Git Product logo

bpmn-server's Introduction

bpmn-server

Project Status: Active - The project has reached a stable, usable state and is being actively developed.

Introduction

bpmn-server provides BPMN 2.0 Modeling, Execution and Persistence, as an open source Workflow Server for Node.js

This package is designed specifically for Node.js and developed entirely in TypeScript

A WebApp provides a UI from modeling and developing your workflow

Table of Contents

Documentation

Process modeller

A web based modeler is included based on http://bpmn.io , models definitions are saved at your server Modeller

Also included is BPMN-Properties-Panel to define the entire BPMN definition on-line, without the need to edit bpmn files.

Modeller

Process Execution

bpmn-server provides an bpmnEngine to execute your workflow definition supporting BPMN 2.0

Process Server

provides an environment to presist execution Instances while running and communicate with your application.

Applications can monitor and communicate to Instances whether they are running or offline, allowing user interface to query and process Workflow steps

Data Queries

Since instances are saved in MongoDB you can easily query your instances (running or completed)

Sample Web App

Included is a sample web application (running Node.js and Express.js) to allow you to visualize your workflow

Installation

This package requires Node.js and an access to MongoDB () if you don't have MongoDB already installed you can create a free cloud account here

Installing Server and Web UI

$ mkdir myBPMN

$ cd myBPMN

$ npm install bpmn-server

$ cp node_modules/bpmn-server/WebApp/. ./  -r

Windows: 
xcopy /e /i /s /y node_modules\bpmn-server\WebApp\*.* .

npm install

Edit .env file to point to MongoDB and set api-key

the change would look like this:

MONGO_DB_URL=//localhost:27017?retryWrites=true&w=majority

or: MONGO_DB_URL=mongodb://:@ip?retryWrites=true&w=majority

node app

Installing Client (for remote access)

$ mkdir myClient

$ cd myClient

$ npm install bpmn-client

$ cp node_modules/bpmn-client/Sample/. ./  -r

Windows: 
xcopy /e /i /s /y node_modules\bpmn-client\Sample\*.* .

npm update

Edit .env file to point to the server and set api-key

Add your own code in this directory

node test

Demo

a full demo site is available @ http://bpmn.omniworkflow.com

Example

    const server = new BPMNServer(configuration, logger);

    let response = await server.engine.start('Buy Used Car');

    // let us get the items
    const items = response.items.filter(item => {
        return (item.status == 'wait');
    });

    items.forEach(item => {
        console.log(`  waiting for <${item.name}> -<${item.elementId}> id: <${item.id}> `);
    });

    console.log('Invoking Buy');

    response = await server.engine.invoke({ id: response.execution.id, "items.elementId": 'task_Buy' },
        { model: 'Thunderbird', needsRepairs: false, needsCleaning: false });

    console.log("Ready to drive");

    response = await server.engine.invoke({ id: response.execution.id, "items.elementId": 'task_Drive' });


    console.log(`that is it!, process is now complete status=<${response.execution.status}>`)

for more complete examples see Examples

RoadMap and Project status

see RoadMap

Change Log

see CHANGELOG

Acknowledgments

The bpmn-server resides upon the excellent library bpmn-io/bpmn-moddle developed by bpmn.io

The bpmn-server is inspired by the library bpmn-engine

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.