I am just starting a new project which will make heavy use of the ESB Toolkit 2.1, and given I have only played around with Itineraries a little bit, I wanted to document my experiences and what I’m learning. Since the ESB Toolkit documentation is currently on the light side, hopefully this will help others see how to apply the components of the toolkit to a real-world project.
Process: A batch of orders is coming in as a single XML file. Each order needs to be validated and then loaded into the Order Management System (OMS), which in this case is a DB2 database.
Requirement: De-batch an XML file, attach an itinerary to each message, route to an orchestration for validation, route to a Send Port to insert into OMS…and resolve the Validation Policy and the OMS endpoint configuration dynamically!
Solution: A receive location using a pipeline with the standard XML Disassembler and the Toolkit’s Itinerary Selector and Itinerary Dispatch pipeline components.
Here is what the Itinerary is looking like…
Orchestration Extender Details: these are a couple little things I designed in my orchestration so that it would successfully participate in the itinerary:
- Logical Receive Port (this initializes the orchestration)
- Activate = True
- Direct Bound
- Filter Expression (properties from the Itinerary property schema)
- ServiceState = “Pending”
- ServiceType = “Orchestration”
- IsRequestResponse = false
- ServiceName = [Fully Qualified Name of your orchestration, such as ABC.Order.Orchestrations.ProcessNewOrder]
- Use a one-way logical receive port to initialize the orchestration and a one-way logical send port to end your orchestration, each direct bound.
- Don’t use a two-way logical port in orchestration.
- Logical Send Port (post back to the itinerary)
- Correlation Set must include these properties (based on Message Enrichment example)
Orchestration Service in Itinerary: http://social.msdn.microsoft.com/Forums/en-US/biztalkesb/thread/f96cef89-1cac-4d09-9a3f-c9db2aba8350
Message Enrichment Sample: http://technet.microsoft.com/en-us/library/ff699841(BTS.70).aspx