Writing a Custom Expression
You can write your own custom expressions to control how Conditional Router routes records using the Groovy scripting language to create an expression.
Using Groovy Scripting
For information about Groovy, see groovy-lang.org.
Groovy expressions used in the Conditional Router stage must evaluate to a Boolean value (true or false) which indicates whether the record should be written to the port. The record is routed to the first output port whose expression evaluates to true.
For example, if you need to route records with a validation confidence level of >=85 to one stage and records with a validation confidence level of <85 to another stage, your script would look like:
data['Confidence']>=85
The script for the other port would look like:
data['Confidence']<85
The router would evaluate the value of the Confidence field against your criteria to determine which output port to send it to.
Checking a Field for a Single Value
This example evaluates to true if the Status field has 'F' in it. This would have to be an exact match, so 'f' would not evaluate to true.
return data['Status'] == 'F';
Checking a Field for Multiple Values
This example evaluates to true if the Status field has 'F' or 'f' in it.
boolean returnValue = false;
if (data['Status'] == 'F' || data['Status'] == 'f')
{
returnValue = true;
}
return returnValue;
Evaluating Field Length
This example evaluates to true if the PostalCode field has more than 5 characters.
return data['PostalCode'].length() > 5;
Checking for a Character Within a Field Value
This example evaluates to true if the PostalCode field has a dash in it.
boolean returnValue = false;
if (data['PostalCode'].indexOf('-') != -1)
{
returnValue = true;
}
return returnValue;
Scripting Guidelines
- Column names must be enclosed within either single or double quotes.
For example, this syntax is incorrect because the column name
PostalCode
is not enclosed within either single or double quotes.return data[PostalCode];
- A column name must be specified.
For example, this syntax is incorrect because no column is specified.
return data[];
- A
return
statement must return aBoolean
value.For example, this script is incorrect because
row.set('PostalCode', '88989')
does not return aBoolean
value. It just sets the value of thePostalCode
field to88989
.return row.set('PostalCode', '88989');
- Use a single equals sign (=) to set the value of a field, and a double equals sign (==) to check the value of a field.