Data Transformation Steps


# Introduction

Data Transformation Steps provide a structured mechanism for correcting data in target records.

Each step defines which records to modify, which field to update, and what new value to apply. Execution results are logged for full auditability.

Data Transformation Step Form

# Entity Definitions

# Data Transformation Step (talxis_datatransformationstep)

Display Name Logical Name Description
Name talxis_name Descriptive name of the transformation step.
Entity Name talxis_entityname Logical name of the entity being transformed.
Target Field talxis_attributename Field name to update (logical name).
Step Number talxis_stepnumber Execution order; lower numbers are processed first.
Filter Query talxis_query FetchXML to select records for update.
Condition (Function) talxis_conditionid Optional PowerFx condition.
Transformation (Function) talxis_transformationid PowerFx function that computes the applies new value.
Description talxis_description Optional explanation of what the step does.

# Data Transformation Log (talxis_datatransformationlog)

Display Name Logical Name Description
Data talxis_datarecordid Polymorphic reference to the target record.
Transformation Step talxis_stepid Reference to the originating step.
Original Value talxis_originalvalue Value before the transformation.
New Value talxis_newvalue Value after the transformation.
Type (Manual/Automatic) talxis_datatransformationlogtypecode Indicates how the change was triggered.
Reason Description talxis_reasondescription Used to capture the reason for manual transformations.
Error Message talxis_errormessage Stores error messages generated during custom API execution.
Status statuscode Processing result (see below).

# Status Values

Code Status Name Meaning
742070000 Evaluation Condition pending.
742070001 Waiting for processing Ready for execution.
742070002 Processed Change applied successfully.
742070003 Cancelled Condition returned false.
742070004 Error Error during execution.

# Execution Flow

# Step Ordering

Each transformation step includes a Step Number that defines its place in the execution sequence. The system:

  1. Sorts steps by this number (ascending)
  2. Waits for all steps with lower numbers to finish before running the next group

The flow talxis_waitforpreviousinstancesandlogsfinished handles this sequencing.

⚠️ This applies when multiple steps are executed at the same time.

# Automatic Execution

Triggered after data import or other orchestration points, the steps run:

  • Based on their target entity (matched against the import type)
  • Only if their FetchXML query returns results
  • Conditionally, if a Function is defined

⚠️ This applies only to Albert VAT App. See User Guide (opens new window) to get more info.

# Manual Execution

From the admin interface, a user can trigger a specific step using the Execute Step button. The system will:

  • Evaluate FetchXML
  • Create logs for eligible records
  • Evaluate condition (if present)
  • Run the plugin to apply the change

# PowerFx Conditions

Used to determine whether a record qualifies for update. Function requirements:

  • Input: RecordId (string)
  • Output: Result (boolean)

Example:

{
  Result:
    LookUp('Invoice Lines','Line ID' = GUID(RecordId)).Country = "CZ"
}
1
2
3
4

# PowerFx Value Computation

In contrast to checks, transformations can also compute the actual value to be applied. A dedicated PowerFx function returns:

  • Input: RecordId
  • Output: NewValue (string)

Example:

{
  NewValue:
    Text(
      Patch(
        'Invoice Lines',
        LookUp('Invoice Lines', 'Line ID' = GUID(RecordId)),
        { Country: "DE" }
      ).Country
    )
}
1
2
3
4
5
6
7
8
9
10

# Manual Corrections via Dialog

Manual corrections allow users to:

  • Select a field to update (validated for writability)
  • Enter a new value based on data type
  • Confirm the change

This creates a talxis_datatransformationlog with:

  • Type: Manual
  • Step: (not linked to any step)

Plugin ResolveDataTransformationLog applies the change based on the new value.

  • ResolveDataTransformationLog – Applies the new value to the record based on the transformation log.

# Automation Integration

Transformation steps are typically triggered as part of a post-import process, but may also run independently. Each step provides:

  • Controlled correction mechanism
  • Traceable log per change
  • Flexible logic with conditions and value computation