|
Because there is so much written about this pipeline component, I would list some things it does (refering to here and here): - Provides a way to ensure guaranteed delivery of a message
- Creates a unique id for that message
- Provides a standardized context 'wrapper' XML docuement that contains the context properties of the message
- Keeps the message in the MessageBox until a corresponding acknowedgment is recieved.
Now the question is why/where would you use it? - If you are doing BizTalk to BizTalk communication, you want two seperate BizTalk Hosts talking to each other.
- You want exactly-once delivery of data.
- You need to save the context data w/o modifying the original data.
I am involved in a project that the use #3 is the reason why I needed to use it. We are creating a standard message, and the process to import the data into the application is complete, the only problem is there is no routing information in the data, where it came from. It only has data about the patient, not who sent the data. What I really needed to do is attach wrapper data to the original message. The Framework Pipeline component is the perfect solution. Some things that are required, but not documented are the following properties (in bold): IsReliable PassAckThrough eps_to_address eps_to_address_type eps_from_address eps_from_address_type prop_identity prop_sentAt prop_topic svc_deliveryRctRqt_sendTo_address svc_deliveryRctRqt_sendTo_address_type svc_deliveryRctRqt_sendBy svc_commitmentRctRqt_sendTo_address svc_commitmentRctRqt_sendTo_address_type svc_commitmentRctRqt_sendBy prc_type prc_instance deliveryRct_receivedAt deliveryRct_identity commitmentRct_identity commitmentRct_decidedAt commitmentRct_decision commitmentRct_commitmentCode If you don't specify those properties you will get the following errors: There was a failure executing the send pipeline: Reason: Invalid BTF message. The message is missing context properties eps_from_address that are required to generate a proper BTF envelope. There was a failure executing the send pipeline: Reason: Invalid BTF message. The message is missing context properties eps_from_address_type that are required to generate a proper BTF envelope. There was a failure executing the send pipeline: Reason: Invalid BTF message. The message is missing context properties eps_to_address that are required to generate a proper BTF envelope. There was a failure executing the send pipeline: Reason: Invalid BTF message. The message is missing context properties eps_to_address_type that are required to generate a proper BTF envelope. There was a failure executing the send pipeline: Reason: Invalid BTF message. The message is missing context properties prop_topic that are required to generate a proper BTF envelope Here is an example of how you set those variables is the following properties: OutputMsg(BTF2.eps_from_address)=InputMsg(BTS.ReceivePortName); OutputMsg(BTF2.eps_from_address_type)="Lab"; OutputMsg(BTF2.eps_to_address)="Order Directory"; OutputMsg(BTF2.eps_to_address_type)="XML"; OutputMsg(BTF2.prop_topic)="Order"; Which will make the following envelope around the message: 
|