BizTalk Blogging Year In Review


Just a bit over a year since I started BizTalk blogging, so I thought I'd take 5 minutes and review the posts of the last year (126!?!)
and try to find some highlights.

It's been a fun year, and I greatly appreciate the feedback and suggestions the community has provided.

Technorati Tags:

Comments (7)

  1. Hi Richard,

    This is Saravana Kumar from Columbus, Ohio.  I am fine and how are you?

    I am having a doubt in BizTalk Server error handling in EDI document processing.  Shall I explain the scenario???  If you through some light on this issues, it will be great.

    ————-

    Scenario:

    ————-

    Let us consider I have to design a BizTalk Server project for processing X12 EDI document.  The structure of EDI document is segment and delimiter based document.  The conditions that I have to validate is the segment mandatory validation,  mandatory elements present in the segment validation,  allowed values for some elements and Min, Max and Regex validations.  

    In order to do this I have created X12 flat file schema and I have specified all the specification which I have mentioned above.  I have written validation code verify to do the schema validation which I am using in my orchestration,  I am avoiding automatic validations in the receivepipeline, because I have to send proper error message to the caller with a specified format.  Everything working fine in the positive scenario, no problems.  

    The incoming data frequency in the production is high and data volume is huge too. You will get around 100-thousand messages in a single EDI file.

    The problem is lets consider in the 100-thousand messages if 50th messages is having some issue the entire EDI file was rejected,  I mean uncaught exception is thrown in the Event viewer,  the remaining all valid messages are rejected.  We are having two flavors of product to process this kind of document,  one with BizTalk Server implementation and another with .net component with does the parsing of the document.  The .net component is working fine, it sends the proper error message back to the caller.  Another flavor with BizTalk Server Implementation.  From BizTalk Server I am not in a position to send proper error message back to the client.  I can implement MOM server and I can capture the event the error message can be send back to the caller.  But my requirement I have to process all valid records and I have to send error message back to invalid records.  

    How can I proceed in this scenario???

    Thanks in Advance.

    From the desktop of…

    Saravana Kumar

    sarbillgates@hotmail.com

  2. Have you tried calling the receive pipeline from an orchestration and catching the exception there?

  3. Hi Richard,

    I haven’t done that one.  The requirement is I have to catch the exception and have to process remaining the part of the messages.  

    Any suggesstions???

    From the desktop of…

    Saravana Kumar

    sarbillgates@hotmail.com

  4. What sort of exception are we talking about?  Validation failure?  BizTalk 2006 does offer recoverable interchanges which means that you can choose to have failed messages get suspended, while any valid messages in the batch get committed.

  5. Richard,

    Let me explain in detail.  Please consider the following EDI document.

    ———————————————————————

    ISA|00|          |00|          |02|SCAC           |02|YOUR           |030730|0815|U|00400|000000236|1|P|:
    GS|IM|SCAC|YOUR|20030730|0815|000000236|X|4010
    ST|210|000000001
    B3||1225318|802923|PP||20030730|00003784||20030701|035|SLVN
    G62|86|20030630|8|1137|ET
    N1|SH|TRANS SERVICE|ZZ|053532
    N3|649 COTTAGE ST
    N4|SPRINGFIELD|MA|01104
    N1|CN|TORRINGTON REGISTER|ZZ|079160
    N3|190 WATER STREET|
    N4|TORRINGTON|CT|06790
    LX|001
    L5|001|INSERTS
    L0|001|||000000330|G|||000001|PLT
    L7|001||||||60
    LX|002
    L5|002|FUEL SURCHARGE
    L1|002|||00000074||||405
    LX|003
    L5|003|PALLET CHARGE
    L1|003|||00003710
    L3|000000330|G|||00003784||||||0000001
    SE|21|000000001

    IEA|00001|000000236
    —————————————————————
    ISA is a header segment,  LX is a actual message segment.  SE, GE and IEA are trailer segments.

    Let us consider a scenario  where the ISA header segment is correct and the trailer segments are correct.  You are having 100thousands LX segments.   Let us consider in that 100thousands LX segments 100segments are having wrong syntax values.  As per the existing biztalk server architecture, if the Flatfile disassembler finds the  wrong syntax first it througs error message and suspends the entire message, I mean 100-THOUSANDs LX segments.  My requirement is that the FlatfileDisassembler has to process the remaining LX segments and I have to report the errored segments.

    From the desktop of…
    Saravana Kumar
    sarbillgates@hotmail.com

  6. BizTalk 2004 behaves the way you describe, but BizTalk 2006 allows for disassembled batches to treat each record uniquely, and you can choose to NOT suspend the entire message if a bad record is encountered.  You can’t change this behavior in BTS 2004, but 2006 offers the ability to continue processing after a "bad" record is encountered.

  7. Thanks Richard.  As you said the current implmentation was in BizTalk Server 2004.  I have to move to BizTalk Server 2006.  

    From the desktop of…

    Saravana Kumar

    sarbillgates@hotmail.com

Skip to main content