Forum Replies Created
-
AuthorPosts
-
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,
PhilBiztalk comes with a lot of adapters, some protocol level, some application.
There are a number of Oracle adapters. The Microsoft Oracle Adapter uses the Oracle Client software on the Biztalk server to access an Oracle database. Just as the SQL Adapter uses the SQL Client software to access a SQL database.
Access to a Unix Server can be accomplished in a number of ways. The FTP adapter can be used for file level access, HTTP adapter can connect to an Apache web server, SOAP/WSE adapters can connect to published web services. There are a number of application adapters that can connect to applications running on a Unix Server, SAP, JDEdwards, Peoplesoft, Oracle E-Business Server…
Biztalk Server is primarily developed for message based processing, not large scale batch processing. It can handled thousands of discrete messages per second but it would not be the tool I would use to process 5 million SQL records. DTS or SSIS would be far better suited to this job
.Don’t bother, I think I found the answer to this one…
It looks like if I change the XSD and play around a bit with the \”Group Max Occurs\” for the receiving element and set it to 1, it forces the mapper to generate one Level 3 entry each time I have new element1&2BT.
Can you email me your schema and sample document.
Hi,
Any one has any idea about this problem or to go about FactRetriever?
Help is really appreciated…
May 29, 2006 at 12:07 PM in reply to: MS tutorial 3 (invoice payment process) lesson3 problem! #14722[quote:74ea7229c1=\”BizWhisperer \”]In resp to the first message (tutorial 3, lesson 3), see the tutorial corrections at: http://blogs.msdn.com/lizal
It would appear that the B2BSchemas did not deploy. I would verify that it compiled and then try to deploy it again after recycling the destination BizTalk instance.[/quote:74ea7229c1]
Thanks for the info. I corrected the reported \”bugs\” found in the log … but it still won’t run 🙁
Here’s the event log I get:
\”Description:
There was a failure executing the receive pipeline: \”Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\” Source: \”XML disassembler\” Receive Port: \”ASN_ReceivePort\” URI: \”/B2BOrchestrations_WebService/B2BOrchestrations_B2BProcess_ReceiveASN_Port.asmx\” Reason: The document specification <B2BSchemas.AdvancedShipNotice> from assembly <B2BSchemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f5f7841d15c6dc86> failed to load. Verify the schema for this document specification is deployed and is in the Global Assembly Cache.Description:
A message received by adapter \”SOAP\” on receive location \”ASN Receive Location\” with URI \”/B2BOrchestrations_WebService/B2BOrchestrations_B2BProcess_ReceiveASN_Port.asmx\” is suspended.
Error details: There was a failure executing the receive pipeline: \”Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\” Source: \”XML disassembler\” Receive Port: \”ASN_ReceivePort\” URI: \”/B2BOrchestrations_WebService/B2BOrchestrations_B2BProcess_ReceiveASN_Port.asmx\” Reason: The document specification <B2BSchemas.AdvancedShipNotice> from assembly <B2BSchemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f5f7841d15c6dc86> failed to load. Verify the schema for this document specification is deployed and is in the Global Assembly Cache.
MessageId: {061C39AC-C2A8-454D-B4D2-B20CA718D008}
InstanceID: {450D37F0-7462-4F69-A6AA-95B45264ADB0}\”It seams that the shema files aren’t deployed in the cache of the project. Searching the web I tried to put the shema in the cache with this command:
gacutil -i \”schemaname\”.dll
but still don’t work…
If you have any more idea you’re welcome 😉Why do we need key file used in Tutorials, and do we have to use them in other solutions?
I have solved it, if anyone interested here’s the solution –
We need to use Message Assignment shape instead of Expression shape.
The expression for Message Assignment will be –
TestXML = new TestBPM_WS_Call.TestXMLClass();
RetVal = TestXML.TestInvoke (\”Test Input\”);
SendMessage = RetVal;Where –
RetVal is BizTalk variable of type System.String which holds the web Service return value.
SendMessage is BizTalk Message of type System.String.
We need to assign send port to SendMessage.
The web method is as follows –
[WebMethod]
public string GetGoodsMovement(string input)
{
return (\”Web service Response : \”+ input);
}If we drop the following xml file in receive port –
– <ns0:Root xmlns:ns0=\”http://TestBPM_WS_BA.ReceiveFileCommand\”>
<Descrip>Descrip_0</Descrip>
</ns0:Root>The output in the receive port will be –
<?xml version=\”1.0\” encoding=\”utf-8\” ?>
<string>Web service Response : Test Input</string>I have solved it, if anyone interested here’s the solution –
We need to use Message Assignment shape instead of Expression shape.
The expression for Message Assignment will be –
TestXML = new TestBPM_WS_Call.TestXMLClass();
RetVal = TestXML.TestInvoke (\”Test Input\”);
SendMessage = RetVal;Where –
RetVal is BizTalk variable of type System.String which holds the web Service return value.
SendMessage is BizTalk Message of type System.String.
We need to assign send port to SendMessage.
The web method is as follows –
[WebMethod]
public string GetGoodsMovement(string input)
{
return (\”Web service Response : \”+ input);
}If we drop the following xml file in receive port –
– <ns0:Root xmlns:ns0=\”http://TestBPM_WS_BA.ReceiveFileCommand\”>
<Descrip>Descrip_0</Descrip>
</ns0:Root>The output in the receive port will be –
<?xml version=\”1.0\” encoding=\”utf-8\” ?>
<string>Web service Response : Test Input</string>The mapping and converting the flat file into Xml is probably taking the most time.
Also remember that Biztalk is persisting the messages to the message box for each record. All in all, it is doing a lot more work than if you just imported the data directly into SQL.You are not even going to come close to the SQL time.
An easy thing to do to speed things up a little is make the flat file schema nodes as small as possible. So if you have a tag called <InputData> make it <InpDt> or something like that.
Hope this helps.
Doesn’t anyone have answer or my question is not clear ?
If this is the only requirenment it would be better you use standone utility written in any language.
Thanks, this is what I needed –
xmlDoc.Load(retValue);
myMessage = xmlDoc;I am using the following schema –
<sehema>
-root
-returnValue(This chield field element is of type xl:string)and i have defined a variable(RetVal) of type System.String and now the expression is –
TestWebService = new Test_WS_Call.TestClass();
RetVal = TestWebService .TestInvoke ();
myMessage = RetVal ( error here, could you please explain why?)
Thanks.
Yes, I am dropping a XML file. I want Biztalk 2004 to create the digital signature…
If i dont use the MIME/SMINE encoder, I will not get the error. however, my message will not be digitally signed…
Anyone encounters this error before ? Pls help.
What about adding a CDATA tag around your email.
If the email has offending data in it, this shoudl prevent the error.xDoc.LoadXml(\”<ns0:returnValue xmlns:ns0=’http://LeadMgmtEmail.returnValue’><return><![CDATA[
\”+Email(POP3.From)+\”]]>
</return></ns0:returnValue>\”);Can you send an example of the value of your email? Does it contain XML that has elements names with spaces in it?
-
AuthorPosts