Process Overview

What are processes?

Process

A Process is an interactive dialogue which allows you to compute things and guide the dialogue with the user by defining conditions which control the flow.. Finally, it also lets you update the database.

Using an expression to calculate Body Mass Index (bmi)

Five tabs

So you can see from the example that a Process is defined using five tabs!

It sounds like a lot, but it is precisely the clear separation of things, most importantly the clear separation of Declarative Logic and Procedural Logic, which makes it possible to achieve complex results from seemingly simple steps.

The central Tab, labelled “Process” is where you land by default, and this is where the main Procedural logic is defined - the Steps of the Process.

Process Steps

Processes are step-by-step interactive dialogues with users, and at any time, you can test out the interactive dialogue you are creating, using the Debug Tab

Many steps define interactions such as yes/no questions, but it is also possible to have other steps which execute background actions such as updating a variable.

Steps can be grouped in sections.

So, there are three kinds of Process elements which you can add to the sequence.

Difference between Process tab and Updates tab

Process steps can be added in the Process tab. There is also an Updates tab where you can also add actions.

The reason for the separation between Process and Updates between the two: within the interactive dialogue, it is important that the user can go backwards instead of forwards,

We also want to have the ability for a Process to do things like make database updates and send mail notifications.

It would be unfortunate to have the user go forwards and backwards over a send mail action - the mail action would be executed more than once.

The same is true of database changes : it would be very difficult to handle the user going forwards, executing a database update action, only to want to go back (and have the database change undone).

So, the action steps in the Update tab are all executed once the User has completed the steps under Process.

The Update tab contains no interactions, so from the User’s point of view, the Process has completed once the steps in the Process tab have completed.

Once the steps in the Process tab have completed, the User cannot go backwards. After Process, the Update actions, if there are any, are executed.

Updates tab Summary

  • contains no Interactions, only actions and groups
  • are executed once User has completed Process steps
  • Once User has completed Process steps, the Process is over as far as the User is concerned
  • User cannot go back

Logic tab: steps can be protected by preconditions

It is possible to define conditions in the Logic tab, and in the Process and Update tabs, to set these conditions as pre-conditions for an interaction, an action, or a group of them, to be executed.

Values tab

Some conditions can be defined on values.

The Values tab provides an overview of all values available in the Process.

There are four sources of values, but they can all be used in defining conditions.

Debug tab

At any point, you can test out the steps and the logic you’ve defined by using the step-by-step debugger.

The debugger has sub-tabs which show the current values at each step, and also the evaluation status of all conditions.