none
External Release Edi Batch Delay Problem RRS feed

  • Question

  • Hi All,

    I'm developing an orchestration to process the EDI message, the EDI messageS will be send out to be batched, and in the final of my orchestration, it will send out the xml as below to release the Batch.

    <ControlMessage xmlns="http://SQLControlMessage.IssueSelect">
     <PAM_Control>
     <DestinationParty>[PartyID]</DestinationParty> 
     <EdiMessageType>[0 for X12\HIPAA|1 for Edifact]</EdiMessageType> 
     <ActionType>EdiBatchOverride</ActionType> 
     <ActionDateTime>[yyyy-mm-ddThh:mm:ss.sss]</ActionDateTime> 
     <UsedOnce>0</UsedOnce> 
     <BatchId>[BatchID]</BatchId>
     <BatchName>[BatchName]</BatchName>
     <ToBeBatched>1</ToBeBatched> 
     </PAM_Control>
    </ControlMessage>

    But it not works as expected, for example, the orchestration send out 2 edi message to BizTalk to be batched, then send out the release xml, sometimes only 1 edi message be batched and send out, somethimes 2 edi message be batched, sometimes no message to be batched, and reporting the warning, "There are no batch elements to send for batch MyPartyX12Default in party MyParty".

    If only 1 message or no message to be batched in this release, the remain messages will be batched in the next release.

    I suppose not all the message my orchestration send out are ready when BizTalk receive the release Xml, so sometimes only part of the message or nothing be send out.

    I have set the BatchControlMessageRecvLoc-->Polling Interval to 1 second, but it wors the same.

    I have to set the External Release Trigger for this batch and don't wanna use the Schedule, Maxium number of transactions set in .

    How can I control all the edi messages to be batched after rhe release Xml send out?

    Maybe delay a specify time to send out the release xml after all the edi messages send out in the orchestration is a way, but it is really so hard for me to determine the specify time, because our BizTalk server's performance is not so good, somethime it is fast, sometime is slow.

    Any comment would be appreciated.

    Thanks

    Thursday, December 30, 2010 8:55 AM

Answers

  • Hi,

    You are correct all the batch messages have to go through the EDI Batching Orchestration and by the time External Trigger is released, all the messages has to be batched to get it in the Output Edi file.

    You have to wait before releasing the External trigger. There's no explicit way to control the Edi message Batch.

    Sequential convoy could be a apt solution for your issue. Process all the individual messages and submit to  batching orchestration.

    Finally wait for 30 seconds to 1 minute to release the trigger. There is no hard and fast rule to set the wait time.

    The wait time has to be decided by your Biz Talk infrastructure.

    For example, in your case setting the wait time as 10 seconds for 2 messages might work, it may not be the same if you are processing 1000 messages.


    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    • Marked as answer by kissedi Friday, January 7, 2011 10:08 AM
    Thursday, December 30, 2010 3:34 PM

All replies

  • Hi,

    You are correct all the batch messages have to go through the EDI Batching Orchestration and by the time External Trigger is released, all the messages has to be batched to get it in the Output Edi file.

    You have to wait before releasing the External trigger. There's no explicit way to control the Edi message Batch.

    Sequential convoy could be a apt solution for your issue. Process all the individual messages and submit to  batching orchestration.

    Finally wait for 30 seconds to 1 minute to release the trigger. There is no hard and fast rule to set the wait time.

    The wait time has to be decided by your Biz Talk infrastructure.

    For example, in your case setting the wait time as 10 seconds for 2 messages might work, it may not be the same if you are processing 1000 messages.


    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    • Marked as answer by kissedi Friday, January 7, 2011 10:08 AM
    Thursday, December 30, 2010 3:34 PM
  • Satish is absoluetly right.

     

    You can wait in your orchestration for a definite time as there is no control over the Release MEchanism except saying it to release.

     

    You can trying using the inbuilt fnctionality (Party settings ) to release on a particular basis.

     

     

     

     

     


    Thanks... SPN
    Monday, January 3, 2011 9:09 PM
  • I wrote an article on how to accomplish what you are asking.

    http://blog.biztalk-info.com/archive/2009/05/15.aspx


    Eric Stott [http://blog.biztalk-info.com] - Mark as Answer if this reply does.
    Wednesday, January 5, 2011 5:41 PM
  • Hi Eric,

    Thanks for the response.

    My question is: Let's say an example:

    There 100 invoice messages in the receive xml, your CreateInvoice orchestration extract it and the SendEdi shape send it one by one in the loop. After the loop, the ReleaseBatch call another orchestration to release the batch, but at this moment, BizTalk may only ready 98 transactions to be batched, and the remain 2 will be batched in the next release.

    My concern is how to ensure these 100 invoice messages will be batched together?

    To delay a specify time after the loop then send the release is a way(as Sathish's previous post), but I wonder if there are any other ways.

    Thanks

    Thursday, January 6, 2011 3:45 AM
  • Hello,

    I am facing the same issue, is there any final solution to control the exit of EDI Batch process ?

    Has anyone implement the approach suggested by Eric ?

    Regards

    Tarun Garg


    Tarun

    Tuesday, August 19, 2014 9:45 AM
  • As this thread is quite old and closed, I recommend you create a new thread describing your specific scenario.
    Tuesday, August 19, 2014 12:17 PM