locked
Mapping is not working with PassThruReceive pipeline RRS feed

  • Question

  • Hi,

    In receive port , I am using  Inbound Map and the receive location attached to this port is using PassThruReceive Pipeline .

    I have created a send port which used PassThruTransmit pipeline.

    But whenever I put a xml message in receive location,mapping is not applying at all.

    When I used XmlReceive pipeline on receive location instead of  PassThruReceive Pipeline  then mapping is applied.

    Why it is occuring ?

    If we use  PassThruReceivePipeline  then mapping will not applied ?

    Any kind of help would be appreciated.


    Prakash

    Saturday, June 20, 2015 1:09 PM

Answers

  • We can have maps associated with a Port using Passthru pipeline, but map won’t be executed. The reason being, maps can’t be applied to Untyped Messages and as PassThru does no processing on message, no message type available as MessageType promotion is part of pipeline processing. You have to use XMLReceive where MessageType is promoted.


    Please mark as answer or vote as helpful if my reply does


    Saturday, June 20, 2015 1:16 PM
    Moderator
  • Send and Receive Ports are quite different when it comes to using Pipelines and dealing with XML.

    It is a, very!, common mistake that people think they need the XMLTransmit Pipeline on the Send Port when sending XML, this is very seldom the case, and for 99% of all cases PassthruTransmit should be used when sending out XML (with or without maps applied on the Send Port)

    On the Receive Port it is a totally different matter, you almost never use the PassthruReceive, mainly because if you do, no maps will never be executed, no Orchestration will ever be started (not 100% accuate, since Orchestration receiving XMLDocuments actually will be, but still). 

    So what you're experiencing is totally out-of-the-box logic, on the receive side BizTalk don't know the message type if you use the passthrureceive, and therefore has no way of executing a Map. However, on the send side, the pipeline is executed after the Maps and since the message type is already known, the map will be executed regardless of the Pipeline chosen.

    Morten la Cour

    • Marked as answer by Angie Xu Tuesday, June 30, 2015 4:35 AM
    Saturday, June 20, 2015 2:59 PM
  • Hi Prakash,

    Answer to your questions are already given by other experts, and I would ask you go through following post to understand with example :

    http://social.technet.microsoft.com/wiki/contents/articles/22878.biztalk-server-how-map-works-on-port-level.aspx#Does_map_executes_when_PassThru_Pipeline_is_used

    ______________________

    Maheshkumar S Tiwari|User Page|Blog|Primary location cannot be deleted

    • Marked as answer by Angie Xu Tuesday, June 30, 2015 4:36 AM
    Sunday, June 21, 2015 11:28 AM
  • Hi,

    The pass-through pipelines have no components(Decode, Dissemble ,resolve party ,validate). They are used for simple pass-through scenarios when no message payload processing is necessary. These pipelines are generally used when the source and the destination of the message are known, and the message requires no validation, encoding, or disassembling.

    Because it does not contain a disassembler, the pass-through receive pipeline cannot be used to route messages to orchestrations (as it is the disassemble stage that does the property promotion) or used to be mapper at port level.The pass-through receive pipeline does not support property promotion.

    Thanks

    Abhishek

    • Marked as answer by Angie Xu Tuesday, June 30, 2015 4:36 AM
    Sunday, June 21, 2015 3:17 AM

All replies

  • We can have maps associated with a Port using Passthru pipeline, but map won’t be executed. The reason being, maps can’t be applied to Untyped Messages and as PassThru does no processing on message, no message type available as MessageType promotion is part of pipeline processing. You have to use XMLReceive where MessageType is promoted.


    Please mark as answer or vote as helpful if my reply does


    Saturday, June 20, 2015 1:16 PM
    Moderator
  • Send and Receive Ports are quite different when it comes to using Pipelines and dealing with XML.

    It is a, very!, common mistake that people think they need the XMLTransmit Pipeline on the Send Port when sending XML, this is very seldom the case, and for 99% of all cases PassthruTransmit should be used when sending out XML (with or without maps applied on the Send Port)

    On the Receive Port it is a totally different matter, you almost never use the PassthruReceive, mainly because if you do, no maps will never be executed, no Orchestration will ever be started (not 100% accuate, since Orchestration receiving XMLDocuments actually will be, but still). 

    So what you're experiencing is totally out-of-the-box logic, on the receive side BizTalk don't know the message type if you use the passthrureceive, and therefore has no way of executing a Map. However, on the send side, the pipeline is executed after the Maps and since the message type is already known, the map will be executed regardless of the Pipeline chosen.

    Morten la Cour

    • Marked as answer by Angie Xu Tuesday, June 30, 2015 4:35 AM
    Saturday, June 20, 2015 2:59 PM
  • Because in receive pipeline message type is not getting promoted as a result the map is unable to determine the message type so it is not getting execute to make it work you either need to use the XMLReceive pipeline or need to create your own pipeline component to promote it.
    Saturday, June 20, 2015 6:07 PM
  • Hi,

    The pass-through pipelines have no components(Decode, Dissemble ,resolve party ,validate). They are used for simple pass-through scenarios when no message payload processing is necessary. These pipelines are generally used when the source and the destination of the message are known, and the message requires no validation, encoding, or disassembling.

    Because it does not contain a disassembler, the pass-through receive pipeline cannot be used to route messages to orchestrations (as it is the disassemble stage that does the property promotion) or used to be mapper at port level.The pass-through receive pipeline does not support property promotion.

    Thanks

    Abhishek

    • Marked as answer by Angie Xu Tuesday, June 30, 2015 4:36 AM
    Sunday, June 21, 2015 3:17 AM
  • Hi Prakash,

    Answer to your questions are already given by other experts, and I would ask you go through following post to understand with example :

    http://social.technet.microsoft.com/wiki/contents/articles/22878.biztalk-server-how-map-works-on-port-level.aspx#Does_map_executes_when_PassThru_Pipeline_is_used

    ______________________

    Maheshkumar S Tiwari|User Page|Blog|Primary location cannot be deleted

    • Marked as answer by Angie Xu Tuesday, June 30, 2015 4:36 AM
    Sunday, June 21, 2015 11:28 AM