how to process inbound message with single ST

Most of our vendor send file with separate ST something like this

ISA

GS

ST 870

order1

SE

ST 870

Order2

SE

.........

GE

IEA

I have complete process running no issue. Like I am using EDI disassembler and and all.

Now new vendor is sending it

like 

ISA

GS

ST 870

order1

order2

......

ordern

SE

GE

IEA

I like to know is processing this structure is different than others? Is Biztalk take care of adding ST/SE for every message or I need to create different process to process message like this? Which I like to avoid as transaction is same.

September 11th, 2014 6:13pm

It's perfectly valid.

But yes, it may require a different pattern to process since there are multiple statuses in the single transaction.

This is not a difference in BizTalk.  The two senders are composing the EDI differently.

Free Windows Admin Tool Kit Click here and download it now
September 11th, 2014 7:25pm

So my understanding is I need not to anything special,to process message separately. I have EDI disassemble pipeline configured. Is this will break it in multiple message as it does for other scenario.
September 11th, 2014 7:45pm

The answer to the question I think you're asking is no.

BizTalk will behave the same way but the two senders are sending different EDI so the output from the disassembler will appear different.

The second example will not be split by 'order' because the EDI itself does not contain an individual transaction, ST...SE, for each order.  The Sender is looping multiple orders in a single ST...SE while the Sender in the first example is sending only one order per ST...SE.  Again, both are perfectly valid.

BizTalk EDI does support sub-document splitting but you have to enable that in the schema yourself.  Details*: http://msdn.microsoft.com/en-us/library/bb226327.aspx

*It's labeled HIPAA, but is actually a feature of the EDI Disassembler itself.

  • Marked as answer by dnyanbhar 14 hours 38 minutes ago
Free Windows Admin Tool Kit Click here and download it now
September 12th, 2014 7:48am

The answer to the question I think you're asking is no.

BizTalk will behave the same way but the two senders are sending different EDI so the output from the disassembler will appear different.

The second example will not be split by 'order' because the EDI itself does not contain an individual transaction, ST...SE, for each order.  The Sender is looping multiple orders in a single ST...SE while the Sender in the first example is sending only one order per ST...SE.  Again, both are perfectly valid.

BizTalk EDI does support sub-document splitting but you have to enable that in the schema yourself.  Details*: http://msdn.microsoft.com/en-us/library/bb226327.aspx

*It's labeled HIPAA, but is actually a feature of the EDI Disassembler itself.

  • Marked as answer by dnyanbhar Friday, September 12, 2014 7:48 PM
September 12th, 2014 2:39pm

The answer to the question I think you're asking is no.

BizTalk will behave the same way but the two senders are sending different EDI so the output from the disassembler will appear different.

The second example will not be split by 'order' because the EDI itself does not contain an individual transaction, ST...SE, for each order.  The Sender is looping multiple orders in a single ST...SE while the Sender in the first example is sending only one order per ST...SE.  Again, both are perfectly valid.

BizTalk EDI does support sub-document splitting but you have to enable that in the schema yourself.  Details*: http://msdn.microsoft.com/en-us/library/bb226327.aspx

*It's labeled HIPAA, but is actually a feature of the EDI Disassembler itself.

  • Marked as answer by dnyanbhar Friday, September 12, 2014 7:48 PM
Free Windows Admin Tool Kit Click here and download it now
September 12th, 2014 2:39pm

The answer to the question I think you're asking is no.

BizTalk will behave the same way but the two senders are sending different EDI so the output from the disassembler will appear different.

The second example will not be split by 'order' because the EDI itself does not contain an individual transaction, ST...SE, for each order.  The Sender is looping multiple orders in a single ST...SE while the Sender in the first example is sending only one order per ST...SE.  Again, both are perfectly valid.

BizTalk EDI does support sub-document splitting but you have to enable that in the schema yourself.  Details*: http://msdn.microsoft.com/en-us/library/bb226327.aspx

*It's labeled HIPAA, but is actually a feature of the EDI Disassembler itself.

  • Marked as answer by dnyanbhar Friday, September 12, 2014 7:48 PM
September 12th, 2014 2:39pm

If I set sub-document is biztalk split each order separately? Say incoming batch have 10 orders in one ST. If I use above settings then is disassembler will split in 10 different message.

Correct me if I am wrong I will go through above link. Thanks

Free Windows Admin Tool Kit Click here and download it now
September 12th, 2014 3:20pm

Yes, that's how sub-document creation will work.

Really, it's only three attributes so even if it doesn't satisfy your requirement, no big loss.  Definitely give it a try. 

September 12th, 2014 3:34pm

One question or confusion you can say . Can I use same schema and add three atrributes for both of my scenarios ?
Free Windows Admin Tool Kit Click here and download it now
September 12th, 2014 3:44pm

Think about the scenario, if the ST has only one order, the sub-document attributes will not change the result.

Splitting one transaction will result in one transaction.

September 12th, 2014 3:54pm

Yes, my understanding is adding this attributes will not harm existing integration.

I mean multiple ST should not affect by adding attributes.

It should work. I will try it once I get some sample file.


Free Windows Admin Tool Kit Click here and download it now
September 12th, 2014 3:57pm

I modified my schema as below. But it did not work as expected. Do you think I am missing something or should not be this way?

