BizTalk - EDI Batching per interchange


  • Hello all,

    I'm having a problem with the EDI batching in BizTalk 2009 (and BizTalk 2006 R2 for that matter).

    My situation is the following:
    I have one specific FF message which I map into one or more (EDIFACT) DESADV messages and always one (EDIFACT) IFCSUM message.
    These messages need to be combined into one and the same EDI interchange, so I'm using the Batching orchestration built-in into BizTalk 2009.
    As a result I need to get one EDIFACT interchange with the IFCSUM always as the last within the interchange.

    My solution so far:
    I have one orchestration which splits (and maps) the incoming FF into one or more DESADV messages and into one IFCSUM message.
    These are put on the message box and picked up by a send port to the FILE system (EDISend pipeline).
    From there, they are picked up again by a FILE receive location  (EDIReceive) *

    * Reason for this is that apparently it is impossible to call the EDI send/receive pipelines from within an orchestration?
    I need to do this, because the batching orchestration only batches with complete EDI messages (meaning that they need to have UNH for example filled in).

    From there, I use another orchestration that activates on the receive of a DESADV and will then listen for more DESADV messages until a timer of 15 seconds is ended as of which it then listens for the IFCSUM.
    After each receive of a message that validates these rules, I send it to the Batching orchestration (which is setup in my Party setup).
    Then an external release trigger message is sent to complete the interchange and send it out to a send port.

    My questions:
     1) Is there any way to call the EDI Send/Receive pipeline from within my orchestration? 
         I have searched A LOT and found nothing useful.
     2) Now, when 2 FF messages are received within a short time frame (few seconds), these are mixed up between the interchanges and completely invalidates my output.
         Is there any way to solve this? (also see for the same issue)
    3) Any pointers as to where I can improve the solution? I don't feel comfortable with the 15 second timer for example... 

    All help is really appreciated!

    Kind regards,

    Tuesday, November 03, 2009 3:56 PM


  • Hi Gyan, thank you for your answer, but I know that the pipelines cannot be called from within an orchestration, I was just looking for another solution.

    FYI: I completely redesigned my solution and mapped the incoming FF message to the EdifactInterchangeXml batch schema that comes with BizTalk 2009.
    It is much better for my purpose and allows a much more flexible approach.

    Best regards,
    Monday, November 09, 2009 1:00 PM

All replies