Processes

Article • 12.11.2020 • 16 minute(s) to read

Processes in the Novunex Platform model your business processes. You can have multiple Processes, each Process implementing different work done in your organization. Processes consist of Activities that are linked by Connections. The Activities describe what tasks are performed in the process. The Connections define the order of execution of the Activities in a Process. The Connections are always directed. Each Process must always have one start and one end Activity.

The ideas and the theory behind Processes in Novunex is inspired by the Business Process Model and Notation (BPMN) as described in ISO 19510.

You start modeling your Process in the Process Editor by configuring Activities and linking them with Connections. During the modeling phase you can test your Process by creating a Debug Instance of it. The Debug Instance behaves exactly like the real Instance and also modifies data in the SQL Database. The benefit of using a Debug Instance is that the Debug Instances are stated in the Process Debugger offering tools to track and understand how the Process is executed.

Once you finished creating your Process, you can deploy the Process on the Novunex Platform. When a Process is deployed, Instances of the Process can be created doing the work your Process is designed to do. The Instance will execute the Process as you modeled it as Activities and Connections. Multiple Instances of the same Process can exist at the same time. Each Instance of a Process has its own Context. All Variables of a Process are managed in the Context. The Novunex Platform automatically manages the Contexts of each Instance for you .


Versions of a Process

If you modify or extend a deployed Process, a new Version of the Process will be automatically created by the Novunex Platform. While you are working in the new Version, the old Version can stay deployed, and the changes in the Process are not influencing the deployed Version. When you then deploy the new Version of the Process, new Instances will be created from the new Process but already exiting Instance will stay on their Version. Furthermore, only one Version can be deployed at the same time, thus the previous Version will be automatically undeployed. All Instances of a Process are linked to the Version of Process deployed at the time when the Instances have been created. It is possible to inspect all the Versions of a Process in the Process Editor, but new Version can only be created from the most recent Version and not from older Version. Furthermore, modifications of a Process only create a new Version, when the Process is already deployed. While a Version is not yet deployed, you can modify this Version and the Novunex Platform will not create a new Version.

Each Instance follows a lifecycle. The current state of an Instance can be seen in the Process Inspector.

Variables, Start Parameters and Subscription Settings

All data in Novunex is manged in Variables. Variables are used to transfer, store and access data. Variables can either be Context Variables or Entity Variables and exist along side Start Parameters and Subscription Settings:

  • Entity Variables persistently store data in the SQL Database.
  • Context Variables keep their data only within the Context of an Instance.
  • Start Parameters pass data to a Process.
  • Subscription Settings hold read-only data centrally managed for one or more processes.

Activities work with the data in Variables, Start Parameters and Subscription Settings in Process Context Expressions.

Context Variables, Entity Variables, Start Parameters and Subscription Settings share the name space of a Process. This means that the name of a Context Variable, Entity Variable, Start Parameter or Subscription Settings has to be unique in a Process.

Entity Variable
  • Purpose: Process data that needs to be permanently stored in the SQL Database and/or shared with other Processes or systems. All value manipulation of Entity Variables are automatically persisted in the Database.
  • Description: Entity Variables are used to add, create and modify data persistently stored in the SQL Database.
  • Allowed data types: All defined Entity Types are allowed and all Attributes of the defined Entity Types can be used.
  • Type definition: Done by creating an Entity Types.
  • Variable creation: Explicitly created by the Create Activity or implicitly created by other Activities like the Form Activity.
Context Variable
  • Purpose: Internal data of a Process not needed anymore once the process is fished.
  • Description: Context Variables hold their values only within one Instance. Hence, their content will be lost once the execution of the Instance is finished.
  • Allowed data types: Context Variables can take on all data types available to Attributes.
  • Type definition: The type definition is implicitly done at the first assignment. Context Variables can be defined in two different ways
    • Name-Value Pair: In this simply case, the Context Variable has a name and only one value.
    • Name-Attributes-Value: In this case, the Context Variable has a name an one or multiple attributes. Name and attributes are separated by a period. Each attribute can have a different data type. Deeper hierarchies with multiple consecutive attributes are not allowed.
  • Variable creation: Context Variables are implicit created on the first variable assignment.
