I wanted to enhance my previous blog entry about how to successfully split the EDI transactions into individual claims.
The one liner does not adequately do justice as to what is really going on, so I thought I would embellish on how to get it properly configured, but also what is really going on, and how to make changes (if you really want to).
The first thing is to explain the fundamental difference between the the single and multiple schema:
The single schema breaks up an interchange into individual transactions per BizTalk message. This means that each transaction with all of the claims in the transaction is submitted as one message.
The multiple schema is designed to break up an interchange into individual claims per message (regardless of the transaction it came in, by default). This means that each message that is submitted to BizTalk Message Box contains only one claim.
The schemas are mostly the same, except for the subdocument_creation_break attribute in the annotation:
<!-- Multiple --> <xs:element name="TS837Q3_2300_Loop"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" delimiter_type="inherit_record" field_order="infix" count_ignore="yes" child_delimiter="default" subdocument_creation_break="yes" notes="Claim information" /> </xs:appinfo> </xs:annotation>
<!-- Single --> <xs:element name="TS837Q3_2300_Loop"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" delimiter_type="inherit_record" field_order="infix" count_ignore="yes" child_delimiter="default" notes="Claim information" /> </xs:appinfo> </xs:annotation>
One thing that is not documented (at least I could not find it), is that after you downloaded and applied the 5010 hot fix, you need to add the following attribute Split_Without_Sibling_Data to the root <xs:appinfo> element
<!-- Out of the box --> <xs:appinfo> <schemaEditorExtension:schemaInfo namespaceAlias="btsedi" extensionClass="Microsoft.BizTalk.Edi.SchemaEditorExtension.EdiSchemaExtension" standardName="EDI" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" /> <b:schemaInfo subdocument_break="yes" BiztalkServerEditorTool_Version="1.5" root_reference="X12_00401_837_I" displayroot_reference="X12_00401_837_I" version="3.0" standard="EDI" standards_version="00401" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" X12ConditionDesignator_Check="Yes" /> </xs:appinfo>
<!-- After modification --> <xs:appinfo> <schemaEditorExtension:schemaInfo namespaceAlias="btsedi" extensionClass="Microsoft.BizTalk.Edi.SchemaEditorExtension.EdiSchemaExtension" standardName="EDI" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" /> <b:schemaInfo subdocument_break="yes" Split_Without_Sibling_Data="yes" BiztalkServerEditorTool_Version="1.5" root_reference="X12_00401_837_I" displayroot_reference="X12_00401_837_I" version="3.0" standard="EDI" standards_version="00401" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" X12ConditionDesignator_Check="Yes" /> </xs:appinfo>
If you don’t manually modify the schema, you will end up with all of the members in the transaction with one claim in each message that is submitted to the message box. ’Bloated XML’ as a friend of mine calls it.
This means that you are now empowered on how to make changes to the splitting behavior, you can take the subdocument_creation_break attribute and move it from the claim level (2300) and move it to the member level (2000) and BizTalk will split the claims by members with all of that members claims grouped together.