At the flow level, you can define flow parameters to reference in your recipes. A flow parameter is a (Variable) value or a set of enumerated values (Selector type). |
NOTE: Flow parameters apply to recipe steps only. |
Flow parameters are of String data type.
Tip: You can wrap flow parameter references in your transformations with one of the |
A flow parameter cannot be used in the following transformation steps or fields.
Transformations:
as
clause when creating a New formula transformation. Steps:
Enter a Name for your parameter.
NOTE: Name values are case-sensitive. After saving a flow parameter, its name cannot be changed. |
Variable type parameters are single values that can be one of the following formats:
Format | Example | |
---|---|---|
String |
| |
Any string of letters:
| ||
regular expression | Any string of letters:
|
Additional steps:
Enter a default value for this parameter.
NOTE: Input Values are evaluated as String type. |
Click Save.
The parameter is available for use in any recipe in your flow. See "Use Parameter."
Selector type parameters are lists of one or more permitted values.
Additional steps:
Under Choices, enter a value.
Tip: The first value that you add is the default value. |
The parameter is available for use in any recipe in your flow. See "Use Parameter."
Parameter names can contain alphanumeric characters and spaces. in the following table, you can see how parameter names must be referenced in recipe steps.
Parameter name | Valid references | Notes | ||
---|---|---|---|---|
paramRegion |
| Both references are valid. | ||
param Region |
|
|
NOTE: Parameter overrides that were defined in a pre-Release 7.1 version of the software now appear in the Overrides tab. |
You can apply overrides to all parameter types, including flow parameters, at the flow level. An overridden value applies to all references of the parameter within the flow.
NOTE: You can apply override values for any parameter of any type that is referenced in the flow: dataset parameters, flow parameters, and object parameters. |
NOTE: For selector type flow parameters, the override value must be a value from the defined list of values. |
Upstream parameter values: Parameter values can be inherited from upstream recipes and datasets.
NOTE: Override values applied in a downstream flow are applied to the upstream flow when its objects are invoked for purposes of generating data for use in the downstream flow. |
Steps:
Select the parameter to override from the drop-down list.
Click Save.
This override value is applied to all references to the parameter in the flow.
Tip: Through Flow View, overrides can also be applied to the recipe parameters that are included when flow tasks are executed as part of a plan. |
Override values can be applied in multiple locations. Parameter values are evaluated in the following order of precedence (highest to lowest):
For more information, see Overview of Parameterization.
In your recipe step, you can add references to your flow parameter in the following format:
${MyRecipeParameter} |
In a recipe, flow parameters can be applied to:
Below are examples of how to use flow parameters.
NOTE: When a parameter value is displayed in a column, the column type in the data grid may be correctly inferring the type to your desired data type. However, the underlying type is still String type. To convert the underlying type, you must use one of the |
Variable type example - Integer parameter
Instead of segmenting the data by named time zone values, suppose your data is segmented by regions, which are numeric in number. Your flow parameter definition could look like the following:
Setting | Value | Notes |
---|---|---|
Name | paramRegionId | Note the more appropriate name. |
Value | 0 | In this case, there is no region identifier value |
To use this flow parameter as an integer, you must reference it wrapped in the PARSEINT
function, which evaluates the input value against the Integer data type:
In the column histogram for the paramRegionId
column, you can verify that the value 0
is present. Set an override outside at the flow level to insert a different value in the column.
Suppose you need to be able to pass a date into the execution of a recipe. If no date is passed in, then the current time is used. The variable is declared as follows:
Instead of segmenting the data by named time zone values, suppose your data is segmented by regions, which are numeric in number. Your flow parameter definition could look like the following:
Setting | Value | Notes | |
---|---|---|---|
Name | paramDate | Note the more appropriate name. | |
Value | In this case, the value is left empty to be overridden as needed in the application with the current timestamp. You should decide on the expected values for this parameter, as you must apply them to:
It may be easier to insert the format string here as the default value. For example:
|
You can use the following to insert the parameter value into your dataset. Note that the value is initially inserted as a String value, so the PARSEDATE function is used as a wrapper:
If the inserted value is empty or null, you can insert the current timestamp:
Tip: You could also overwrite invalid values in the following manner. However, that may mask problems with your inserted values. |
In the above, the value in execDate
is tested to see if it is either:
If so, the output of the NOW function is written. By default, this function returns the timestamp value at UTC time.
If there is a valid value, then it is written back to the column.
You can use the following to extract the time value from the parsed date param:
Since this value is not the parameter value specifically, the column name was listed simply as Time
.
Suppose you need to create a parameter that can contain any two-digit value from 0 to 99. To do so, you create a flow parameter of variable type, using a as the value:
`{digit}{digit}` |
The above matches two-digit values only. It does not match single-digit values. To expand the pattern to also match single digit values, you can use this one:
`({digit}|{digit}{digit})` |
`
), which are used to indicate a This parameter now accepts the following values:
0-9 00-99 |
Suppose you wish to create a flow parameter that can contain one of multiple values for color. Typically, you must track these values through an array, such as the following containing a set of colors:
["red","white","blue","black"] |
Using a selector type of flow parameter, you can specify these values as choices in your permitted values list for the $myColors
flow parameter:
red white blue black |
In this scenario, red
is the default value.
Within your recipe, you can test for the presence of a parameter value. In the following transformation, a value of true
is set in the new column isBlue
if the value of $myColors
is blue
:
Tip: When you reference a selector type flow parameter in a transformation step, you are presented the set of accepted values from which you apply the preferred one. |
When you run a job via the APIs, you can apply parameter overrides to the following parameter types:
For more information, see API Task - Run Job.