Start Parameter
  • Purpose: Configuration parameter handed to an Instance at its start.
  • Description: Simple name-value pair
  • Allowed data types: Only String
  • Type definition: Not need, only String allowed.
  • Variable definition: Start Parameters are defined in the Process Properties.
Subscription Settings
  • Purpose: Constants configured over one or more processes of a Subscription.
  • Description: Simple name-value pair
  • Allowed data types: Only String
  • Type definition: Not need, only String allowed.
  • Variable definition: Subscription Settings are defined in the Subscription Settings menu.

Scope of CurrentUserId Variable

The Process Engine executes each Instances as a specific User. This user is accessible via the ##[CurrentUser.Id] Variable in the Process Context Expressions and the @CurrentUserId Variable in Data Queries. This Variable is commonly used to filter the access to data or store the User manipulating some data.

However, the current User as stored in this Variable is not necessarily always the User interacting with the Form Activities of a Process, it can be also the Process Engine user. Since the Process Engine user is allowed to access anything in the Subscription, you need to be aware which User is the current user during the Instance lifecycle. The switch between the Process Engine User and the other Users is necessary to increase the overall Performance of the Novunex Platform and follows several rules:

  • Form Activities are always executed as the User interacting with the Form. Hence, you can copy the value of the ##[CurrentUser.Id] Variable in Form Activities and use it the other Activities to be on the save side.
  • Non-Form Activities between two Form Activities are predominantly executed as the User interacting with the first of the two Form Activities. However, to increase the performance in multi-user scenarios, the Process Engine can decide to execute the Activities with the Process Engine user, if there are more than three Non-Form Activities between the two Form Activities.
  • Non-Form Activities at the beginning of a Instance, i.e., before the first Form Activity are:
    • Executed by the Process Engine user, if the Process it belongs to has the setting Show form task after start set to No. This is due to the fact, that this setting requires an asynchronous Process start where no User is involved.
    • Executed by the User triggering the synchronous Process start, when the setting Show form task after start set to Yes.
  • Non-Form Activities at the end of a Instance, i.e., after the last Form Activity are:
    • Executed by the Process Engine user, if the Action triggering the leaving of the Form Activity has the setting Return to dashboard? set to Yes. This is due to the fact, that this setting requires an asynchronous Process end where no User is involved.
    • Executed by the User interacting with the last Form Activity if the Action triggering the leaving of the Form Activity has the setting Return to dashboard? set to No.
  • If one or more consecutive Non-Form Activities require more than 120 seconds to execute, the Platform always automatically changes to Platform Engine user.
  • The User of Data Queries depends on where the Data Query is executed
    • If the data query is executed in an Activity, the rules above apply.

Working with Processes

Process Overview

The Process Overview is the main overview to manage existing and create new processes.

Sections of the Process Overview

Category
Show only Processes of a specific category.
Here you can search for processes.
New
By clicking on Create new process, a new empty process is created and opened in the Process Editor.
Process List

Tables of processes of your subscription. This list is filtered if you selected a Category or executed a search. The columns of the table show an overview of the processes and offer ways to interact with the processes:

  • ID - Short ID of the process. This is different to the Unique ID of the process found as part of the Process Properties.

  • Status - Shows if a process is deployed it is shown in green, if a process is not deployed it is shown in red.

  • Process Name and Description - You can open the process in the Process Editor by clicking on this cell.

  • VERSION of the processes

  • CREATED - Shows when the process was created. The exact date can be shown by moving the mouse over the cell.

  • MODIFIED - Shows when the process was last modified. The exact date can be shown by moving the mouse over the cell.

  • Menu - Here you can open interactions options by clicking on :

    • Deploy - If a process is not deployed, you can deploy it here.
    • Edit - Opens the process in the Process Editor
    • Delete - Deletes the latest Version of the process
    • Delete All - Deletes all Versions of the process
Pagination
You can navigate through the pages of the Process List by clicking on the numbers on the right. You can select the number of Processes per page with the drop down on the left.

Process Editor

The Process Editor in the Novunex Platform is designed to create and modify Processes. By default there are no Processes in your Novunex Subscription. Thus, you have to create a new Processes to start working with the Novunex Platform.

Sections of the Process Editor

In the Menu shows you which Process and which Version of the Process you are editing. It also allows you to save you changes and close (Save & close )the Process Editor or to Cancel the editing and close the Process Editor discarding the changes. Save & close and Cancel both close the Process Editor and return you to the Process Overview. The Menu also allows you to switch between the Versions of the process and to start the Process Debugger ( Debug). This will automatically save the current Process.

Activities and Variables

This area on the right shows all Activities ( ) that can be used in a Process. It also gives you an overview of the Activities' configurations and Variables ( ) in the Process:

  • Activities - Catalog of all Activities in you can use in your process. An Activity can be added to the Process by clicking on it and placing it in the Process Canvas by drag and drop.
  • Variables - Lists all Activities and their configurations including all Variables used in the current process. The list is grouped by the Activities.
Process Canvas
The Process Canvas in the center of the screen shows your Process consisting of Activities and Connections.
Properties and Configuration
Properties and configurations are managed on the right of the screen. If you have not selected any Activity, this area shows the Properties of the Process itself. When you select an Activity, the configuration of the Activity is shown in this area.

Process Properties

The process Editor shows the Process Properties on the right if no Activity is selected. The Process Properties are split in two sections. In the first section, descriptive, behavioral, interaction and access control properties of the Process can be set.

Icon
Allows you to select an icon as visual representation of your process.
Name
Sets a name to identify you process. This name needs not be unique, but it is encouraged to use unique names so that you can distinguished between Processes more easily.
Category
You can freely set the category of you process. Categories help you to group processes of a similar domain. Processes are grouped by Categories in the + New menu on the top left corner used to create a new Instance.
Description
A short explanation of the Process and its purpose. Longer explainatory nodes should be put into the Instructions.
Start parameters
The Start Parameters of the current processes can be managed by clicking on the Edit button here. Each process can have as many start parameters as you like, but they have to have a unique name within the Process. The number on the left of the the Start parameters Process Properties entry shows how many Start Parameters are defined.
Instructions
Instructions are show to Users executing an Instance. You can enter formatted text here instructing the Users how to work and interact with the Process and its Instances. The rich text editor is opened by the clicking the Edit.
Show form task after start

This property controls if Instances of this process need to be handled synchronously or asynchronously by the Users:

  • Yes - Once the Instance is started, the Users will be prompted with the first Form Activity of the Process. Hence, the Users have to synchronously interact with the Process. This is the default setting.
  • No - The User is not directly prompted with the first Form Activity of the Process, but the process is only put in the Task List. Hence, the Users can interact asynchronously with the process.
Show in + New menu
Controls if the process is shown in or hidden from the + New menu on the top left corner.
Show start parameters in + New menu
If this is set to Yes, the Users will be prompted to enter Start Parameters when they create a new Instance via the + New menu. If set to No, the no prompt will be shown and the Start Parameters remain empty. This property is only available it the Show in + New menu is set to Yes.
Only one concurrent process instance
When set to Yes, only one Instance per Version of this Process can be the In Progress State at the same time in your Subscription. If other Instances exists, they need to be in Canceled, Closed or Faulted State or they are from other Versions. This condition is checked by the Novunex Platform each time a Process changes into In Progress State. I.e., when set to Yes, it does not matter if you start a new Instance, restart or retrigger an existing one. In any of these cases the limit of one Instance is enforced. If you try to create a new Instance and an Instance is already In Progress, no new Instance will be created. If you try to restart or retrigger an Instance is already In Progress, no state change will be executed.
Disable process history
If this is set to Yes, Instances of this Process are automatically deleted once they reach the End Activity and are thus in their Closed State. If this is set to No, Instances are kept until they are manually delete in the Process Inspector
User group permissions
You can add User Groups that are allowed to create Instances of this Process. User Groups are managed by clicking Edit. If no User Groups and no individual Users are set, all Users and all User Groups will be able to create Instances. The number on the left of the the User group permissions Process Properties entry shows how many permissions are defined.
User permissions
You can add Users that are allowed to create Instances of this process. Users are managed by clicking Edit. If no individual Users and no User Groups and are set, all Users and all User Groups will be able to create Instances. The number on the left of the the User permissions Process Properties entry shows how many permissions are defined.

