Forum Replies Created
-
AuthorPosts
-
I received word directly from Microsoft’s Great Plains premier support that they will be releasing a Biztalk adapter for eConnect/GP versions 8 and above with the official release of Biztalk 2006 … they have no plans of releasing one for G.P. 7.5…. Looks like I’m stuck with using Biztalk 2004 until our enterprise upgrades the accounting system.
I start the orchestration with a small xml (generated by the SQL Adapter), which contains only the name of the stored proc, which selects the data I need.
But. The Port that sends the request, and receives the response is a solicit request-response Send Port. And the only element, which has the Polling properties, is a Receive Location. So I don’t know how to set this property.
When I restart the BizTalk Server, the hanging orchestration continues to run. I don’t have to start it again.
It’s true, that the orchestration does nothing for 5 Minutes, so I try to change it to work like you said.
Maybe I don’t know everything about the SQL Adapter?Using a single map how to transform one xml input file to multiple output file with same schema depending on some condition in input xml file
Regards,I deployed a Biztalk Server 2004 Application.When I tested it , an error occured in the pipe of the receive location.
Tracing in the HAT , I found the error information was \”Cannot find a corresponding subscription\” , and the inbound message type is \”Unparsed Interchange\”.
So since the schema was successfully deployed in the messagebox , why the Biztalk Server could not identify the message?
How to solve the problem?I have an xml schema which contains a record node. There will be multiple records in record node. I am using map to transform this to output schema. Some of the fields in output schema will be calculated from the multiple record elements.
There can be multiple choices of designing the system. I have decided to use loop functoid to calculate the sum and average of repeated values in Record element of input schema and map it to output schema.
Please suggest if instead of using loop functoid, I want to use the loop shape in orchestration, then how it will be possible as I am not able to promote any of attribute or element if it’s under record element.
Is there any alternative method to achieve the objective?Thank you,[color=blue:0906163f05][/color:0906163f05]
Did you use the Add Generated Items to add the schema to call the stored procedure?
You might want to check the SQL white paper is you have questions: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS_2004WP/html/90a5261b-a220-41bf-bf7f-fd759239242c.asp
I can not help you on the adapter side, but from what I understand the Adapter Framework (if you will) is different and easier in BizTalk 2006.
I hope Microsoft will provide some details on this.
It was my understanding they would be compatible. I have not heard of anything other than that, sorry.
I created a map using your two xml samples.
The map contained 3 Equal functoids and 3 Value Mapping(Flattening) functoids and seem to work ok.Can you email me you two actual schemas, your map and a sample input file so I can take a closer look.
A good place to start is the Adapter wizard, this uses the BaseAdapter and creates a project for your custom adapter. It is specific for Biztalk 2004
[url]http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=D3AC121C-8963-4735-B5E1-FC83B02F57C1[/url]
Any adapter written for Biztalk 2004 should be binary compatible with Biztalk 2006. This is the case with the one adapter I have written.
There are minor changes in the BaseAdapter classes in Biztalk 2006. And the use of VS 2005 and .NET2.0 mean any adapter written specifically for Biztalk 2006 will not be backward compatible with Biztalk 2004 without lots of extra work.
Sorry, I tested this on Biztalk 2006 and assumed it was the same on 2004.
It would appear that Biztalk 2004 classifies strings, ints, doubles, etc as distinguished types and does not allow access to their properties or methods.
One possibility is to create a helper function in a C# assembly
[code:1:c69b8c4d44]namespace Biztalk.Utilities
public class StringFunctions
{
public static string ToUpper(string inputStr)
{
return inputStr.ToUpper();
}
}[/code:1:c69b8c4d44]Build and GAC this.
Add a reference to you biztalk project
And try this:
[code:1:c69b8c4d44]agentNameStr =(System.String)xpath(myMesssage,myXpathStr)
agentNameStr = Biztalk.Utilities.StringFunctions.ToUpper(agentNameStr);[/code:1:c69b8c4d44]I wrote a generic custom Xslt for mapping html form input from the HTTP Adapter. It also requires an extension Xml file for the System.Web.HttpUtility dll
[code:1:d1601e74ca]<?xml version=\"1.0\" encoding=\"UTF-16\"?>
<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"
xmlns:msxsl=\"urn:schemas-microsoft-com:xslt\"
xmlns:var=\"http://schemas.microsoft.com/BizTalk/2003/var\"
xmlns:SystemWebHttpUtility=\"http://schemas.microsoft.com/BizTalk/2003/System.Web\"
xmlns:s0=\"urn:schemas-tkh-co-nz:htmlform-flatfile\"
xmlns:ns0=\"urn:schemas-tkh-co-nz:htmlform-xmldefault\"
exclude-result-prefixes=\"msxsl var s0 SystemWebHttpUtility\"
version=\"1.0\" >
<xsl:output omit-xml-declaration=\"yes\" version=\"1.0\" method=\"xml\" />
<xsl:template match=\"/\">
<xsl:element name=\"ns0:htmlform\">
<xsl:for-each select=\"//field[name != ‘Submit’]\">
<xsl:variable name=\"var:v1\" select=\"name\" />
<xsl:element name=\"{$var:v1}\">
<xsl:value-of select=\"SystemWebHttpUtility:UrlDecode(string(value))\"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>[/code:1:d1601e74ca]This map shows host to create a tag name from data using {$var:v1}. However I suspect your case is not so generic. This blog shows you how to use the Source Link property within the mapper to map name/value pairs.
[url]http://geekswithblogs.net/benny/archive/2006/02/06/68382.aspx[/url]
Thanks for your response.
I use expression editor Biztalk 2004.
agentNameStr is a variable (System.String)
When I write a dot after agentNameStr, I see \”illegal dotted name\”
The ToUpper() method isn’t reachable.
Raoul
The easiest way is to bind all orchestrations to the receive port that receives these messages. All orchestrations will receive the same message type.
In the receive shape filter of the Order orchestration you will need to add
YourPropertyNamespace.Subject=OrderIn your property schema you will need to set the Subject property’s Property Schema Base to MessageContextPropertyBase
If the property schema is not in the same project as the orchestration you will need to add the assembly containing the property schema as a reference to you orchestration project.You can also use direct binding on each orchestration, this may require a more complicated filter set up.
I have a similar project, although I have used a map to convert the name/value message into a tag based message rather than a custom pipeline component.Hi all…
I have a scenario where an application publishes XML messages to my Biztalk environment and although the messages contain different details, the structure, including the root name are the same. The messages are name/value pair based and each message has a ‘Subject’ node that tells me what to do with the message, i.e.:
<rootnode>
<header>
<details name=\”Subject\” value=\”Order\” />
….
</header>
</rootnode>In order to use promoted fields within my orchestrations, I have a pipeline component that transforms the incoming message to a tag based document, so the result of the pipeline is such:
<rootnode>
<header>
<Subject>\”Order\”</Subject>
….
</header>
</rootnode>Now, I’m new to message based routing, so I need to make sure the incoming document, after transformation, goes to my order processing orchestration, and not a different orchestration as the message root names are all the same.
I’ve read a bit on filters, but the appear to be at the send port level…so hopefully, if I’ve shared enough, what do I need to do to make sure my solutions work?
Thanks!
-Rich -
AuthorPosts