Substitution variables
Substitution variables are used to reference parameters throughout DROPS by referring to various entities' properties. The properties can either be the fields used to define the entity's details, or the properties defined manually in each entity.
For more information about defining properties in entities, refer to Properties.
These values can either be entered manually or come from property values defined in different entities linked to the entity. Variables enable you to change the value of parameters retroactively and consistently without changing the overall definition of your entities and guarantee that the deployment process will work correctly.
To declare a substitution variable, use one of the following syntaxes:
- Point to a specific field or property when the entity does not need to be defined.
${field-name}
or${[property-key]}
Example${user}
,${password}
,${application.code}
,${local.root}
are replaced by the value defined in the corresponding field. - Point to attribute information defined in an entity.
${[entity-name].[attribute]}
Example${importStrategy.localroot}
is replaced by the path entered in the import strategy's Root Directory field. - Point to a user-defined property in a specific entity.
${[entity-name].props.[property-key]}
Example${application.props.myProperty}
is replaced by the value of the property called myProperty declared in the application.
The variables available to use during the import process represent entities that always remains the same, even if they are used in multiple import process instances. The variables available for import processes are all the attributes and properties defined for:
- applications
- import strategies
- components
Variable | Description |
---|---|
${import.version}
|
This variable is replaced by the value of the External Version defined by the user when launching an import process instance. It is a special substitution variable that does not rely on an entity and is used to point to the version number of an external artifact provider's release. This value is used to define which of the SCM's versions the artifacts should come from when they are imported. The version to import is defined in the External Version field when importing. Reference
For more information about defining the external version to import, refer to Importing artifacts immediately by application or Creating import process instances. |
${release.number}
|
The Release Number of the imported release. Important!
The release number can be called by many variables. This one is only for the import process. |
${application.code}
|
The App. Code. |
${application.text}
|
The App. Name. |
${application.packagetype}
|
The Packaging Type. |
${application.importfile}
|
The Default Imported Version file name. |
${application.releasetemplate}
|
The Release Number Template. |
${application.qualifier}
|
The Qualifier. |
${application.majoritem}
|
The application's Current Major, Minor, Build and Revisions Items fields. The biggest number of the most recently imported application. |
${component.code}
|
The Component Code. |
${component.name}
|
The Component Name. |
${importStrategy.code}
|
The Import Strategy Code. |
${importStrategy.comment}
|
The Import Strategy Name. |
${importStrategy.localroot}
|
The value defined in the Root Directory field. Important!
The If you use the value AUTO as the Local Root:
|
${importStrategy.usetemplate}
|
Equals 1 if the Strategy uses a template, 0 if it does not. |
${importStrategy.isinitialization}
|
Equals 1 if the Strategy is an Initialization Strategy, 0 if it is not |
${importStrategy.order}
|
The order of execution. Values start at 0. Import strategies are executed in the order in which they are defined. If a Strategy was the third to be created, it will be executed after the first two Strategies and the variables will be 3. |
These variables available to use while executing a deployment process based on a release set are used to generate notification messages. You can access the list of releases that belong to this release set, use this information in a notification message and share it with other users that do not have access to the DROPS Studio.
During the execution of a process based on a Release Set and for each release that belongs to the selected release set, some additional properties are generated.
Variable | Description |
---|---|
${releaseset.loop.begin}
|
This variable identifies the beginning of a text block that contains references to a particular release set. |
${releaseset.count}
|
This value contained the count of releases contained in a particular release set. |
${releaseset.number}
|
This value corresponds to the number of the release. |
${releaseset.<release_attribute_i>}
|
This value is substituted by the value of the attribute generated by the release. |
${releaseset.loop.end}
|
This variable identifies the end of a text block. |
The DROPS processor captures the text between the ${releaseset.loop.begin}
and ${releaseset.loop.end}
properties to create the notification.
The variables available to use during the deployment process represent entities that always remains the same, even if they are used in multiple deployment process instances. The variables available for deployment processes are all the attributes and properties defined for:
- applications
- releases
- environments and their possible extended configuration
- deployment process
Variable | Description |
---|---|
${drops.home}
|
The value of the variable called "DROPS_HOME". |
${process.code}
|
The Process Code field. |
${process.name}
|
The Process Name field. |
${process.lastrelease.id}
|
Releases can be tracked chronologically. This refers to the latest deployed release's Release Description field. |
${process.lastrelease.order}
|
Releases can be tracked chronologically. This refers to the latest deployed release. |
${process.lastrelease.number}
|
Releases can be tracked chronologically. This refers to the latest deployed Release Number. Important!
The release number can be called by many variables. This one is only for the latest deployed release. |
${application.code}
|
The App. Code. |
${application.text}
|
The App. Name. |
${application.packagetype}
|
The Packaging Type. |
${application.importfile}
|
The Default Imported Version file name. |
${application.releasetemplate}
|
The Release Number Template. |
${application.qualifier}
|
The Qualifier. |
${application.majoritem}
|
The application's Current Major, Minor, Build and Revisions Items fields. The biggest number of the most recently imported application. |
${release.number}
|
The Release Number. Important!
The release number can be called by many variables. This one is only for the deployment process. |
${release.text}
|
The release's Release Description field. |
${release.creationdate}
|
The release's uneditable Opened the field. |
${release.closuredate}
|
The release's uneditable Closed the field. |
${release.isclosed}
|
Points to closed releases. |
${release.islocked}
|
Points to locked releases. |
${release.order}
|
Releases can be tracked chronologically. This refers to the Release Description field of the last release created. |
${release.comment}
|
The content defined in the Comments tab of the Release editor. |
${environment.code}
|
The *Env. Code. |
${environment.name}
|
The *Env. Name. |
${environment.config.application}
|
The Application Code defined in the environment’s extension. |
${environment.config.identifier}
|
The Environment ID defined in the environment’s extension. |
${deployment.executer}
|
The user who executed the deployment process instance. |
${deployment.instancetype}
|
The deployment mode of the deployment process instance (Full, Transfer-Only, installation-only). Reference
For more information about modes, refer toDefining an instance's deployment mode. |
${deployment.preparedate}
|
The value defined in the Preparation Date column of the deployment process instance. |
${deployment.preparer}
|
The user who created the deployment process instance. |
${deployment.result}
|
The value defined in the Execution Result column of the deployment process instance. |
${deployment.rollback}
|
This substitution variable makes it possible to differentiate if the process is a rollback process or a standard deployment process. The value of this variable is true if it is a rollback process, false if it is a deployment process. |
${deployment.scheduledate}
|
The date the schedule was created for a deployment process instance. |
${deployment.scheduled}
|
The date a deployment process instance is scheduled to execute. |
${deployment.schedulehour}
|
The hour the deployment process instance is scheduled to execute. |
${deployment.scheduleminute}
|
The minute the deployment process instance is scheduled to execute. |
${deployment.startdate}
|
The date the deployment process instance executed. |
${deployment.status}
|
The value defined in the Execution Status column of the deployment process instance. |
${deployment.transactionid}
|
The deployment process instance's Transaction ID. |
${deployment.deploymentorder}
|
The order number of the deployment plan instance created when the plan is executed, multiplied by 100. Example
If the instance is the 4th to be executed in the plan (following three instances created from the same plan) the value is 400. |
An activity-level substitution variable is a combination of multiple values found in the entities that are reunited in the activity (the infrastructure item and the component). The variables available at the activity-level are:
- all the attributes defined for
- The artifact List
- components
- infrastructure items
- all the properties defined for infrastructure items.
- the optional extended configuration of the infrastructure item.
To declare an activity-level substitution variable, use one of the following syntaxes:
- Point to an attribute of the activity.
${activity.[activityID].[attribute]}
Example${activity.tomcat.identifier}
- Point to a related entity.
${activity.[activityID].[entity.name].[attribute]}
Example${activity.tomcat.infra.url}
- Point to a property defined for a related entity.
${activity.[activityID].[entity.name].props.[property_name]}
Example${activity.tomcat.infra.props.connectionurl}
- Point to an extended configuration attribute.
${activity.[activityID].config.[attribute]}
Example${activity.tomcat.config.user}
Artifact Key: /database/scripts/install/scripts.sql
${drop.artifact.key}
= /database/scripts/install/scripts.sql${drop.file.name}
= scripts.sql${drop.file.path}
= /database/scripts/install/
The slash will be replaced by the File Separator defined for the given infrastructure item.
Variable | Description |
---|---|
${activity.[activityID].artifact.list}
|
The path to the artifact list xml file located on the DROPS Server. |
${activity.[activityID].remote.artifact.list}
|
The path to the artifact list xml file located on the remote infrastructure item. |
${activity.[activityID].component.code}
|
The Component Code. |
${activity.[activityID].component.name}
|
The Component Name. |
${activity.[activityID].component.uri}
|
The Directory Path where components/artifacts are imported. |
activity.[activityID].component.externalversion
|
The External Version for a component and its release. |
${activity.[activityID].identifier}
|
The defined [activity's] *Identifier. |
${activity.[activityID].infra.backupdir}
|
The path defined in the Backup Directory field. |
${activity.[activityID].infra.rootdir}
|
The path defined in the Root Directory field. |
${activity.[activityID].infra.fileseparator}
|
The path defined in the item's File Separator field. |
${activity.[activityID].infra.url}
|
The infrastructure item's URL which is made up of the Protocol, Host name & Port and (sometimes) the Host name & Port. |
${activity.[activityID].infra.code}
|
The item's *Infra. Item Code. |
${activity.[activityID].infra.name}
|
The item's *Infra. Item Name. |
${activity.[activityID].infra.login}
|
The login name used to connect to the DROPS Agent. The item's Login & Password field. |
${activity.[activityID].infra.password}
|
The password used to connect to the DROPS Agent. The item's Login & Password field. |
${activity.[activityID].infra.store}
|
Points to the directory into which the related component's artifact(s) will be transferred. |
There are no variables defined for individual artifacts however, if you execute an action specific to an artifact, or multiple artifacts in the list, the following variables are available.
If any of the following variables are used, you must tick the Apply script to the list of artifacts checkbox in order to ensure that the variable is taken into account at the artifact-level. If the script is not applied to each individual artifact in the list, these variables will not be applied because they are specific to individual artifacts.
Variable | Description |
---|---|
${drop.file.name}
|
The artifact's file name. |
${drop.file.path}
|
The relative path (without the file name) of the artifact. |
${drop.artifact.key}
|
The artifact Key. |
${drop.artifact.source.file}
|
The absolute name of the artifact in the artifact repository. |
${drop.artifact.target.file}
|
The absolute name of the artifact in the infrastructure item storage area. |
${drop.file.basename}
|
The base name (the final name without extension) of the artifact. |
${drop.file.extension}
|
The file extension (without the leading "."). |