The second section of the Process Properties show important properties that cannot be altered and are maintained by the Novunex Platform automatically.

Guid
Global Unique identifier of the Process.
Version
Version of the Process currently opened in the Process Editor.
Deployment status
Tells you if the Version currently opened in the Process Editor is deployed or not.
Creation date
The time when the Version currently opened in the Process Editor was created.
Last modified date
The time when the Version currently opened in the Process Editor was last modified.

Variables

Variables are shown on the left side of the Process Editor in the same panel as the Activities catalog. Therefore, you have to click on to switch from the Activities to the Variables view. Whenever you switch from the Activity view to the Variable view, the list of Variables is automatically reloaded.

When you selected the Variable view, you see a list of all Activity ordered by the execution order in the Process. The Activities are listed with their names. When you click on an Activity’s name, you see the settings and Variable definitions configured in it. By clicking on (open) next to the Activities' name, you open the Properties of the corresponding Activity.

Activities listed by their name with a collapsible details view showing the configured Variables and settings.

Variables

Activities listed by their name with a collapsible details view showing the configured Variables and settings.

Process Debugger

The Process Debugger allows you to test your Processes. It offers tools and views to identify misconfigurations and problems in Processes. The Process Debugger creates dedicated debugging Instances to do so.

Debugging Instances behave exactly as normal Instances. Especially, all changes on Entity Variables done in the Process Debugger and debugging Instances are persisted in the Database. But the Process Debugger itself has differences compared to the normal execution of Processes:

  • The Process Debugger is focused on Forms, hence Processes without forms are hard to debug.
  • The Process Debugger will always show the first form, once it is started. Hence, the setting Show form task after start has no effect in the Process Debugger
  • The Process Debugger only shows the Process graph widget and not the Process history widget

You can start to debug your Process by clicking on Debug in the menu of the Process Editor. This will automatically save the current Process. If no Instance exists a new debugging Instance will be created. If an Instance already exists, you can go along with the existing instance. In most cases it is required to create a new Instance, since this is the only way to ensure that all changes of the Process are applied to the debugging Instance. Re-using a debugging Instance only works if there have been no changes to the Process or the changes only affect Activities located after the Activity at witch the Instance is halting. If you want to use the existing Instance, just click on Start Debugging. If you want to create a new Instance, click on Create new instance an then Start Debugging. If the Process has Start Parameters and a new instance is created you will be asked to specify values for them in a separate input field.

The Process can be debugged with a new Instance or the existing one. If the Process was modified, a new Instance is required.

Start Debugging

The Process can be debugged with a new Instance or the existing one. If the Process was modified, a new Instance is required.

The Start Parameters have to be specified, when a new debugging Instance is created.

Debugging Start Parameters

The Start Parameters have to be specified, when a new debugging Instance is created.

Once you started the debugging instance, the Process Debugger opens. Here you can go though one Form after another to test your Process and Form designs. Every Form is shown as the Users would see it.

Sections of the Process Debugger.

The menu offers you two helpful tools to inspect Variables, Start Parameters and user Inputs of the current Form:

  • Manage Context - This button opens a view of all Variables and Start Parameters with their current values.
  • Preview form data - This button opens a view of the values currently entered in the Form.
Form
This sections shows the Form and you can interact and manipulate all Form Controls.
Actions
Here you can interact with the Actions of the Form to navigate through the Process.
Process Graph

If the process is configured to show the Process Graph Widget on the right, you see it in this area on the right. If the Process Graph Widget can also be shown on top or completely hidden. The Process Graph Widget highlights the current Form shown in the Form section. Clicking on next to the entry of a Form, opens the instructions configured for the Form.


More information

  • How to create a Process
  • How to deploy a Process