0.5.3 • Published 12 years ago
process-engine v0.5.3
Process automation for Node.js
###Best For
- Task Orchestration
- Human Task Management
- Process Management and Monitoring via a Node.js web application
###Features
- Start/End/Decision/Parallel/Service/Human Task
- Human Task Management
- Process Definition Management and Visualization
- Process Instance Management and Visualization
###Get Started
npm install process-engine
var ProcessEngine = require('process-engine');
// Create a process engine object
var processEngine = ProcessEngine.create();
var simpleDefinition = {
name: 'simple process',
tasks: {
start: {type: 'start'},
'service1': {type: 'service', action: function (variables, complete) {
console.log('do work');
complete();
}
},
end: {type: 'end'}
},
flows: [
{from: 'start', to: 'service1'},
{from: 'service1', to: 'end'}
]
};
// Create process instance from the above process definition
var processDefinition = processEngine.importProcessDefinition(simpleDefinition);
var processInstance = processEngine.createProcessInstance(processDefinition);
// Start the execution of the process instance
processInstance.start();See examples/tests for all usage that process engine supports
###API
ProcessEngineimportProcessDefinition(definition): Create a new process definition based ondefinitionobjectcreateProcessDefinition(name): Create an empty process definition withnameloadProcessDefinition(id): Load a process definition byidqueryProcessDefinition(conditions, options): Query process definitions by conditions and optionscreateProcessInstance(def): Create a new process instance with definitiondefloadProcessInstance(id): Load a process instance byidqueryProcessInstance(conditions): Query process instances by conditionscompleteTask(processId, taskId, variables): Complete a task withprocessId,taskId,variables
ProcessInstanceis a Node event emitter.Eventsbefore: emitted before each task is executedafter: emitted after each task is executedend: emitted when the whole process instance is ended
start(variables): Start the process instance with givenvariablesgetNode(taskName): Get the runtime node withtaskName
HumanTaskServicecomplete(taskId, variables): Complete the human tasktaskIdwithvariablesclaim(taskId, user): Claim the human tasktaskIdwith UseruserstartWorking(taskId): Start to work on the human tasktaskIdquery(conditions): Query the human tasks byconditions
###UI

process-engine.js contains a Node.js web application to manage the process instances and human task list.
- Go to
uifolder - Run
npm install - Run
bower install - Run
npm install -g nodemon - Run
brunch watch --serverto launch the server - Open
http://localhost:3000/#/definitionsin your browser
###Development
- Test Runner:
npm install -g mocha - Front End Package Manager:
npm install -g bower - Front End Build:
npm install -g brunch - Code Coverage:
npm install -g istanbul
###Roadmap
- Planned
- Human Task Form Builder
- User Management Service
- Performance Benchmark
- Future
- Message/Timer Event Support
- Separate Running and Histronic Process Instances into different collections
- Sub Process
- BPMN 2.0 XML Import/Export