Configuration Variables

An Stardust Process Model contains a set of runtime parameter settings which differ between various runtime environments, like for example Web Service endpoints, mail server and content settings, JSF or JSP URL roots or default values for process data. Using configuration variables for these parameters provides the option to change the values of these parameters during runtime without necessary model redeployment.

Usage

Configuration variables can be used in all model element properties accessible as strings from the modeling environment. You find example use cases in the section Common Use Cases.

Chapter Configuration Variables in the Modeling Guide describes in detail how to add and reference these variables in the modeling environment.

At runtime the parameter can be set once for the entire model by string replacement. The Stardust Portal provides a user interface, the Configuration Variables view, to do the changes globally and on per model fragment level. Please refer to chapter Viewing and Editing Configuration Variables Stardust Portal guide for details on this view.

Runtime Storage

The runtime storage keeps the information about the parameters definitions in the model separate from the current values. If a model is exported from an Stardust runtime environment, the variable definitions are still available. The variable values are kept in the preferences store globally and on per model fragment level. They can be exported and imported. Exporting and importing can be performed in the Portal Configuration Variables view mentioned in the previous section, or via API as described in chapter Retrieving and Changing Preferences of the Programming Guide.

Management of Model Versions

The variable definitions are kept across versions. If a variable is available for multiple model versions, the value is set for all model versions at runtime. If distinct values are required between model versions, different variable names have to be used.

Common Use Cases

Referencing Server Addresses

Common use cases are the need to change a server address in WebServices endpoints, JSF URLs or Mail Server addresses dynamically during runtime. This can be achieved by using a configuration variable that can be referenced in the according applications, e.g. a variable with the name CentralServer.


Figure: Configuration Variable for Server Address

This variable could be accessed in the applications by escaping the variable syntax in the following way:

The reference to the configuration variable is reflected in the model property page in the following way:


Figure: References to Configuration Variable

At runtime the server address can be set once for the entire model by string replacement. In the Stardust Portal, the value of the server address can be changed in the Configuration Variables view directly.

Controlling Process Flow in Test and Production Mode

Problem Statement

Sometimes companies have a workflow, were they do not require a specific step to be executed in a test environment, but they do want it to be executed in production.

Goal

The aim is to automatically skip an activity without physically changing the model for the different modes.

Solution

We will use a global configuration variable in a condition to decide when a specific activity for production should be performed or skipped.

The following steps demonstrate how this can be realized:

  1. Create a model and add a configuration variable Environment. Please refer to chapter Using Configuration Variables in the Modeling Guide for details on adding variables to a model.
  2. Give the variable a default value TEST.

  3. Create a workflow having an activity, which is only performed on a specific condition.

  4. Enter a condition so that the activity is only performed if the variable has the value "PRODUCTION":
    "${Environment}" == "PRODUCTION";

  5. This reference to the variable is reflected in the Configuration Variables section of the model property page:

  6. Deploy the model and start the Stardust Portal.
  7. Per default, the model is run in test mode as the default value of the configuration variable is "TEST" (or different to "PRODUCTION").
  8. To run the model in the production mode, simply change the value of the variable in the Configuration Variables view to "PRODUCTION". For details on this view, please refer to chapter Viewing and Editing Configuration Variables of the Stardust Portal guide.

  9. The transition condition checks the value of the variable and decides to run the activity foreseen for production.
  10. The value of the variable is stored in later versions of this process model. In case you want to run the model again in test mode and skip the activity for production, change the variable value to "TEST".

You find a step by step guide of this use case in the Using a Configuration Variable to Control a Process Flow tutorial of the Tutorial Guide.