Forum Replies Created
-
AuthorPosts
-
I have an orchestartion which returns a message from a web service. and this message is transformed to a schme using a mass copy functoid. When I try to access the properties of this messahe get this message:
\”Root element is missing\”I am using a soap adapter.
Please help.
February 24, 2006 at 1:26 PM in reply to: Web service calls from BizTalk with Basic authentication #12969I have added an existing send port which is derived from a web reference in my project. Can I edit this send port to have basic authentication?
What is the other way out?
ok, thanks for help.
I use \”Tag Identifier\”.But now I have another flat file and I can’t to parse it.
faltfile:
[code:1:b319e106c5]
01Name LastName 34ShortName R43ShortName R06R!
27Name LastName 45ShortName R65ShortName R!
99Name LastName 65ShortName R77ShortName R26ShortName R!
02Name LastName 25R!
03Name LastName 03ShortName R27ShortName R!
@
[/code:1:b319e106c5]
symbol \”!\” – end of line
\”@\” – end of file
example schema:
[code:1:b319e106c5]
<xs:element name=\"BaseSchema\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"delimited\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"true\" sequence_number=\"1\" child_order=\"default\" child_delimiter_type=\"default\" escape_char_type=\"hex\" escape_char=\"0x2A\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:annotation>
<xs:appinfo>
<b:groupInfo sequence_number=\"0\" />
</xs:appinfo>
</xs:annotation>
<xs:element name=\"Body\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"positional\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"1\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:annotation>
<xs:appinfo>
<b:groupInfo sequence_number=\"0\" />
</xs:appinfo>
</xs:annotation>
<xs:element minOccurs=\"0\" maxOccurs=\"9\" name=\"RepeatPart\" nillable=\"true\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"positional\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"4\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType mixed=\"true\">
<xs:attribute name=\"Code\" type=\"xs:int\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"1\" justification=\"left\" pos_length=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"ShortName\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo justification=\"left\" pos_length=\"20\" sequence_number=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"ResultCode\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"3\" justification=\"left\" pos_length=\"1\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"ResultLine\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"positional\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"5\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name=\"Code\" type=\"xs:int\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"1\" justification=\"left\" pos_length=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"ResultCode\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"2\" justification=\"left\" pos_length=\"1\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name=\"Code\" type=\"xs:int\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"1\" justification=\"left\" pos_length=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"Name\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"2\" justification=\"left\" pos_length=\"50\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"LastName\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo justification=\"left\" sequence_number=\"3\" pos_length=\"50\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
[/code:1:b319e106c5]
The text file can contain a some \”RepeatPart\” and as can contain one \”ResultLine\”.
But there are two more situations which I cannot disassemble.
When one of parts \”RepeatPart\” or \”ResultLine\” is not present in a line \”Body\” 🙁\”ResultLine\” similar on \”RepeatPart\”, only with some null elements, but when a null element inside a line, instead of in the end parser gives out a mistake.
ok, thanks for help.
I use \”Tag Identifier\”.But now I have another flat file and I can’t to parse it.
faltfile:
[code:1:f1800c3f70]
01Name LastName 34ShortName R43ShortName R06R!
27Name LastName 45ShortName R65ShortName R!
99Name LastName 65ShortName R77ShortName R26ShortName R!
02Name LastName 25R!
03Name LastName 03ShortName R27ShortName R!
@
[/code:1:f1800c3f70]
symbol \”!\” – end of line
\”@\” – end of file
example schema:
[code:1:f1800c3f70]
<xs:element name=\"BaseSchema\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"delimited\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"true\" sequence_number=\"1\" child_order=\"default\" child_delimiter_type=\"default\" escape_char_type=\"hex\" escape_char=\"0x2A\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:annotation>
<xs:appinfo>
<b:groupInfo sequence_number=\"0\" />
</xs:appinfo>
</xs:annotation>
<xs:element name=\"Body\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"positional\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"1\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:annotation>
<xs:appinfo>
<b:groupInfo sequence_number=\"0\" />
</xs:appinfo>
</xs:annotation>
<xs:element minOccurs=\"0\" maxOccurs=\"9\" name=\"RepeatPart\" nillable=\"true\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"positional\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"4\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType mixed=\"true\">
<xs:attribute name=\"Code\" type=\"xs:int\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"1\" justification=\"left\" pos_length=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"ShortName\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo justification=\"left\" pos_length=\"20\" sequence_number=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"ResultCode\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"3\" justification=\"left\" pos_length=\"1\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element minOccurs=\"0\" maxOccurs=\"1\" name=\"ResultLine\">
<xs:annotation>
<xs:appinfo>
<b:recordInfo structure=\"positional\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"5\" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name=\"Code\" type=\"xs:int\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"1\" justification=\"left\" pos_length=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"ResultCode\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"2\" justification=\"left\" pos_length=\"1\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name=\"Code\" type=\"xs:int\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"1\" justification=\"left\" pos_length=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"Name\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo sequence_number=\"2\" justification=\"left\" pos_length=\"50\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name=\"LastName\" type=\"xs:string\">
<xs:annotation>
<xs:appinfo>
<b:fieldInfo justification=\"left\" sequence_number=\"3\" pos_length=\"50\" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
[/code:1:f1800c3f70]
The text file can contain a some \”RepeatPart\” and as can contain one \”ResultLine\”.
But there are two more situations which I cannot disassemble.
When one of parts \”RepeatPart\” or \”ResultLine\” is not present in a line \”Body\” 🙁\”ResultLine\” similar on \”RepeatPart\”, only with some null elements, but when a null element inside a line, instead of in the end parser gives out a mistake.
I have created (in fact generated) the orchestration with SQL Adapter.
The xml which activates the orchestration contains the name of the stored procedure which executes the query. (This is a common sql adapter.)The Delay’ purpose is to wait for 5 Minutes, and then send the request again (and again…).
How should I create the orchestration? Do you have a better idea to execute the cyclic queries?
Hello,
I’ve to extract informations from a message.
agentNameStr=(System.String)xpath(myMesssage,myXpathStr)Is it possible, in the Biztalk expression editor, to have the value of agentNameStr in lower case or upper case?
Thanks.
Raoul
Have you created a singleton orchestration?
Is this required or can you use a new orchestration instance for each SQL Receive?What is the purpose of the Delay shape?
I depends on how you wish to store it.
Do you want the individual field values to be mapped to columns, do you just want the entire message stored as an ntext/image or a combination of both?
The easiest way is to use the SQL Send Adapter, with an updategram.
Use the Add Adapter Metadata wizard to generate the schema.
Create a map, from your message into the Sql updategram schema and send the updategram message to SQL.The SQL Send adapter will also use a stored proc, if the SQL insert/update logic is too complicated for an updategram.
Contents of that file with SQL adapter otherwise convert file into string and insert into database … 🙂
Plz check Logical Existence functoid, I guess this can solve your prob
Cheers
I have also faced the deadlock problem … My problem was I used lock in my SP to insert / update the data.
We are trying the custom xslt way.
But, what do you mean by ‘looping around the node’?
thanks!
Hey Stephen, just wanted to say thanks.
Your suggestion worked. I was previously using the Web Service Publishing Wizard, but i was using the ‘Publish Schemas as Web Services’ – which wasn’t working…
With your suggestion, i changed it to ‘Publish BizTalk orchestrations as a Web Service’ – which seems to be the right method.
Thanks Again,
— StevenI think your mapping is set up wrong.
You might need to look at looping around the node above the <OBR> and <ORC> node. Map that to your destination node.
If you don’t have that option, you might have to look at custom xslt.
Hope this helps.
Wow Easiest way to know for sure is to build a simple sample.
What is your time constraint is probably a better question
If you need to process 250 MB in 30 seconds.. probably not. In 30 minute, probably.Schema complexity is really a big factor. Also if you need to break up the message into single message to insert into SQL. I also have no clue how well the SQL Adapter handles large data loads like that – guessing not well if at all.
See if these posts help you:
http://geekswithblogs.net/sthomas/archive/2004/08/17/9855.aspx
http://www.biztalkgurus.com/WhitePapers/Debatching-Options-Performance-BizTalk2004.html -
AuthorPosts