header conditions evaluator

Conditions Evaluator

Version: 17.07

Supported Since: 17.01

What is Conditions Evaluator?

Conditions Evaluator element can be used to make a decision based on pre-specified condition. The behaviour of this element is analogous to the IF-THEN / ELSE conditional statement in high level programing languages.

In order to use this processing element, you must first select the Flow Control dependency from the processor list when you are creating an empty Ultra project. If you have already created a project, you can add this dependency via Component Registry. From Tools menu, select Ultra Studio → Component Registry and from the Processors list, select the Flow Control dependency.

condition evaluator outports

Out Ports

If-Then Output

The message will be emitted from this outport if the condition specified in the element evaluates to true

Else Output

The message will be emitted from this outport if the condition specified in the element evaluates to false

On Exception

The message will be sent to this outport if any exception occurred while processing

Parameters

Predicate Type *

Basic

The type of predicate to be used for the evaluation. The following predicate types are supported.

  • HEADER - A transport header value from the message will be used in the predicate

  • PROPERTY - A message property will be used in the predicate

  • CONTENT - An extracted XPath value from the message payload will be used in the predicate

  • VARIABLE - A scope variable from the message context will be used in the predicate

Variable Name *

Basic

The interpretation of this parameter’s value depends on the selected predicate type.

  • HEADER - Variable Name is the name of the transport header to be used in the predicate

  • PROPERTY - Variable Name is the key of the message property to be used in the predicate

  • CONTENT - The XPath to extract the value the from message payload

  • VARIABLE - Variable Name is the key of the scope variable to be used in the predicate

Variable Type *

Basic

The type of the variables used in the predicate. One of the following types can be selected as the value of this parameter.

  • Boolean

  • Integer

  • Long

  • Float

  • Double

  • String

It should be able to cast/convert the value resolved (using the above predicate type and the variable name) to this specified type.

Predicate Function *

Basic

The predicate function to be used to compare the value resolved (using the above predicate type and the variable name). One of the following predicate functions can be selected as the value of this parameter.

  • EQUALS - Equivalent to Java’s Object.equals() method. Resolved to true if the value resolved is equal to the matching value

  • MATCH - Only applicable to String variable type and equivalent to Java’s String.matches() method Resolved to true if the value resolved matches to the matching value

  • CONTAINS - Only applicable to String variable type and equivalent to Java’s String.contains() method Resolved to true if the value resolved contains the matching value

  • NULL - Resolve to true if the value resolved is null and false otherwise

  • NOT_NULL - Resolve to false if the value resolved is null and true otherwise

  • EXISTS - Resolved to true if the specified Variable Name exists, regardless of its value

Matching Value

Basic

Only to be used when the Predicate Function is EQUALS, MATCH or CONTAINS

Namespaces

Basic

If the predicate type is CONTENT (where an XPath value is used for the condition), and if any custom namespaces are being used inside XPath expression, those should be defined as a map with those namespaces as keys and the corresponding namespace URIs as values.

Sample Use Case

In the following use case, a Conditions Evaluator is used to check a transport header in the message received from an HTTP Client. If the value of the transport header is LEGACY then the message will be send a particular HTTP backend and if the the transport header is any other value, the message will be sent to another HTTP backend.

As shown in the below diagram, let’s build our basic flow.

conditions evaluator 1

As for the properties of the Conditions evaluator, specify the values as shown in the below image

conditions evaluator 2

Now if you run the project and send a message with HTTP Transport header MSG_ROUTING with value LEGACY, that message will be sent via Egress Connector (a) and for any other message with different value for the transport header MSG_ROUTING, the message will be sent via Egress Connector (b)

In this topic
In this topic
Contact Us