Using Configuration Variables

Infinity Process Platform provides the possibility to use variables to allow runtime configuration of process models without a necessary redeployment. Variables can be used in all model element properties accessible as strings from the modeling environment and where no validation of the entry field would prohibit to enter the variable syntax.

At runtime the parameter can be set once for the entire model by string replacement. A user interface in the Infinity Process Platform Portal is provided to do the changes globally and on per model fragment level. Please refer to chapter Viewing and Editing Configuration Variables of the Infinity Process Platform Portal guide for details.

You find a tutorial guiding you through an example in chapter Using a Configuration Variable to Control a Process Flow in the Tutorial guide.

Configuration Variables in Model Property Pages

The model properties page provides a Configuration Variables pane, which contains a table listing all configuration variables defined in the model with the following columns:

All columns are editable. When the dialog opens, all already defined variables and their references are refreshed and listed.

Configuration Variables
Figure: Configuration Variables

Please note that variables obtained in previous refreshes will be kept and stored with the model on saving even if they do not occur in the model anymore.

Adding Variables

To add a new configuration variable click the Add button in the upper right corner of the dialog. A new entry is added to the Variables table, where the name, default value and description can be entered.

Adding Variable
Figure: Add a new variable.

Deleting Variables

Variables can be deleted explicitly by selecting and clicking the Delete button. A dialog opens with the following options how the deletion should be performed:

Decide for one of these options by selecting the appropriate radio button. The last option additionally offers a text field to provide the literal the variable to be substituted with.

Delete Dialog
Figure: Variables Delete Confirmation Dialog

Take care to substitute a deleted configuration variable with a reasonable value, especially if it is referenced in a data path or a transition condition!

Substitution on deletion example

For example, we use a configuration variable named CustomerID with a default String value 4711.

Example Configuration Variable
Figure: Example Configuration Variable

This variable is referenced from a Primitive data via ${CustomerID}.

Primitive Data
Figure: Configuration variable referenced from a Primitive Data

From the Configuration Variables tab, we delete this variable with three different options:

Renaming Variables

To rename a variable, you can simply edit its entry in the Name column of the Variables table. With this operation, all occurrences of the variable are substituted by the new variable name. Note that the References section is refreshed and displaying the new name in the Value column after the model is saved.


In the References table, all model elements a variable that is selected in the Variables part is used in, are displayed. The corresponding table has the following three columns:

References Table
Figure: References Table

Default Variables for Criticality

When creating a new model, predefined configuration variables are created for this model, which are used for activity criticality. For details on the default configuration variables defined for activity criticality, refer to section Default configuration variables of chapter Activity Criticality in the Concepts section.

Default Configuration Variables
Figure: Default Configuration Variables

Referencing Variables in Model Elements

Variables can be referenced from all model element properties that are accessible via String properties from the modeling environment by using the following syntax:

${variable name}

This also includes properties being introduced via extension point implementations and hence allows to use variables also in custom extensions, e.g. application types.

If a variable does not exist already, it is created automatically.


Using configuration variables is not supported in the following cases:

Invalid variable names

The variable name must not contain invalid characters like "/ $ { } *". In case the name contains such characters, it is not possible to save the property page changes. However, it is possible to define an invalid variable within a model element, but a corresponding validation warning is displayed in the problems view, as described in section Variable Validation. Such a variable is listed in the configuration panel, but flagged as invalid.

Invalid variable names are flagged in the Configuration Variables property page pane in the following way:


For example, to create a variable MailServer in a primitive data element, enter the default value ${MailServer}.

Defining a Variable
Figure: Defining a Variable in a Primitive Data

To create the variable MailServer in the property page of a mail application element, enter ${MailServer} in the Mail Server entry field.

Defining a Variable
Figure: Defining a Variable in a Mail Server Application

Escaping Syntax

In case strings of the form ${...} are used literally in model element properties, escape the corresponding string by a "\":


Using the escape, the ${...} construct is taken as plain text instead of a variable.

Defining a Configuration Variable Type for Security Information

You can define a data type for a configuration variable, which initiates a type validation of the values defined via API or from within the Configuration Variables view in the Portal. This allows runtime configuration of arbitrary server-side security-relevant data at required places in the model.

The following two types are supported for configuration variables:

To create a configuration variable of type Password, perform the following steps:

  1. Specify a default value of an element as ${name:type}. For example, ${token:Password}. Note that the type must be specified as Password.

    Default Value as Password Type
    Figure: Default Value as Password Type

  2. Open the property page of the model and view the configuration variables panel. Note that for the example variable named token, the type is displayed as Password.

    Configuration Variable of Password Type
    Figure: Configuration Variable of Password Type

Variable Validation

Validation warnings and errors are displayed in the Problem View after saving the model and selecting the Validate option from the model context menu. Please refer to the chapter Model Validation for details. Additionally you can see in the Outline view if validation errors or warnings are present. Model elements are marked with an error or warning overlay icon accordingly.


Validation warnings on configuration variables occur in the following cases:


Validation errors on configuration variables might occur in the following cases:

Configuration Variables Storage in Model File

Configuration variables, their values and their descriptions are stored in the model file as extended attributes, e.g.:

<carnot:Attribute Name="ipp:variables[0]:name" Value="MailServer" Type="String"/>
<carnot:Attribute Name="ipp:variables[0]:defaultValue" Value="" Type="String"/>
<carnot:Attribute Name="ipp:variables[0]:description" Value="The Mail Server. " Type="String"/>
<carnot:Attribute Name="ipp:variables[1]:name" Value="ServiceURL" Type="String"/>
<carnot:Attribute Name="ipp:variables[1]:defaultValue" Value="" Type="String"/>
<carnot:Attribute Name="ipp:variables[1]:description" Value="The service URL. " Type="String"/>

Note that you have to save the model to see the updated entries.