Early Termination with Position Flat Files
When working with flat files, BizTalk assumes that each and every line contains data to match the length of the record you specified in your schema. If the data does not match the length with data then it expects that it will find spaces. It does not expect to find an early CR LF.
For example, I have a flat file with 23 characters per line and have specified that in my schema. The last line, however, only has 20 characters.
ROI1LOANLOANP088ISRTRFD
ROI1LOANLOANP088UPDTRFD
RZA1LOANLOANP076ISRT
(this line ends early and is not filled with spaces)
If the data does not extend out to the end then you will receive an error like the following: 'Unexpected data found while looking for: \r\n'
To make BizTalk recognize an early terminator you need to open your schema in a text editor and add allow_early_termination = "true" to the xs:annotation node. This property is not exposed in the BizTalk XSD editor.
This is a snippet of the schema up to the end of the annotation node.
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="https://NPP.ML" xmlns:b="https://schemas.microsoft.com/BizTalk/2003" targetNamespace="https://NPP.ML" xmlns:xs="https://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<b:schemaInfo count_positions_by_byte="false" standard="Flat File" root_reference="ML_Multiple" allow_early_termination="true"/>
<schemaEditorExtension:schemaInfo namespaceAlias="b" extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension" standardName="Flat File" xmlns:schemaEditorExtension="https://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />
</xs:appinfo>
</xs:annotation>
Comments
- Anonymous
May 28, 2004
The comment has been removed - Anonymous
June 06, 2004
Hi Mark,
there you have to add parser_optimization="complexity" lookahead_depth="0" at the same position where the allow_early_termination property was added.
By
Cordula - Anonymous
July 23, 2004
The comment has been removed