Home Page › Forums › BizTalk 2004 – BizTalk 2010 › Problem when using Recoverable Interchange Processing ( Urgent)
- This topic has 5 replies, 1 voice, and was last updated 9 years, 3 months ago by
community-content.
-
AuthorPosts
-
-
December 14, 2006 at 2:27 AM #16898
Hi ,
I am using the recoverable interchange property, but not able to get the right output from it.
Scenario:
My Input Flat File:
Order1 Order2 Order3 Order4
I need to Debatch the Intput Batch creating an Output XML For each Input Order ( with other processing..etc not of concern over here).
Order Schema – ( Min occurs 1 and Max Occurs 1) – Found meethod of debatching on one of the forums. In the Custom Pipeline Component I use a flat file disassembler with Order Schema as the document Schema.
It works perfectly fine when all the Orders are Valid.
But when any of the Order is invalid, I find it a problem. The file gets blocked (instance suspended).
Here the need is to pass through/ process all the valid Orders within the file. For example If order2 has an error. O1, O3, O4 must be processed.
When I went through Microsoft Docs, using the RECOVERABLE INTERCHANGE PROCESSING property for the pipeline component must have served the purpose. But in my scenario its providing partial output.
If Order2 is invalid, then Only Order1 is passed and processed. Order3, Order4 are not being processed. While checking for the suspended instance the message body shows
Order2 Order3 Order4 .
But I need Order 3 and Order 4 also to be processed.
Can anyone tell me where I might be going wrong? Its pretty urgent.
Thanks in advance.
AH
-
December 14, 2006 at 3:11 AM #16902
The problem is the flat file disassembler is unable to recover from an error and so will stop.
If a record is missing from a document it cannot skip over the remaining records from that specific document and find the start of the next document. There would be too many possilibilites, given the variant nature of flat file implementations to be able to determine what recovery action should be taken.
-
December 14, 2006 at 4:37 AM #16904
Hi Greg,
Thanks for the reply. Not very good news for me. By using Envelope Schemas approach, could anything improve or it would be the same?
Thanks
AH
-
December 14, 2006 at 9:41 AM #16912
The envelope/document model can only be used with an Xml message. You would still have to convert your flat file into Xml using the Flat file disassembler, so any error in the flat file would result in the whole message being discarded.
If you receive Xml to start with, then the Xml Disassembler only requires that the Xml be well formed. If it is not then the whole message is discarded
Otherwise it will break down the message into individual documents. The Xml Disassembler does not validate a document against it schema. It just uses the namespace and root node to identify the schema. If you wish to validate against the schema you need to use the Xml Validator pipeline component in the next stage of the pipeline. WIth Recoverable Interchange processing neither error (cannot find schema or fails schema validation) will prevent subsequent valid documents from processingThings are much easier using Xml – probably one of the reasons for it popularity
-
December 14, 2006 at 8:59 PM #16932
Hi Greg,
Thanks. I did try giving XML Batch Inputs. And ya, The right results are found (only when I set the Validate option of the XML Disassembler to True).The inbetween invalid messages are the only ones left out. But unfortunately the Source is a flat file Batch input. Can I assume that this is a limitation? Can any other work around method can be tried (I dont think so)??
Thanks for the reply
AH
-
December 15, 2006 at 1:41 AM #16941
One possibility is to have a looser flat file schema, that will parse data that is invalid, lots of optional records and fields and then have a subsequent check. Map into a stricter schema possibly or use a Schematron type validation in an orchestration using a map.
Can you go back to the source and correct the reason for the problem there. Ensuring only good data is sent.
If the source is external, then I find automatically rejecting errors back to the source can focus the sender into correcting their mistakes
-
-
-
-
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.