Home Page › Forums › BizTalk 2004 – BizTalk 2010 › \"allow unrecognized message\"
- This topic has 8 replies, 1 voice, and was last updated 6 years, 11 months ago by
community-content.
-
AuthorPosts
-
-
May 23, 2006 at 7:31 PM #14746
When you say \”generic\” do you mean without namespaces?
If this is the case then you can create a schema with no namespaces.
In the schema definition, select the <schema> node and delete the Target Namespace property value -
May 30, 2006 at 8:03 AM #14747
Can you email me your schema and sample document.
-
May 30, 2006 at 9:53 PM #14748
To use an envelope and debatch the message in the pipeline you need 2 message types(this can be in one or two schemas). The easiest is probably two schemas.
You can define you envelope in one schema:
<Schema targetnamespace=\”http://pr_test_2.sch_test_2_env\”>
UtilityData
AnySet the Envelope=Yes and the BodyXpath to the UtilityData node.
You define your document in another schema:
<Schema targetnamespace=\”\”>
Utility
Utility_Name
Utility_ID
etcThe standard XMLReceive pipeline will recognise the envelope schema and then try to create separate messages for each child node of UtilityData. It needs a to match this child message to a schema, hence the second document schema.
The biggest issue here is no namespace on the document schema, although this will work you will face issues moving forward, such as schema versioning etc.
Do you have any influence on the format of the incoming message. If so I would suggest using a namespace
e.g.
<ns0:UtilityData xmlns:ns0=\”http://pr_test_2.sch_test_2_env\”>
<ns1:Utilityxmlns:ns1=\”http://pr_test_2.sch_test_2_doc\”>
<Utility_Name> Datamatic Test </Utility_Name>
<Utility_ID> ID_TEST </Utility_ID>
etc-
May 31, 2006 at 7:33 PM #14749
The only thing i noticed in your explanation that would cause your problem is the missing namespace prefix on the Record node
It should be:<ns1:Record xmlns:ns1=\”http://pr_test_2_schemas.sch_test_2_body\”>
Is it possible to email me your schemas and a sample data file
-
May 23, 2006 at 3:08 PM #14750
My application is to accept an xml file and put all the records into a SQL Server database.
For now I am using a tutorial I found to accept an xml file, parse out each record and drop the records to individual file and deposited to a local directory.
I am expecting the xml file from a customer so getting namespaces hard coded will be difficult at best.
I have come across the property \”allow unrecognized message\” in the XML Dissambler in the custom pipeline. This is not working for me – at the last the way I am using it.
I will/do have an .xsd file and I have created my BTS schema from it.
If I am asking the correct question:
1) How do I accept a ‘generic’ xml file?Thanks,
Phil-
May 25, 2006 at 3:49 PM #14751
Yes. Thanks. I noticed this in a sample I had downloaded, though I am still receiving \”Reason: No Disassemble stage components can recognize the data.\” Is there some other reference that I need to delete?
I am trying to use an \”envelope\”.
FYI –
Really I am just trying to receive an xml message with many records (after some header information) and break them out into separate xml files. I see two method – one without a custom pipeline (though using promoted properities, and one using a custom pipeline. The one NOT using the custom pipeline makes use of a data/source xml file that is NAMESPACE-less. Any thoughts are appreciated.Thx,
Phil-
May 30, 2006 at 2:53 PM #14752
Hey Greg,
I may start another post, but just fyi, in case you can direct me, I’ll sum up here. I’ve tried bits and pieces of solutions. I THINK I am trying to something very basic to BTS, which is process an XML file. Ultimately I want to pull header and record info from an XML file and push to a SQL Server database.
I don’t have to process each record individually, though I can see were I might want to eventually for better quality control.
For now, I am just trying to take an XML File, break into individual records and push to new xml files – an individual file for each record. Just to get started. From what I’ve been reading I need to use an envelope schema and a body schema.
Here is a sample of the incoming xml file:
(Am I missing a namespace designator for the \”body\”??)<?xml version=\”1.0\” encoding=\”UTF-8\”?>
<ns0:UtilityData xmlns:ns0=\”http://pr_test_2.sch_test_2_env\”>
<Utility>
<Utility_Name> Datamatic Test </Utility_Name>
<Utility_ID> ID_TEST </Utility_ID>
</Utility>
<Software>
<MVP_Version> 3.7 </MVP_Version>
<ROADRUNNER_Version> 032401 </ROADRUNNER_Version>
<AMR_Version> 020901 </AMR_Version>
</Software>
<Data>
<Record>
<CustomerData>
<Name> </Name>
<Address> </Address>
<AccountNumber> Account Number Field </AccountNumber>
<AccountStatusCode> </AccountStatusCode>
</CustomerData>
<RouteData>
<Cycle> 01 </Cycle>
<Route> 100 </Route>
</RouteData>
<MeterData>
<MeterNumber> 211 </MeterNumber>
<HostSequenceNumber> 000005 </HostSequenceNumber>
<ReadTypeCode> FF </ReadTypeCode>
<Constant> </Constant>
<NumberOfDials> </NumberOfDials>
<NumberOfDecimals> </NumberOfDecimals>
<HighAuditValue> </HighAuditValue>
<LowAuditValue> </LowAuditValue>
<LocationCode> </LocationCode>
<LocationDescription> </LocationDescription>
<InstructionCode1> </InstructionCode1>
<InstructionCode2> </InstructionCode2>
<SurveyFlag> </SurveyFlag>
<NumberOfPreviousEstimates> </NumberOfPreviousEstimates>
<PreviousReading> </PreviousReading>
<PreviousReadDate> </PreviousReadDate>
<OldSealID> </OldSealID>
<SpecialMessage> </SpecialMessage>
<ReadMethod> </ReadMethod>
<ScheduledReadDate> </ScheduledReadDate>
</MeterData>
<ReadingData>
<ReaderID> OPER </ReaderID>
<MeterReading> 0000000748 </MeterReading>
<SkipCode> </SkipCode>
<ReadDate> 20051221 </ReadDate>
<ReadTime> 104509 </ReadTime>
<TroubleCode1> AMER </TroubleCode1>
<TroubleCode1Descr> </TroubleCode1Descr>
<TroubleCode2> TMPR </TroubleCode2>
<TroubleCode2Descr> </TroubleCode2Descr>
<TroubleCode3> SUWN </TroubleCode3>
<TroubleCode3Descr> </TroubleCode3Descr>
<TroubleCode4> BACL </TroubleCode4>
<TroubleCode4Descr> </TroubleCode4Descr>
<FailedAuditCode> 0 </FailedAuditCode>
<SurveyResponse1> </SurveyResponse1>
<SurveyResponse2> </SurveyResponse2>
<NewSequenceNumber> 000000 </NewSequenceNumber>
<NewLocationCode> </NewLocationCode>
<NewInstructionCode1> </NewInstructionCode1>
<NewInstructionCode2> </NewInstructionCode2>
<NewSealID> </NewSealID>
<ElapsedTime> 00000000 </ElapsedTime>
<NewSpecialMessage> </NewSpecialMessage>
</ReadingData>
<FIREFLY>
<F4_Record> F420060503152500211 0000005320002061100000000000640C812C1901F4258 </F4_Record>
</FIREFLY>
</Record>
</Data>
</UtilityData>There error msg I have been getting consistently over the last couple days has been:
Error details: The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure.I need the Quick Start guide!
Thanks,
Phil-
May 31, 2006 at 3:31 PM #14753
Greg,
Thanks for your help. This will be detailed (though hopefuly not long winded.)
I think I have been trying this method. I’ll try to outline all the little details I had to sweat along the way with little results.
1) the data – in summary
<?xml version=\”1.0\” encoding=\”UTF-8\”?>
<ns0:UtilityData xmlns:ns0=\”http://pr_test_2_schemas.sch_test_2_env\”>
<Utility>
<Utility_Name> Datamatic Test </Utility_Name>
<Utility_ID> ID_TEST </Utility_ID>
</Utility>
<Software>
<MVP_Version> 3.7 </MVP_Version>
<ROADRUNNER_Version> 032401 </ROADRUNNER_Version>
<AMR_Version> 020901 </AMR_Version>
</Software>
<Data>
<Record xmlns:ns1=\”http://pr_test_2_schemas.sch_test_2_body\”>
<CustomerData>
<Name> Customer 1 </Name>
…
</CustomerData>
…
</Record>
.
.
.
<Record xmlns:ns1=\”http://pr_test_2_schemas.sch_test_2_body\”>
<CustomerData>
<Name> Customer 23 </Name>
…
</CustomerData>
…
</Record>
.
.
.</Data>
</ns0:UtilityData>Tag Summary:
– UtilityData: root node
– Utility, Software – header info (applicable to all records)
– Data – individual records2) My Envelope Schema looks something like
– UtilityData
– Utility
Utility_Name
Utility_ID
– Software
MVP_Version
…
– Data
ns0:Record (imported….)
(though I have tried with <any>3) My Body schema looks like:
– Record
– Customer Data
…. field elements
– RouteData
….. field elements
– MeterData
… field elements
– ReadingData
… field elements
– FIREFLY
… field elementsNOTE: I have put in names spaces in the data XML file:
NOTE: I put the schemas in a separate project; I had read to do that somewhere.IN the ORCHESTRATION
4) The receive pipeline’s request operation has the \”Message Type\” property set to:
pr_test_2_schemas.sch_test_2_body (is this correct? pointing to the body schema.)
– the receive pipeline configured for custome
pipeline: pr_test_2.pl_test_2a
transport: file
URI: C:\\bts_sl_test_2\\IN\\*.xml5) the Receive Message object/element has the \”Message\” property set to: msg_2_body
5a) msg_2_body: property \”Message Type\” = pr_test_2_schemas.sch_test_2_body
5b) Send message object/element configured the same
6) Send Port:
pipeline: Microsoft.BizTalk.DefaultPipelines.XMLTransmit
transport: file
URI: C:\\bts_sl_test_2\\OUT\\%MessageID%.xml7) custom pipeline: pr_test_2.pl_test_2a
– in Disassemble stage: XMLDisassembler
– allow unrecognized message: false
– Document Schemas: pr_test_2_schemas.sch_test_2_body, pr_test_2_schemas, Version=1.0.0.0, Culture=Neutral, PublicKey Token = …..
– Envelope Schemas: pr_test_2_schemas.sch_test_2_env, pr_test_2_schemas, Version=1.0.0.0, Culture=Neutral, PublicKey Token = …..8) Current Error Message from Event Viewer:
Event Type: Error
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5753
Date: 5/31/2006
Time: 9:53:17 AM
User: N/A
Computer: FFICBMDEVNEW
Description:
A message received by adapter \”FILE\” on receive location \”pr_test_2_1.0.0.0_pr_test_2.orch_test_2_port_rec_test_2_9ee3ac47ef27d2e6_ReceiveLocation\” with URI \”C:\\bts_sl_test_2\\IN\\*.xml\” is suspended.
Error details: There was a failure executing the receive pipeline: \”pr_test_2.pl_test_2a, pr_test_2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9ee3ac47ef27d2e6\” Source: \”XML disassembler\” Receive Port: \”pr_test_2_1.0.0.0_pr_test_2.orch_test_2_port_rec_test_2_9ee3ac47ef27d2e6\” URI: \”C:\\bts_sl_test_2\\IN\\*.xml\” Reason: No Disassemble stage components can recognize the data.
MessageId: {33813B7C-8A7E-4553-B7DF-EF5A1BEFD9DA}
InstanceID: {140AE0EE-F35A-46C9-A167-6D165007A196}For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
(I have check for UTF-8 BOM usage with my editor and this is toggled ON.)
Thanks again,
Phil-
May 31, 2006 at 3:51 PM #14754
8 Current Error Message from Event Viewer:
Event Type: Error
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5753
Date: 5/31/2006
Time: 9:53:17 AM
User: N/A
Computer: FFICBMDEVNEW
Description:
A message received by adapter \”FILE\” on receive location \”pr_test_2_1.0.0.0_pr_test_2.orch_test_2_port_rec_test_2_9ee3ac47ef27d2e6_ReceiveLocation\” with URI \”C:\\bts_sl_test_2\\IN\\*.xml\” is suspended.
Error details: There was a failure executing the receive pipeline: \”pr_test_2.pl_test_2a, pr_test_2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9ee3ac47ef27d2e6\” Source: \”XML disassembler\” Receive Port: \”pr_test_2_1.0.0.0_pr_test_2.orch_test_2_port_rec_test_2_9ee3ac47ef27d2e6\” URI: \”C:\\bts_sl_test_2\\IN\\*.xml\” Reason: No Disassemble stage components can recognize the data.
MessageId: {33813B7C-8A7E-4553-B7DF-EF5A1BEFD9DA}
InstanceID: {140AE0EE-F35A-46C9-A167-6D165007A196}For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
I have check for UTF-8 BOM usage with my editor and this is toggled ON.
Thanks,
Phil
-
-
-
-
-
-
-
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.