Home Page › Forums › BizTalk 2004 – BizTalk 2010 › Receive Pipeline Error
- This topic has 13 replies, 1 voice, and was last updated 8 years, 3 months ago by
community-content.
-
AuthorPosts
-
-
January 4, 2007 at 6:34 AM #17127
I have created a custom pipeline to receive files. I would use the default pipeline, but different files from this vendor contain the same root element which forces me to create custom pipelines.
The application builds and deploys just fine, but I receive this error when I drop my file. I've looked over the file and even created a new file to match the schema. The schema was actually generated from the original xml file.
There was a failure executing the receive pipeline: "FlatFileTest.ReceivePaymentsInPort, FlatFileTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ea895c3799b5f29e" Source: "Flat file disassembler" Receive Port: "FlatFileTest_1.0.0.0_FlatFileTest.WachoviaPayment_PaymentInPort_ea895c3799b5f29e" URI: "d:\installs\biztalk\*.payment" Reason: Unexpected data found while looking for:
$Delimited$
The current definition being parsed is Header. The stream offset where the error occured is 0. The line number where the error occured is 1. The column where the error occured is 0.Any suggestions are appreciated. Thanks.
-
January 4, 2007 at 9:52 AM #17128
Michael
does your flat-file schema correctly validate a test document in the schema editor? And does this test document fail when submitted through the receive location?
John D.
-
January 4, 2007 at 11:02 AM #17129
Hi John,
The test document does validate successfully against the schema. I am able to generate an instance successfully as well. When I drop this test document in the receive location, it gets picked up and the above error message shows up in the administrator console.
-
January 4, 2007 at 12:09 PM #17131
Hi,
Could you create the "Validate Instance" for your test case? I think input file is missing the mandatory filed "$Dilimeter$". If it is not mandatory then you should put "0" for minimum in schema. Can you post the test input and shema structure here?
Another reason i could think is if you select the "$Dilimeter$" as looping then you may get this kind of error. Did you set up the root propertys for "Complexity", early termination true, and so on?
I get same kind of error when the filed is missing. I am using that case as error handling since my input must have that field.
Siva
-
January 4, 2007 at 1:09 PM #17132
Hi Siva,
Yes, I was able to successfully create the "Validate Instance" for the test file. Where would I look to set the "$Dilimeted$" field, or Complexity, early termination, etc.? I've also looked around to find where to set the "minimum" in schema and haven't seen it. Where does that get set? I've seen this mentioned in other posts, but never found it.
Here is my schema and test file. Thanks for looking at these for me.
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="FlatFileTest.payment" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="FlatFileTest.payment" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Header">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PaymentAdjustment">
<xs:complexType>
<xs:attribute name="RecordType" type="xs:string" use="required" />
<xs:attribute name="Type" type="xs:string" use="required" />
<xs:attribute name="Date" type="xs:string" use="required" />
<xs:attribute name="Reference" type="xs:string" use="required" />
<xs:attribute name="Principal" type="xs:long" use="required" />
<xs:attribute name="OtherIncome" type="xs:long" use="required" />
<xs:attribute name="Interest" type="xs:long" use="required" />
<xs:attribute name="Cost" type="xs:long" use="required" />
<xs:attribute name="AgencyFeesDue" type="xs:long" use="required" />
<xs:attribute name="AgencyCostDue" type="xs:long" use="required" />
<xs:attribute name="AccountNumber" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="RecordType" type="xs:unsignedByte" use="required" />
<xs:attribute name="Date" type="xs:date" use="required" />
<xs:attribute name="BankName" type="xs:string" use="required" />
<xs:attribute name="AgencyCode" type="xs:string" use="required" />
<xs:attribute name="AgencyName" type="xs:string" use="required" />
<xs:attribute name="ARecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="BRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="DRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="JRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="NRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="PRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="RRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="GRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="CRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="QRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="ERecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="FRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="YRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="XRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="WRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="TRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="HRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="URecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="SRecordCount" type="xs:unsignedByte" use="required" />
<xs:attribute name="ClientControlNumber" type="xs:unsignedShort" use="required" />
<xs:attribute name="BankId" type="xs:string" use="required" />
<xs:attribute name="ACSInterfaceNumber" type="xs:unsignedByte" use="required" />
<xs:attribute name="ACSImportControlNumber" type="xs:unsignedByte" use="required" />
<xs:attribute name="ACSExportBatchNumber" type="xs:unsignedByte" use="required" />
<xs:attribute name="AgencyCbBatch" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:schema><Header
RecordType="0"
Date="20060122"
BankName="FIRST BANK, NATIONAL ASSOCIATION"
AgencyCode="C2MJH"
AgencyName="MJH ASSOCIATES, INC"
ARecordCount="0000000000"
BRecordCount="0000000000"
DRecordCount="0000000000"
JRecordCount="0000000000"
NRecordCount="0000000000"
PRecordCount="0000000054"
RRecordCount="0000000000"
GRecordCount="0000000000"
CRecordCount="0000000000"
QRecordCount="0000000000"
ERecordCount="0000000000"
FRecordCount="0000000000"
YRecordCount="0000000000"
XRecordCount="0000000000"
WRecordCount="0000000000"
TRecordCount="0000000000"
HRecordCount="0000000000"
URecordCount="0000000000"
SRecordCount="0000000000"
ClientControlNumber="00041611"
BankId="FUNB1"
ACSInterfaceNumber="0000000000"
ACSImportControlNumber="00000000000000000000"
ACSExportBatchNumber="00000000000000000000"
AgencyCbBatch="4">
<PaymentAdjustment
RecordType="P"
Type="1"
Date="20060119"
Reference="376222601 HER CK"
Principal="000000009856"
OtherIncome="000000000000"
Interest="000000000000"
Cost="000000000000"
AgencyFeesDue="000000003942"
AgencyCostDue="000000000000"
AccountNumber="540000159200" />
</Header>Many thanks
-
January 5, 2007 at 10:53 AM #17140
Are you using a Flat file for input or XML?
Are you setting the "Validate Instance Input Type" correctly in the Schema General Properties?
Are you using a Flat file disassembler when you need an XML Disassembler?
Does this XML and schema represent the actual input file or XML generated from Validating the Flat file instance?
-
January 8, 2007 at 1:22 PM #17153
It is an XML file. I've tried both XML Disassembler as well as the flat file disassembler.
The "Validate Instance Input Type" is OK.
The error shown above is when I use the flat file disassembler. When I try the XML disassembler I get this error:
"FlatFileTest_1.0.0.0_FlatFileTest.WPayment_PaymentInPort_ea895c3799b5f29e" URI: "d:\installs\biztalk\*.payment" Reason: No Disassemble stage components can recognize the data.
Which approach is more appropriate to take? I've Googled this message and it appears that I need to convert the file to UTF-8 from UTF-16 to get around it. Is there another way? This workaround seems very strange to me.
Thanks. This is very helpful.
-
January 8, 2007 at 1:56 PM #17154
Michael,
First thing is to use the XML Disassembler if you need one in the first place. You should not use the Flat file disassembler for an XML file.
Then my obvious question, and forgive me for not knowing this already, is can you parse this message without a pipeline? There are so many choices here to receive and map your input. I found that I only add complexity when required.
- Is there no way to add inbound maps to your Receive port to help distinguish the schema or even to map to your own internal schema that you control…thus isolating you from external changes?
- Are there so many potential schemas that make using multiple receive ports impractical?
- Can you elaborate on what you're doing with the messages once you receive them? Are you combining data, passing through, writing to a DB, etc?
I'm not sure I'd go down the path of UTF-8 v. UTF-16 until you verify the simple things first. I think I (we all) can help some more but I think the understanding the pattern/solution you're trying to accomplish would help.
- I would suggest if you want to or need to use an XML disassembler, first try with something REALLY simple and add complexity after testing it a few times. This one process has saved me days of wheel spinning when trying something new.
-
January 9, 2007 at 7:49 AM #17165
Great advice.
This piece of the application reads the XML file, maps it to another message that will be passed to a web service. I'll get a response back, but I only check it for verification/debugging. This whole process is in its own orchestration and is very simple at this point. The rest of the orchestration should work (famous last words) if I could only get past loading my XML file.
The overall application will be handling a few different XML files. All of the XML files have a root element of "Header". I started using the default XMLReceive pipeline, but since all of the XML files coming in have the same root element it seemed that I needed to create a custom pipeline for each XML file type. There are not many schemas that I'm working with, so I don't have a problem with multiple custom receive pipelines.
I just tried adding an inbound map to the receive port. The same error came up as before ("No Disassemble stage components can recognize the data.").
Your suggestions and questions are a great help. Much appreciated.
-
January 9, 2007 at 8:25 AM #17166
I should have a few cycles this evening to test this scenario for myself to see what the problem could be. If I don't see a post that you've solved this I'll test it and provide any feedback I can.
-
January 9, 2007 at 10:47 AM #17177
Sorry I didn't sign this. I'll be setting this up in an hour or 2.
-
January 9, 2007 at 12:34 PM #17179
Using: <xs:attribute name="Date" type="xs:date" />, I received a validation error…
Header.xml: error BEC2004: The 'Date' attribute is invalid – The value '20060122' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:date' – The string '20060122' is not a valid XsdDateTime value.
When I used xs:string, it validated fine.
xs:string, it validated fine.
Can you confirm you're not having the same problem by just using your sample xml file as your "Input Instance Filename" and that "Validate Input Instance Type" is XML?
-
January 9, 2007 at 1:24 PM #17181
I've just verified that my "Input Instance Filename" is pointing to my test XML file and "Validate Input Instance Type" is XML.
I've also played around with the type of the attributes. My schema validates successfully when the Date attribute is a date type as well as a string type.
Thanks for all your time and effort.
-
January 10, 2007 at 5:24 AM #17189
I want to be clear that I'm still receiving the message that No Disassemble stage components can recognize the data.
Thanks again
-
-
-
-
-
-
-
-
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.