Code Monkey home page Code Monkey 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 2.0 Modeling, Execution and Presistence, an open source Workflow Server for Node.js

This package is designed specifically for Node.js and TypeScript

Documentation

Features

Web based Process modeller

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

Full BPMN Process Engine

bpmn-server provides an bpmnEngine to execute your workflow definition supporting all of BPMN 2.0 elements with advanced extensions

bpmn-server is highly scalable solution, allow you to run multiple nodeJS either in same machine or in a distributed mode against same MongoDB

Presistent Processes

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

$ mkdir myBPMN

$ cd myBPMN

$ npm install bpmn-server

Copy demo app into local folder

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

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

Edit .env file to have MongoDB point to your server or free cloud account

API_KEY=12345
MONGO_DB_URL=mongodb://0.0.0.0:27017/bpmn <---- point to your MONGODB
MONGO_DB_NAME=bpmn
DEFINITIONS_PATH="./processes/"
SESSION_SECRET=omni-secret
SERVER_ID=PRIMARY

Run database setup

node setup.js

To start server

npm run start

Console will display:

bpmn-server WebApp.ts version 1.4.0
MongoDB URL mongodb://0.0.0.0:27017/bpmn
db connection open

App is running at http://localhost:3000 in development mode
  Press CTRL-C to stop

Use your browser to view the bpmn-server running

to update to latest release

$ npm update bpmn-server

Full Demo

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

Example Script

    const server = new BPMNServer(configuration, logger);

    let response = await server.execute('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.invoke({instanceId: response.execution.id, elementId: 'task_Buy' },
        { model: 'Thunderbird', needsRepairs: false, needsCleaning: false });

    console.log("Ready to drive");

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

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

for more complete examples see Examples

License

This project is licensed under the terms of the MIT license.

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.