Core elements of end-to-end application platform developed by Netgrif.


Netgrif Application Builder is the tool where process models can be drafted quickly by your business users or imported from any BPMN model you may have.


Netgrif Application Engine is executing and orchestrating actions and decisions – building blocks of your business processes.

Netgrif Application Builder

Netgrif Application Builder (NAB) is the tool for building process-driven applications using Petriflow language.

NAB is composed of several modules that help you in different stages of application development.

In Process Modeler you can model business processes by defining tasks and their routing and simulate modelled processes by executing sequences of tasks. As a modelling formalism for processes Petriflow language uses Petri nets that consist of state variables, tasks and their interconnections. It supports import of processes in BPMN 2.0 and its automatic translation into Petri nets.

In Role Editor, you can define roles and specify which roles can perform tasks in the process.

In Data Editor you can define data variables used in the processes. Petriflow supports all types of data variables you will need for your application, including text, numbers, date, datetime, enumerations and choices, files, images and many others. Validation and initial values of the data variables can be easily specified in Petriflow. Petriflow supports reference to a list of tasks as a data type.

In Form Builder, you can build the forms for single tasks by drag and drop either existing data variables or adding new data variables. For data variables on forms, called data fields, you can specify different attributes, such as placement in the form grid layout, choose the appropriate view such as different types of checkboxes, and determine, whether the data fields are editable, visible, required or hidden. Using reference to a list of tasks as a data field, you can embed subforms to forms.

In Action Editor you can program reactions on events of process instances, its tasks and data fields. Actions use Groovy as a programming language. Types of events that you can catch include construction of the process instance, assignment of a task to a user, cancellation of a task, finish a task, and change of a data field value. In actions that react on events, you can trigger events in different process instances and in this way for example create a new instance when you finish a task, to assign a new task to a user when you finish actual task, to recalculate a value of a data field whenever you change another data field, or hide/show data fields when you change another data field.

In actions, you can use search functions to find specific process instances or tasks based on values of process attributes, process instance attributes, task attributes and data variables. In actions, you can also call external functions as well as to send and receive data from external systems via rest or soap web services.

Using NAB you generate and download the source code in Petriflow language that includes all the necessary information about processes, their tasks, roles, data variables, forms and actions. NAB is available online for free.

Netgrif Application Engine

Netgrif Application Engine (NAE) is the tool for deploying and running process-driven applications written in Petriflow language. NAE is composed of several building blocks. The core of the NAE is Process Engine Server, that enables to:

Upload, run and delete Petriflow processes
Create, run and delete instances of processes
Assign, finish and cancel tasks of process instances
Read data variables and to save data variables
Execute actions

Sometimes you do not want to change the process to react by action to an event. It usually happens if you want to react by the same action to more than one event in different processes. Rule Engine allows you to specify if-then decision rules written in MVEL expression language. Whenever an event is triggered then Process Engine Server checks the Rule Engine, whether there is a rule such that its if condition is valid for the event. In such a case, the Rule Engine executes the then statement of the rule. In then statements of rules, you can trigger events of Process Engine Server. Rule Engine is based on Drools.

Process Engine Client provides a user interface in form of Angular components for displaying task lists, task forms and data fields. Process Engine Client communicates via REST API with a Process Engine Server. Using web address of the Process Engine Client followed by the ID of a process instance, the list of enabled tasks of the created process instance, so-called case view, is displayed by the Process Engine Client. If the name of a process is used instead of ID of an instance, create event is triggered and the Process Engine Server creates a new process instance. 

In task list you can expand a task to display the task form, triggering get events for all data fields. Once a task form with all its data fields is displayed, assign event of the task can be triggered. Once a task is assigned, cancel event can be triggered, set event for editable data fields can be triggered and when each required data field has a valid value, finish event of the task can be triggered.

Process Engine Server, Rule Engine and Process Engine Client together with a set of predefined processes for managing roles, users, authentication and authorization of the users, deploying Petriflow processes is provided as a Default Process Driven Application. Default Process Driven Application allows you to administrate the processes by deploying and deleting the processes, to invite users and to add/remove roles to users. It offers the functionality of registering users. For registered users, it offers the functionality of a task list, where you can assign and perform the tasks associated with one of the roles of the registered user filling the task forms by editing the data fields. For anonymous users, it offers the possibility to fill public tasks forms of public processes and to approach the instances of the public processes via ID of the process instance.

Demo of Netgrif Process Driven Application, where you can deploy your Petriflow processes and execute the process instances, is available free of charge for noncommercial use. To purchase NAE please contact us for price list.

NAE is provided as a source available project. It means, that once you choose an NAE license you will be able to adapt, extend and modify the source code of the project to customize any of its functionality. 

Even if the rich functionality of NAE and Petriflow is not enough, you can go beyond its functionality by overriding the predefined components. In his way, you can for example add new menu items associated with Petriflow filters, add connectors to your own systems or to customize the Angular components to be displayed according to your own design manual. We offer Development Licences, that enable a developer to download the project with the NAE source code including documentation from NETGRIF Developer Portal. To purchase NETGRIF Development Licences that provide access to NAE source code please contact us for our price list.