Scenario: You create a business process that receives a message and send it to multiple target systems.  For whatever reason the send from the business process fails ie. the message exists the business process and a later pipeline or adapter fails.

This failure could be pretty important information that you might want to make available to the orchestration for further decision making pr altering the flow. So how to you make that scenario work in BTS 2004?

1. In the orchestration designer right click on the port surface and create a new port

2. In the properties windows choose “Send“

3. Notice the new property delivery notification. Choose “transmitted“.

4. Create a scope

5. Create a send and hook it up to the port inside a scope

6. Right click on the scope and create an exception handler

7. Select the exception handler and enter the exception objectname: “myException“ (ie. whatever you want) and the ExceptionObjectType as Microsoft.XLANGs.BaseTypes.DeliveryFailureException

8. Inside the exception handler drop in a terminate shape and assign the error as “delivery failed“.

Now test your scenario by creating an exception in a pipeline component/adapter.

Pretty cool huh?