Expression validations allow business-specific data quality rules to be implemented directly in Ataccama RDM without custom development.
Each validation consists of two parts:
- Validation Expression – defines the business rule.
- Validation Message – explains why the value is invalid and how it can be corrected.
Both components are equally important. A well-designed validation not only prevents invalid data from being entered but also helps business users understand and resolve data quality issues efficiently.

Before Implementing a Validation
Before implementing a validation, define the following:
| Item | Description |
|---|---|
| Business requirement | The business rule to be enforced |
| Target attribute | The attribute being validated |
| Validation expression | The logical expression used to evaluate the rule |
| Validation message | The message displayed when the validation fails |
Step 1. Define the Validation Rule
The validation expression defines the condition that an attribute value must satisfy to be considered valid.
During validation, the expression is evaluated for each record:
- If the expression evaluates to TRUE, the value passes validation.
- If the expression evaluates to FALSE, the validation fails and the associated validation message is displayed.
Example – Format Validation
matches('^LC[0-9]{6}$', LCTN_ID)
OR LCTN_ID IS NULLThis validation is evaluated only for non-NULL values.
Step 2. Define the Validation Message
The validation message is displayed whenever the validation expression evaluates to FALSE.
The message should clearly explain:
- which attribute failed validation;
- why the validation failed;
- what value or business rule is expected.
Validation Expression
matches('^LC[0-9]{6}$', LCTN_ID)Validation Message
Invalid Location ID.
Format mismatch: expected LC followed by 6 digits.In this example, the validation message is displayed only when the Location ID does not match the required format.
Message Structure
The following structure is recommended for all validation messages.
Invalid <Attribute>.
<Reason>: <Expected value or business rule>.Examples
Invalid Employee Number.
Format mismatch: expected 7 digits.Invalid Start Date.
Date order violation: must not be after end date.Invalid Offer Price.
Value mismatch: must be a non-negative number.Validation Message Structure
| Validation Type | Purpose | Expression Pattern | Example | Error Message |
|---|---|---|---|---|
| Format validation | Validates business-specific formats using regular expressions. | matches(...) OR COLUMN IS NULL | matches('^LC[0-9]{6}$', LCTN_ID) | Invalid Location ID. Format mismatch: expected LC followed by 6 digits. |
| Date order validation | Ensures the Start Date is not later than the End Date. | START_DT <= END_DT OR START_DT IS NULL OR END_DT IS NULL | LCTN_STRT_DT <= LCTN_END_DT | Invalid Start Date. Date order violation: must not be after end date. |
| Decimal precision validation | Validates the required precision and scale for decimal values. | matches(...) OR COLUMN IS NULL | matches('^-?\\d{1,16}(\\.\\d{1,2})?$', tostring(OFFR_PRCE)) | Invalid Offer Price. Format mismatch: expected decimal (18,2). |
| Numeric range validation | Ensures that numeric values satisfy business-defined limits. | tofloat(COLUMN) >= MIN OR COLUMN IS NULL | tofloat(OFFR_PRCE) >= 0 | Invalid Offer Price. Value mismatch: must be a non-negative number. |
Common Validation Failure Reasons
| Scenario | Example Reason |
|---|---|
| Invalid format | Format mismatch |
| Invalid value | Value mismatch |
| Invalid date sequence | Date order violation |
| Decimal precision issue | Format mismatch |

