Working with Dynamic Properties

This page includes the following:

About Properties

See: About Properties

Features of Dynamic Properties

Dynamic properties have the following features:

Example:

  1. Create an application named My CRM with two components: Database and Web App.
  2. Navigate to the details of the Database component and create a new dynamic property /database/database-name with the value My Database.
  3. Select Prompt and click Package.
  4. Create a package 1.0.2130 for the application.
  5. For this package, you decide to change the name of the database to My CRM Database .
    Navigate to the dynamic properties of the package and select the Highlighted value in the View properties of selector.
  6. This displays all highlighted dynamic properties and the properties you have set to be prompted on and allows you to override the database name specifically for this package.

Types of Dynamic Properties

The following types of dynamic properties are available:

The technical type name refers to predefined dynamic properties in your custom type definitions. See: Dynamic Properties

Viewing Dynamic Properties

Dynamic properties are managed within the Dynamic Properties section of some entities.

The Dynamic Properties section lists all properties that are configured for the entity with their syntax and the evaluated value; that is, the value the syntax is pointing to.

Important! Component values starting with non-alphabetic characters (A-Z) or containing blank spaces cannot be evaluated.

Dynamic properties are grouped in namespaces, which are displayed in alphabetical order.

The property type can be recognized by the icon that is displayed right before the value:

One entity can display not only its own dynamic properties, but also the dynamic properties of related entities. For example, an application can also display/override the properties of its components.

Note: For security reasons, using/referencing “foreign” protected properties is not supported. You can define protected properties at application level and can reference them at component level to use them for component deployment Workflows.

Custom types are displayed in the /custom namespace (read-only). For more information, see Custom Types.

Filtering Dynamic Properties

When you access the Dynamic Properties section, all properties configured for that entity are displayed. You can filter the properties displayed by name and by value by entering the appropriate values in the filter fields and clicking the filter icon.

Note: When filtering dynamic properties, all values whose path includes the word you are searching for are displayed.

For example, if you enter database in the Property field and click the filter icon, the following properties are displayed:

Image displaying path for dynamic properties

Related Entities

The following list displays which related entities are shown depending on the type of the current entity:

Important! The Properties of drop-down displays related entities regardless of the users permission. You may overwrite properties of related objects even though you do not have direct access to them; overwriting does not change the original value.

Note: For more information about how to change the evaluation settings, see Evaluation Settings.

Creating Dynamic Properties

  1. Go to the Dynamic Properties section of the entity and click the Create button. The Create Dynamic Property dialog is displayed.

    Notes:

    • Component dynamic properties can be also created from the variable picker of the PrompSets tab in the Workflow Editor. See: PromptSets Tab
    • Dynamic properties cannot be used with e-mail templates.
  2. Enter the name of the namespace to which the variable belongs. By default, the namespace field contains the currently selected namespace. Using namespaces is recommended if you have a large list of dynamic properties on an entity.

    Notes:

    • You cannot create dynamic properties in the /custom namespace. For more information, see Custom Types.
    • Namespaces are case sensitive.
  3. Enter the (case sensitive) name of the property after the slash. For example: /target/target_files_dirs
  4. Select the dynamic property type from the drop-down list (date, reference, single line text...).

    Note: When creating Single Choice or Multi Choice dynamic properties, the following input must be entered:

    • Single Choice: enter the options that you want to be available, one per line. The default value is the first line starting with an *.

    • Multi Choice: enter the options that you want to be available, one per line. Lines starting with an * are taken as default values.

  5. Select one of the following value types:

    • Static: if the dynamic property is a static value (hard value).

      http://myhost:8080

    • Expression: values sourced from other entities, either in the component itself or in other entities like targets or environments.

      {@target/custom/protocol}://{/tomcat/host}:{/tomcat/port}/

    • Prompt: prompts come in the form of a dialog allowing users to enter their own value at runtime. This may be necessary if certain information is available at execution time, like an IT Service-Management ID.

      (at Workflow runtime): "Enter the URL of your Tomcat server" + empty textbox.

      1. Select one of the following options from the Prompt for value on... drop-down list:

        • Deployment Package: users are prompted for the value while the Package is being created (only displayed for Applications and Components).
        • Execution: users are prompted for the value while the Workflow is being executed (displayed for Applications, Components, Workflows and Packages).
      2. Enter a caption for the dialog.
      3. Enter a default value.

      Important! You can define the order of the prompts. To do so:

      1. Click the Reorder prompts button in the toolbar.
      2. Move the properties up or down in the list.
      3. Save your changes.

      Note: Changes in the order of prompts are saved in the history. See: Statistics & History.

    Important! Do not put variables into the /system/ or /custom/ namespace. The /system/ namespace contains system defined properties of the entity (for example, Name, Type, and so on). See the dynamic properties sections of the respective entities for details. The /custom/ namespace contains all properties that you have defined in you custom type definition file. If you define variables within these namespaces anyway, you may hide system or custom properties.

    For example, most entities have a name property. If you want to access the value of this property in deployments, you can use the /system/name dynamic property in your scripts.

  6. Click the yes radio-button if you want this property to be highlighted in yellow. This helps you find the important dynamic properties later.
  7. Click Create (or Next in choice properties).

If a dynamic property with the same full name (namespace + / + property name) already exists, a popup prompts you to confirm if the current property should be overridden.

Editing Dynamic Properties

The properties of a dynamic property can be edited in the General / Dynamic Properties section of entities.

To Edit Dynamic Properties

There are two starting points to edit dynamic properties:

Deleting Dynamic Properties

  1. Go to the Release Automation perspective.
  2. Select the entity where you want to delete the dynamic property (Application, Component, Deployment Target...).
  3. Go to General / Dynamic Properties.
  4. Do one of the following:
    • Right-click the property and select Delete in the context menu.
    • Click the dynamic property and select the Delete button in the toolbar.

Note: A dynamic property can only be deleted within the dynamic properties section of the entity that defines the dynamic property. If you delete a dynamic property, all overriding properties are deleted too.

Best Practices for Defining Dynamic Properties

Naming Conventions

Wildcards in Dynamic Properties should be reflected in the property name (“_wildcard”).

The following rules apply for names of dynamic properties:

Important! Component values starting with non-alphabetic characters (A-Z) or containing blank spaces cannot be evaluated.

The same rules apply for the namespace of a dynamic property, except:

Folders

Custom Dynamic Properties should be stored in separate folders to avoid confusion.

See also: