Lexical Relational Operators
You can use the lexical relational operators to create filters that compare string values. Keep the following points in mind when using the lexical operators:
When evaluating filters that contain lexical operators,
Integration Server uses the locale collating sequence specified on the
Broker to compare the values of the strings. The behavior of lexical operators depends on whether a locale is set for the
Broker. If no locale is specified, the lexical relational operators behave like the standard relational operators.
Note: To set the filter collation locale, use My webMethods to change the locale on the Broker Server. You might need to restart the Broker Server for the change to take effect. For more information about administering the Broker Server, see Administering webMethods Broker.
If you use a lexical operator to compare strings in an expression (such as in a BRANCH step or in a pipeline link),
Integration Server treats the lexical operators as if they were standard relational operators.
If you use a lexical operator to compare a value that is not a string with another string value,
Integration Server treats the non-string value as an empty string (that is, ""). For example, in the expression (
%myInt% L_EQUALS ""), the
%myInt%variable is declared to be of type integer. This expression always evaluates to true because
%myInt% contains an integer value that
Integration Server treats as an empty string ("") when it evaluates the expression.
If you use a lexical operator to compare numbers in fields of type String,
Integration Server treats the numbers as strings.
Filters that use lexical relational operators to compare string values will be saved with the trigger subscription on the
Broker. Filters that use standard relational operators to compare string values will not be saved on the
Broker.
When you view filters on
My webMethods, a lexical operator appears as its equivalent standard operator. For example, the expression
%myString% L_EQUALS "abc" appears as
myString=="abc".
The following table describes the lexical operators that you can use in filters.
Operator | Description |
L_EQUALS | Lexical equal to. |
| This example... | Evaluates to true if... |
| %myString% L_EQUALS "abc" | The value of the myString variable is abc. |
L_NOT_EQUALS | Lexical not equal to. |
| This example... | Evaluates to true if... |
| %myString% L_NOT_EQUALS "abc" | The value of the myString variable is not abc. |
L_LESS_THAN | Lexical less than. | |
| This example... | Evaluates to true if... |
| %myString% L_LESS_THAN "abc" | The value of the myString variable is less than abc. |
L_LESS_OR_EQUAL | Lexical less than or equal to. |
| This example... | Evaluates to true if... |
| %myString% L_LESS_OR_EQUAL "abc" | The value of the myString variable is less than or equal to abc. |
L_GREATER_THAN | Lexical greater than. |
| This example... | Evaluates to true if... |
| %myString% L_GREATER_THAN "abc" | The value of the myString variable is greater than abc. |
L_GREATER_OR_EQUAL | Lexical greater than or equal to. |
| This example... | Evaluates to true if... |
| %myString% L_GREATER_OR_EQUAL "abc" | The value of the myString variable is greater than or equal to abc. |