User Dialog Concept

The concept of a User Dialog follows the famous Model-View-Controller pattern. It consists of the following parts:

  • Data - The internal data of the User Dialog (the model)

  • View / Panel - The visual representation of the User Dialog (the view)

  • Logic - The implementation of the functionality (the behavior) of the User Dialog (the controller)

  • Interface - A description of the capabilities of the User Dialog

The logic (i.e. controller) of a User Dialog is implemented in a process-based manner. All the GUI events (which are generated by the user who interacts with the dialog) are handled by a corresponding UI process in the logic of the User Dialog component. So, the behavior of the User Dialog is not implemented by writing source code in a programming language (such as Java, VisualBasic, or C#) but rather by graphically modeling a process logic in Axon Ivy.

The multi-part structure of a User Dialog becomes also evident when looking at its representation in the Axon Ivy project tree:

../../../_images/user-dialog-projecttree.png

Interface

The interface of a User Dialog defines its behavior in an abstract way and independent of its implementation. In other words, it defines what a User Dialog is capable of doing. In more detail, the interface defines Start Methods and Methods of a User Dialog. The interface can be viewed with the User Dialog Interface Editor.

Logic

The logic of a User Dialog defines how a User Dialog performs its work. For each UI Event triggered by the user (e.g. by clicking on a button), and for each Start Method and Method defined in the interface, you may implement a process to handle these events.

The logic of a User Dialog is edited and defined using the Process Editor.

To build the logic of a User Dialog, the Process Editor offers a set of process elements that are somewhat different from the standard set. The extra User Dialog drawer of the Process Editor palette contains elements, which can only be used within User Dialog logic:

Process elements only available in User Dialog Logic

Icon

Title

Short Description

image0

User Dialog

Opens another User Dialog

image1

Init Start

Invoked when the User Dialog is started. This element is executed at most once and initializes the User Dialog and its data.

image2

Method start

Invoked when one of the methods declared in the User Dialog Interface is called.

image3

Event Start

Invoked when a mapped widget event is received from the view of the User Dialog.

image4

Process End

Ends a User Dialog UI process.

image5

Exit End

Exits and closes this User Dialog and continues with the calling process (if opened synchronously).

On the other hand, some elements of the Dialog & Control drawer are missing, because they are forbidden:

Process elements that are forbidden in User Dialog Logic

Icon

Title

Short Explanation

image21

Request Start

The normal Request element is replaced with the User Dialog start element.

image22

Web Page

The Page element is HTML-specific and thus not available in the User Dialog logic.

image23

Tasks

The Tasks element is not available because role change and task data persistence can only happen between User Dialogs.

image24

Task

The Task element is not available because role change and task data persistence can only happen between User Dialogs.

image16

Event Start

Start Event Beans are currently not supported inside User Dialogs.

image26

Intermediate

Intermediate Events are currently not supported inside User Dialogs.

image27

Call & Wait

Call & Wait are currently not supported inside User Dialogs.

image28

Process End

The regular Process End element is replaced with the User Dialog End element.

image29

End Page

The End Page element is HTML-specific and thus not available in the User Dialog logic.

Warning

When invoking callables from inside a User Dialog you have to bear in mind, that the callable process will be executed within the scope of the User Dialog that calls it, i.e. the same restrictions apply as if the callable was defined right inside the User Dialog’s logic. This ultimately means that you have to ensure that the called (business) process does not contain any of the forbidden elements mentioned above. Otherwise, you will experience failures or unpredictable results during the execution of the callable process.

Data

The data of a User Dialog define its internal state (if you are familiar with the MVC pattern, you should consider the data as the Model of a User Dialog). The data of a User Dialog has private scope (i.e. is not visible from the outside). Access can be granted by defining and implementing methods that return or manipulate internal data. The data of a User Dialog is edited with the Data Class Editor.