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.
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
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
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
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 ?
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.
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.
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?
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.
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
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.
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
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.
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