v26.03: Working with Transform Nodes
Transform nodes (formerly Calculation nodes) transform data from upstream nodes using various methods.
Available Data Types
Data Type |
Description |
|---|---|
|
v26.03: Mapping |
Transforms data by applying predefined Mapping Tables to input datasets |
|
v26.03: SQL Script |
Provides SQL-based data transformation capabilities |
Aggregate |
Aggregates data based on grouping |
Append |
Appends multiple datasets |
Deduplicate |
Removes duplicate records |
Filter |
Filters data based on conditions |
Join |
Joins multiple input datasets |
Lookup |
Performs lookup operations |
Pivot |
Pivots data structure |
Python Script |
Creates Python-based transformations |
Recipe |
Applies multi-step transformation recipes |
v26.03: Mapping Node
The Mapping node transforms data by applying predefined Mapping Tables to input datasets.
To configure a Mapping node:
Click + Add Node from the Level 2 header. The Add Node dialog opens.
Select Transform from the left panel.
Select Mapping from the right panel. The node appears on the canvas and the configuration side panel opens.
-
Fill in the required fields from the configuration panel:
Parameter
Description
Name
Unique identifier. Defaults to Mapping_[n].
Input
Select an upstream Read, Mapping, or SQL Script node.
Steps
Select + Add Step to create mappings.
Each step requires the following:
Step Name (identifier)
Mapping Table (the predefined Mapping Table to apply)
Source Field Mapping (the source fields to map)
v26.10:
Only Match First
Select to return only the first matching row, in row order, when a source value matches more than one row of the mapping table. When the checkbox is cleared (the default), the node returns all matching rows. The setting applies to all steps in the node.
v26.05:
Settings (Optional)
Configure Precedent and Subsequent nodes to control node execution order.
See Working with Node Settings for more details.
-
Select Publish in the Level 2 header to save the configuration.
After publishing, the following controls become available in the Level 2 header:
Refresh: Reloads the grid to reflect changes.
Run: Executes the query when valid.
Go to the Execution Output tab to preview the Mapping Table data. The Execution Output tab also displays a real-time data simulation preview: mapped rows show the mapped value, failed rows show N/A, and unmapped rows are blank when Fail on Unmapped Source is not enabled.
v26.04: Users can reorder, edit, and delete steps via the ellipsis menu. Unmapped Handling inherits the "Fail on Unmapped Source" setting from the selected Mapping Table.
v26.10: When a run stops or finishes with unmapped values, the Message tab of the Execution Output lists the number of rejected records and the unmapped values by dimension. For example: 3 Records got rejected because of following Dimension(s): Masterdata: ["EM","AF","DC"]
v26.10: Match and Skip Source Values
The Mapping node compares each source value with the rows of the mapping table in row order. The following rules apply:
Rule |
Behavior |
|---|---|
*SKIP as a target |
The source values that match the row are left out of the output. Skipped values are not mapped and are not counted as rejected. A *SKIP row applies in row order, whether or not Only Match First is selected. |
Wildcards in source and target |
When the source pattern and the target value both contain a wildcard (*), the part of the source value that the wildcard matches replaces the wildcard in the target. For example, the source pattern EC* and the target MC* map EC01 to MC01. |
Spaces |
Leading and trailing spaces are removed from the source value and from the mapping table value before they are compared. |
v26.03: SQL Script Node
The SQL Script node provides SQL-based data transformation capabilities.
To configure a SQL Script node:
Click + Add Node from the Level 2 header. The Add Node dialog opens.
Select Transform from the left panel.
Select SQL Script from the right panel. The node appears on the canvas and the configuration side panel opens.
-
Fill in the required fields from the configuration panel:
Parameter
Description
Name
Unique identifier. Defaults to SQL Script_[n].
Input
Select + Add to choose upstream nodes. Multiple inputs are supported.
Query
Enter SQL logic. Select Expand to open the Advanced View for editing.
v26.05:
Settings (Optional)
Configure Precedent and Subsequent nodes to control node execution order.
See Working with Node Settings for more details.
(Optional) Select Validate to check the syntax before publishing.
-
Select Publish in the Level 2 header to save the configuration.
Note: Nodes can be published with invalid queries — a warning icon is displayed in that case.
After publishing, additional controls become available in the Level 2 header:
Refresh: Reloads the grid to reflect changes.
Run: Executes the query when valid.
The Query field supports the following:
Query syntax —
{{node_name}}and${dimension_description}with examples.Supported SQL operations — SELECT, JOIN, WHERE, GROUP BY, ORDER BY, functions.
Validation info — Select Validate to check the syntax before publishing.\
Note: Nodes can be published with invalid queries (warning icon shows)
v26.02: The query is validated on publish or refresh. The system displays a warning icon when SQL queries access unauthorized components.
v26.04: Query syntax: Use {{node_name}} for input nodes, {{node_name}}.DIM_NAME for dimensions .
v26.08: Input Validation and Security
SQL queries can now only reference tables explicitly added as Input nodes (via Read nodes, Master Data, or Preferences).
Direct backend table IDs or names are blocked at both save and execution time.
This closes a loophole where workflows could bypass workspace-level data access controls, ensuring all SQL Script nodes respect workspace-level security policies.
v26.10: To lift this restriction for a workflow, select Allow access to workspace tables in the Workflow Details panel. The option is cleared by default.
v26.09: SQL Syntax Standardization
The SQL Script node now uses a standardized syntax for referencing nodes, columns, and parameters. This replaces the previous {{node_name}} and ${Node Name} forms.
Node and Column References
Columns are referenced using the format 'node_id'.'column_id', with both the node ID and column ID in single quotes.
A reference must always include both the node ID and the column ID, dot-separated. A query using a bare column name without a node reference is rejected with a clear error message.
A single-quoted node or column ID that does not resolve to a declared input node or one of its columns is rejected with a clear error identifying the unknown identifier.
Single and double quotes are not mixed.
The standardized syntax applies consistently across query writing, the Input/Output structure display, and the data preview. The structure display shows ID (description) while the query uses 'node_id'.'column_id'.
Parameter References
All parameters are referenced using the format $'parameter_name'. The previous ${Node Name} form is no longer used or displayed anywhere.
This applies to every parameter in the Available Parameters panel, including system parameters (Execution Date, Execution Period, Execution User) and user-defined parameters.
Editor Behavior
Clicking a parameter in the Available Parameters panel inserts it at the cursor position in the $'parameter_name' syntax, rather than copying to the clipboard.
While typing inside single quotes, the editor suggests matching input node IDs. After 'node_id'., it suggests that node's column IDs, drawn only from the SQL node's declared input nodes. Selecting a suggestion inserts the full 'node_id'.'column_id' reference.
Impact on Existing Workflows
Existing workflows are not upgraded automatically. Existing SQL queries written in the previous syntax — using {{node_name}}.column_name or ${Node Name} — will not run until updated to the new syntax. Any node whose query no longer resolves is flagged as invalid.
Note: Existing nodes keep their current names and IDs. No table is recreated and no ID is changed by this update.
v26.10: Resolve Query Errors
When you validate, publish, or run a SQL Script node, a problem in the query is reported in the Execution Output with a specific message. The message uses the names that you see on screen, such as the input node names that you gave, and it gives the line and column of the problem in the query as you typed it.
The following types of problems are reported:
Type |
What the message identifies |
|---|---|
Syntax |
An unexpected or missing part of the query, such as a misspelled keyword, an unclosed bracket, quote, or comment, a missing comma, or an incomplete clause. |
Unknown references |
An input node or column that does not exist, or an alias that is not available yet in the same SELECT list. |
Parameters |
An unknown parameter, a parameter with no value selected, a parameter with several values compared with =, or a parameter whose type does not match the column. |
Types and functions |
A comparison, operator, cast, or function that the data types do not support, such as comparing text with a number, a function that does not exist, or division by zero. |
Guardrails |
A query with more joins or subqueries than the limit, or a query that does not finish within the allowed time. |
Output columns |
Duplicate column names, an expression without an alias, an invalid alias, a subquery that returns more than one column where one is needed, or a column count that does not match the downstream Write node. |
Errors that occur while the query runs keep their existing text, with your input node names in place of internal table names.
Note: A forbidden keyword inside a text value, a comment, or a quoted identifier does not block a query, and a query can end with its own LIMIT clause.