The EAI Dispatch Service is an EAI business service that invokes other business services or workflows based on the contents of an input property set. It is driven by a set of customer-configurable rule and is used in both inbound and outbound integration workflows to route messages based on their content.
Example: route incoming message from multiple suppliers to the corresponding workflow
Benefits of the EAI Dispatch Service
The dispatch service uses conditional processing to implement Business Policy. Conditional processing is more general than workflow and is based on the entire message rather than just the value of business component fields. This means we can reduce the number of workflows that need to be developed to handle a set of incoming messages and allowing for reuse of business logic in workflows. The dispatch service (like workflow) expresses business logic declaratively and is therefore easier to maintain than custom scripts.
EAI Dispatch Service Methods
The Dispatch Service has the following methods:
Execute:
- Examines the incoming message
- Dispatches the message according to the rules
- Is used in production systems
Lockup:
- Evaluates the incoming message
- Does not dispatch the message
- Is used for testing
Process Aggregate Request
- Allows multiple invocations of methods in business services in a single request
- Formats the output into a single message
Rules are used by the EAI Dispatch Service to process messages. They are created and administrated in the Siebel client.
They consist of:
- One or more conditions used to evaluate an incoming property set
- A target business service to execute when a condition is satisfied
- Zero, one, or more transforms to apply to the property set
They are expressed using a search expression notation based on traversing a hierarchical structure.
The search expression uses an XPATH-like notation to examine contents of the property set which includes several symbols to specify navigation to a desired component in the property set hierarchy:
- / : refers to a level in the hierarchy
- @ : refers to an attribute
A rule set is a set of rules that are evaluated in a specified sequence. The first rule that satisfies is applied and the rule evaluation stops.
The rule examines an input property set. It specifies an expression that evaluates an incoming property set and a business service and method to execute if the expression is satisfied.
A transform is an optional expression used to pass the existing hierarchy as it is or modify it.
Using a Dispatch Rule Set
Outbound Processing
Example:
Send an order to a vendor using a transport specific to the vendor. Include the Dispatch service in a general workflow that processes outgoing vendor messages.
Inbound Processing
Create the vendor-type specific workflows and a rule set that:
- Searches the incoming messages for vendor type
- Dispatches the message to the corresponding workflow
Create a profile for processing received vendor messages.
About the Author:
Tim Bull joined Siebel Systems in 1999 and transferred to Oracle in 2006. He is a Principal Education Consultant at Oracle University and is the Senior UK instructor for Siebel software. Using his detailed product knowledge Tim delivers both In Class and Live Virtual Class courses across all the Siebel Curriculum.