Advanced substitutions - Data360_Analyze - Latest

Data360 Analyze Server Help

Product type
Software
Portfolio
Verify
Product family
Data360
Product
Data360 Analyze
Version
Latest
Language
English
Product name
Data360 Analyze
Title
Data360 Analyze Server Help
Copyright
2024
First publish date
2016
Last updated
2024-11-28
Published on
2024-11-28T15:26:57.181000
Tip: If you are not yet familiar with how you can use derived property values across your data flows, see Using derived property values.
Table 1. Changes in this topic
Change type Description
Updated in version 3.16.0 Added property to access temporary data location.

In addition to directly substituting a property value into another property by using {{^propertyname^}}, you can also use the following advanced substitutions:

Substitution description Text
Identify whether a specified property name has been defined. Evaluates to true if the property name has been defined. {{?propertyname?}}

Reference the value of a run property.

Note: You cannot enable or disable a node by using a run property to reference a Boolean (True/False) value. To configure the Enabled property of a node, you can either choose True or False, or you can reference a data flow property which will be evaluated to a True/False value.
{{$propertyname$}}
Textually substitute a property value with a value from the composite within which the node is contained.

{{^container:property^}}

Textually substitute the value of a property with an inherited value from the parent node.

{{^parent:property^}}

Specify that the default property value should be used if the property is not set. {{^property=default^}}
Reference the property source. {{^propertyname#source^}}
Retrieve the data type. {{^propertyname#dataType^}}
Tip: Substitutions can be nested, for example: {{^property1={{^property2={{^property3=default^}}^}}^}}
Tip: The name of the property to be substituted can come via another substitution, for example: {{^{{^propertySpecifiesOtherPropertyName^}}^}}

The following properties can be used to identify the path of a data flow, the path of a node within a data flow, and to identify execution sessions (when a data flow is created, an execution session is opened to track the state of the data flow, for example node states and run property values).

Substitution description Use case Text

Runtime substitution of the locator of the data flow. Also accessible via the run time property name: d3sa.dataflow.locator.

DataflowLocator* properties are useful when you want to ensure a consistent reference is used for all users, across all runs of the same data flow.

{{$DataflowLocator$}}

Runtime substitution of the hash of the DataflowLocator. Also accessible via the run time property name: d3sa.dataflow.locatorHash.

The hash values can be useful in temporary file names as they will not contain any characters that would be illegal for file names.

{{$DataflowLocatorHash$}}

Runtime substitution of the absolute locator of the execution session. Also accessible via the run time property name: d3sa.executionSession.locator.

ExecutionSession* properties are useful when you want to ensure that for different users, a different reference is used when they run a data flow, and when you want to ensure that for a single user:
  • In an interactive run, any time you hit the run button the reference will always be the same.
  • For each scheduled run, a new reference will be generated.
{{$ExecutionSessionLocator$}}
Runtime substitution of the hash of the ExecutionSessionLocator. Also accessible via the run time property name: d3sa.executionSession.locatorHash. The hash values can be useful in temporary file names as they will not contain any characters that would be illegal for file names. {{$ExecutionSessionLocatorHash$}}
Runtime substitution of the execution session ID. Also accessible via the run time property name: d3sa.executionSession.id. ExecutionSession* properties are useful when you want to ensure that for different users, a different reference is used when they run a data flow, and when you want to ensure that for a single user:
  • In an interactive run, any time you hit the run button the reference will always be the same.
  • For each scheduled run, a new reference will be generated.
{{$ExecutionSessionId$}}

Runtime substitution of the execution ID. Also accessible via the run time property name: d3sa.execution.id.

The ExecutionId property is useful when in an interactive run each time you hit the run button a different reference will be generated.

{{$ExecutionId$}}
The relative locator of the node, for example: object:graph:1234~element:4567~child:8901

Also accessible via the run time property name: d3sa.node.locator.

Node* properties are useful when you want a unique reference per node, where for an individual node the reference will always be the same for all users, across all runs of the same data flow. {{^NodeLocator^}}
The hash of the NodeLocator. Also accessible via the run time property name: d3sa.node.locatorHash.

The hash values can be useful in temporary file names as they will not contain any characters that would be illegal for file names.

For example, the NodeLocatorHash gives you a static identifier for an instance of a node in a data flow. Note that locators are relative, therefore if you have the same data flow saved in multiple locations you would also need to reference the data flow locator to identify a unique instance of a node.

{{^NodeLocatorHash^}}
Runtime substitution of the location where the temporary output data for the run is to be stored. Also accessible via the run time property name: ls.brain.node.outputDataLocation This is useful for obtaining a path which will by default be specific for a given run of a data flow.

For example, this could be used in custom nodes that write files which the node or data flow is then responsible for cleaning up its own temporary files.

Note: This value is not available for the legacy C++ nodes.
${ls.brain.node.outputDataLocation}
Note: {{^parent:NodeLocator^}} and {{^parent:NodeLocatorHash^}} are not currently supported.

The following substitution allows you to get the version of the current Data360 Analyze instance, from within a data flow:

{{%lae.release.version%}}

The following substitutions will get you the values of the site and data folders:

Substitution description Text
The path to the deployed site folder.

{{%ls.appDataDir%}}

The path to the deployed data folder.

We recommend using the /site/lib/java location for storing third party jars. You can reference this location by using this substitution.

{{%ls.appDataDir%}}/lib/java