<xs:element minOccurs="0" name="ST">
          <xs:annotation>
            <xs:appinfo>
              <b:recordInfo notes="Transaction Set Header"/>
<b:schemaInfo subdocument_break = "yes" Split_Without_Sibling_Data = "Yes" subdocument_creation_break = "yes"></b:schemaInfo>
            </xs:appinfo>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ST01">

September 17th, 2014 2:09pm

subdocument_creation_break = "yes" should be at the level where you want the break to occur, not in the header.
Free Windows Admin Tool Kit Click here and download it now
September 17th, 2014 2:33pm

Ok is other two at correct level? I mean ST . So In my case I need to add subdocument_creation_break = "yes" at HLLoop.

Let me try.

September 17th, 2014 2:45pm

No luck... I made changes like this.

 <xs:element minOccurs="0" name="ST">
          <xs:annotation>
            <xs:appinfo>
              <b:recordInfo notes="Transaction Set Header"/>
<b:schemaInfo subdocument_break = "yes" Split_Without_Sibling_Data = "yes"></b:schemaInfo>
            </xs:appinfo>
          </xs:annotation>

and 

  <xs:element maxOccurs="1000" ref="HLLoop1">
          <xs:annotation>
            <xs:appinfo>
              <b:recordInfo structure="delimited" field_order="infix" delimiter_type="inherit_record" count_ignore="yes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" notes="Loop for Hierarchical Level" />
 <b:schemaInfo subdocument_creation_break = "yes"></b:schemaInfo>
            </xs:appinfo>
          </xs:annotation>
        </xs:element>

Is anything else I need to do or it should not be part of schemainfo?

Free Windows Admin Tool Kit Click here and download it now
September 17th, 2014 2:59pm

The way I am testing it stopping my orchestration and looking suspended messages. I expect it should have same number of messages as HLLoop. but I always see one there. BTW I tried with recordinfo too. But same result . This is for ST but did it for HLLoop too.

 <xs:sequence>
        <xs:element minOccurs="0" name="ST">
          <xs:annotation>
            <xs:appinfo>
              <b:recordInfo notes="Transaction Set Header" subdocument_break = "yes" Split_Without_Sibling_Data = "yes" />
            </xs:appinfo>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>

September 17th, 2014 3:14pm

By any chance this works for perticular version of EDI .I am using 4010. I read documentation carefully and added above information exactly like that bot still not works . If you could guess reason then let me know .I referred following link  

http://msdn.microsoft.com/en-us/library/bb226345.aspx

and added it like  at HLLoop 

  <xs:element maxOccurs="1000" ref="HLLoop1">
          <xs:annotation>
            <xs:appinfo>
              <b:recordInfo structure="delimited" field_order="infix" delimiter_type="inherit_record" count_ignore="yes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" notes="Loop for Hierarchical Level" subdocument_creation_break = "yes" />
            </xs:appinfo>
          </xs:annotation>
        </xs:element>

and following at the top

<b:schemaInfo version="1.0" document_type="870" standard="EDI" standards_version="00401" root_reference="X12_00401_870" displayroot_reference="X12_00401_870" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" X12ConditionDesignator_Check="yes" subdocument_break = "yes" Split_Without_Sibling_Data = "yes" />

But still it did not work . I need to find solution to this problem to proceed. 

Free Windows Admin Tool Kit Click here and download it now
September 17th, 2014 5:26pm

Are you using Preserve Interchange? The two are not compatible.
September 17th, 2014 5:49pm

No I am not. I selected Split Interchange as Trasaction set-Suspend Transaction set on Error




  • Edited by dnyanbhar 12 hours 34 minutes ago
Free Windows Admin Tool Kit Click here and download it now
September 17th, 2014 6:01pm

Hmm...I'll look for the project where I'm pretty sure I used this but it might take a couple of days.
September 17th, 2014 6:10pm

Ok how much time approx? I can buy time and mean time can work on another task.

It will be very helpful If I can get solution you suggested above. So update me once you able to look it in your old project.

Free Windows Admin Tool Kit Click here and download it now
September 17th, 2014 6:15pm

No I am not. I selected Split Interchange as Trasaction set-Suspend Transaction set on Error




  • Edited by dnyanbhar Wednesday, September 17, 2014 9:52 PM
September 18th, 2014 12:52am

No I am not. I selected Split Interchange as Trasaction set-Suspend Transaction set on Error




  • Edited by dnyanbhar Wednesday, September 17, 2014 9:52 PM
Free Windows Admin Tool Kit Click here and download it now
September 18th, 2014 12:52am

No I am not. I selected Split Interchange as Trasaction set-Suspend Transaction set on Error




  • Edited by dnyanbhar Wednesday, September 17, 2014 9:52 PM
September 18th, 2014 12:52am

Thanks temporary I am working alternate solution by maintaining separate map for this. But ultimately your solution will more helpful for other transactions where files are big . So update me once you get it.
Free Windows Admin Tool Kit Click here and download it now
September 18th, 2014 12:15pm

I found another project and yes, it does work.  I was able to repro on another non-HIPAA transaction.

Basically, the problem is that the subdocument_creation_break="yes" attribute is on the derived HLLoop1 element not the actual HLLoop1 element definition itself.

You need to modify this: <xs:element name="HLLoop1">

Note the name attribute, as opposed to the ref attribute.

September 20th, 2014 11:19am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics