Skip to the content.

Core Concepts

Overview · Subject · Match · Target · Condition


Condition Node

Purpose

A Condition node determines whether a Target node should execute.

Conditions allow audit rules to depend on additional criteria before a validation check is applied.

If the conditions fail, the Target is skipped and no audit result is produced.

Conditions do not generate flags themselves.
They only control whether the Target evaluation runs.


Multiple Targets for the Same Cell

Normally a column should only be targeted once within a Match branch.

However, duplicate Targets are valid if they contain different Conditions.

This allows multiple audit rules to apply to the same cell depending on context.

For example:

Target: MATERIAL
Condition: PROFILE depth = 139.7 AND thickness ≤ 5
Expected grade: 250

Target: MATERIAL
Condition: PROFILE depth = 139.7 AND thickness > 5
Expected grade: 350

In this situation, only one Target will execute depending on which condition is satisfied.


Condition Properties

Each Condition contains several properties that define how the comparison is performed.

LeftSource

Determines where the value being tested comes from.

Available sources:


Column

The value is taken directly from another column in the grid.

The column name must be specified in the Column field.


matchString

Uses a string value returned from a Regex Match node capture group.

The value is selected using MatchIndex.


matchNumber

Uses a numeric value returned from a Regex Match node capture group.

The value is selected using MatchIndex.


Regex Match Groups

When a Match node uses regex, captured groups can be passed to Conditions.

For example:

Pattern: ^CHS(\d+(\.\d+)?)\*(\d+(\.\d+)?)$

This might extract values such as:

Depth: 139.7
Thickness: 5.0

These values can then be used in Conditions using:

LeftSource: matchNumber
MatchIndex: 0

The Matches tool in the Audit Definitions editor can display the extracted match groups for selected rows.
This helps determine which MatchIndex values correspond to each captured group.

Select some rows in the main table and the corresponding match node, and the Matches tool will show matching rows.


Column

When LeftSource = Column, the Column field specifies which grid column should be evaluated.

Example:

LeftSource: Column
Column: RADIUS
Operator: ==
Value: 0

Operator

The operator defines how the comparison is performed.

The available operators depend on the datatype of the value being evaluated. They are all available, but the correct one should be specified for the data type of the condition value.

Numeric operators can only be used when the column datatype is numeric (as defined in the column definition).

String operators:

equals
notEquals
like
notLike
contains
notContains

Numeric operators:

==
!=
<
<=
>
>=

Right Comparison Values

Conditions compare the left value against one of two possible right-side values.

Value

A single numeric comparison value.

Example:

Operator: <=
Value: 5

Values

An array of comparison values.

This is typically used for string comparisons.

Example:

Operator: equals
Values: ["Q", "R"]

Wildcards (*) may be used when the operator supports pattern matching (like or notLike).

Arrays of numeric values are also supported, but operators such as < or > should not be used with numeric arrays as the results would be ambiguous.


Required Fields

Only some properties are required depending on the condition type.

When LeftSource = Column

Required:

LeftSource
Column
Operator
Value or Values

When LeftSource = matchNumber or matchString

Required:

LeftSource
MatchIndex
Operator
Value or Values

The Column field should remain empty in this case.


Example: Profile Depth and Thickness

A common use of Conditions is when a Regex Match extracts numeric values from a profile string.

Example profile:

CHS139.7*5.0

Regex groups may extract:

matchNumber[0] = 139.7
matchNumber[1] = 5.0

Conditions can then be used to control which Target rule applies.

Example:

Condition 1
LeftSource: matchNumber
MatchIndex: 0
Operator: ==
Value: 139.7

Condition 2
LeftSource: matchNumber
MatchIndex: 1
Operator: <=
Value: 5.0

This allows different audit rules to apply depending on profile dimensions.


Why Conditions Are Useful

Conditions allow audit rules to be highly specific without requiring large numbers of separate Match branches.

They allow Targets to activate only when the correct context exists.

This enables complex validation rules such as:


Summary

Condition nodes allow Targets to run only when specific criteria are satisfied.

They can evaluate:

By combining Conditions with Targets, audit rules can adapt to many different scenarios while remaining organised and maintainable.