Code Monkey home page Code Monkey logo

nayra's Introduction

ProcessMaker Nayra

ProcessMaker Nayra is a package that provides base classes to implement a process execution engine. This includes patterns to implement activities, events and gateways.

How to execute a process

Load a BPMN definition

        $bpmnRepository = new BpmnDocument();
        $bpmnRepository->setEngine($this->engine);
        $bpmnRepository->setFactory($this->repository);
        $bpmnRepository->load('files/ParallelGateway.bpmn');

ParallelGateway diagram

Get a reference to the process

        $process = $bpmnRepository->getProcess('ParallelGateway');

Create a data storage

        $dataStore = $this->repository->createDataStore();

Create a process instance

        $instance = $this->engine->createExecutionInstance($process, $dataStore);

Trigger the start event

        $start = $bpmnRepository->getStartEvent('StartEvent');
        $start->start($instance);

Start Event

Execute tokens and run to the next state

        $this->engine->runToNextState();

One token arrives to the first task

        $firstTask = $bpmnRepository->getScriptTask('start');
        $token = $firstTask->getTokens($instance)->item(0);

First task

Complete the first task

        $startActivity->complete($token);

Execute tokens and run to the next state

        $this->engine->runToNextState();

One token arrives to the second task and one to the third task

        $secondTask = $bpmnRepository->getScriptTask('ScriptTask_1');
        $token1 = $secondTask->getTokens($instance)->item(0);
        $thirdTask = $bpmnRepository->getScriptTask('ScriptTask_2');
        $token2 = $thirdTask->getTokens($instance)->item(0);

Second task and third task

License

ProcessMaker Nayra is open-sourced software licensed under the Apache 2.0 license.

nayra's People

Contributors

boliviacoca avatar caleeli avatar danloa avatar hlorofos avatar marcoantonionina avatar tdondich avatar viezel avatar

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.