none
BizTalk Loopback adapter

    Question

  • Hi all,

    I have a scenario where I have to map a message from a schema to another. The source schema is published in the message box by a direct send from a third party orchestration.

    I want to grab this message, map it and republish it to the message box because another third-party orchestration is waiting (binding direct) to the destination message.

    I want to avoid implementing an orchestration just to call a map (if I can...). So I'm thinking of a loopback adapter : I create a r/r send port waiting for the source message, applying a map and send the message to a loopback adapter in order to get the message back.

    Where can I find a 'loopback adapter' ? I know I can create my own with the WCF LOB Adapter SDK but if I can avoid it :)

    Thanks.


    David GROSPELIER NOVELI MVP BizTalk 2010 dgr@noveli.fr blog.noveli.fr
    Wednesday, September 08, 2010 2:49 PM

Answers

  • I know one existed at some point, but this was in previous versions of BizTalk. You could use the DirectSubmit example found in the BizTalk SDK samples (included with the BizTalk install if it is checked) wrapped as a pipeline component. This allows you to push the message back to the MessageBox.

    So the third party orchestration uses a direct bound send port and then you want to use a send port with a filter to grab the message. I think the outbound map will execute before the pipeline executes so you would then use the pipeline component to submit it back to the BizTalk MessageBox. I would suggest promoting some value during the pipeline component you can use in a second filter to receive the transformed message back.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Thursday, September 09, 2010 1:13 PM

All replies

  • I know one existed at some point, but this was in previous versions of BizTalk. You could use the DirectSubmit example found in the BizTalk SDK samples (included with the BizTalk install if it is checked) wrapped as a pipeline component. This allows you to push the message back to the MessageBox.

    So the third party orchestration uses a direct bound send port and then you want to use a send port with a filter to grab the message. I think the outbound map will execute before the pipeline executes so you would then use the pipeline component to submit it back to the BizTalk MessageBox. I would suggest promoting some value during the pipeline component you can use in a second filter to receive the transformed message back.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Thursday, September 09, 2010 1:13 PM
  • Had a similar need so I wrote a WCF Custom Binding, code is here.

    http://synthesisconsulting.net/blog/2012/5/17/biztalk-wcf-loopback-binding.html

    Wednesday, June 06, 2012 4:29 PM
  • That's a great post Michael, nice to see you created one for the future!

    Thanks for sharing too,


    If this answers your question, please use the "Answer" button to say so | Ben Cline

    Thursday, June 07, 2012 12:19 AM