by stephen-w-thomas | Mar 13, 2006 | Stephen's BizTalk and Integration Blog
You probably know about untyped messages inside an Orchestration (that is, messages treated as Xml Documents rather than typed schema). Wouldn’t it be nice to have an untyped web service to submit messages into BizTalk?
How would this make life easier?
You could have one web service to receive all your different message types. Then, use direct binding and content based routing to get your messages to the correct destination.
This will not work for all scenarios. But, it can greatly increase your flexibility when submitting messages into BizTalk through a web service by allowing all external systems to call the same web service.
Download the sample code below that shows how easy it is to modify an existing BizTalk Web Service to accept Xml Documents rather than a typed message. The key to routing the message submitted by the Web Service is to make sure the Receive Port uses the Xml Disassembler pipeline. This will promote the message type property that can be used for routing.
As with any direct binding solution, extra care must be used to make sure you do not get into an endless loop. In the sample below, I use Message Type and Receive Port Name Exists to make sure only messages published by a receive port are routed to the Orchestration.
Download: Xml Documents to BizTalk via SOAP Sample
This sample was built using BizTalk 2006 using Visual Studios 2005. See the ReadMe.txt for set up information.
by community-syndication | Mar 13, 2006 | BizTalk Community Blogs via Syndication
New Page 1
In keeping with
my mapping topics I have another inline XSLT scenario. In my last XSLT scenario
entry
I discussed grouping by countries and then cities.
In this entry I
want to look at a somewhat related scenario. In this scenario I receive an
instance document that contains account numbers and associated amounts. We need
the account numbers grouped and the amounts summed by account number.
The instance
document looks like:
<ns0:Root
xmlns:ns0="http://Blogtopic.SchemaSrc">
<Source>
<Row ID="1"
AccountNbr="1001" Amount="1000" />
<Row ID="2"
AccountNbr="1001" Amount="1000" />
<Row ID="3"
AccountNbr="2002" Amount="1000" />
<Row ID="4"
AccountNbr="1001" Amount="1000" />
<Row ID="5"
AccountNbr="3003" Amount="1000" />
<Row ID="6"
AccountNbr="2002" Amount="1000" />
</Source>
</ns0:Root>
The source
schema looks like:
And the
destination schema looks like:
As mentioned in
my last XSLT blog entry there isn’t a way to group records in the BizTalk Mapper
so we will use a script functoid with custom XSLT.
The first thing
we will need to do is to drag a Script functoid onto the Grid. Then drag a line
to the element that we will create the output for. Again, with the inline XLST
functionality we are required to produce the output for all of the elements
underneath the records our functoid is attached to. So in this example we are
responsible for creating all of the content under the Destination record.
The map will
look like this:
The following
XSLT can be cut and paste (without the line numbers) into the Inline Script
Buffer section of the script functoid after the Script Type drop down has been
set to Inline XSLT
To create the
output in the format that we want we will start with the following XLST.
<xsl:variable
name="unique-accountNbr"
select="//Source/Row[not(@AccountNbr=preceding-sibling::Row/@AccountNbr)]/@AccountNbr"
/>
This creates a
variable named unique-accountNbr and populates it with the list of unique
account numbers. Now we need to output the nodes and loop through the account
numbers. The following code will accomplish that.
1.
<Destination>
2. <xsl:for-each
select="$unique-accountNbr">
3.
<Account>
4. <xsl:variable
name="accountSum" select="sum(//Source/Row[@AccountNbr=current()]/@Amount)" />
5. <xsl:attribute
name="AccountNbr">
6. <xsl:value-of
select="current()" />
7. </xsl:attribute>
8. <xsl:attribute
name="AccountSum">
9. <xsl:value-of
select="$accountSum" />
10. </xsl:attribute>
11.
</Account>
12. </xsl:for-each>
13.
</Destination>
Lets walk
through this code.
Lines 1 and 13
create the Destination node output and close the node.
Line 2 creates
the loop that will loop through all of the unique account numbers.
Lines 3 and 11
create the Account node output and close the node
Line 4 creates
another variable for the sum of the amounts by account number
Lines 5 and 7
create the AccountNbr attribute and close it
Line 6 takes the
current account number in the loop and writes the value to the attribute
Lines 8, 9 and
10 repeat what was just done for the AccountNbr attribute but this time for the
AccountSum attribute. Also notice that the value of the accountsum variable is
used.
This code will
loop through as many unique account numbers as are contained in the input
document. Then for each unique account number the code will sum up all of the
Amount attributes associated with the unique account numbers.
The output looks
like this:
<ns0:Root
xmlns:ns0="http://BlogTopic.SchemaDst">
<Destination>
<Account AccountNbr="1001" AccountSum="3000"></Account>
<Account AccountNbr="2002" AccountSum="2000"></Account>
<Account AccountNbr="3003" AccountSum="1000"></Account>
</Destination>
</ns0:Root>
by community-syndication | Mar 13, 2006 | BizTalk Community Blogs via Syndication
I have had to park my work on BizTalk 2006 while I assist another team at my current client on some BizTalk 2004 work. I was helping to install and configure some BizTalk groups and remembered just how much of a pain this can be and how much this has evolved in BizTalk 2006.
Anyway, I had an issue during the pre-installation of Visual Studio 2003 on a Windows 2003 SP1 server that took me some time to fathom out. Checking the error log highlighted the following errors in particular:
[03/13/06,10:57:24] Microsoft FrontPage 2000 Web Extensions Client: ***ERRORLOG EVENT*** : Error code 1603 for this component means “Fatal error during installation.
[03/13/06,10:57:24] Microsoft FrontPage 2000 Web Extensions Client: ***ERRORLOG EVENT*** : Setup Failed on component Microsoft FrontPage 2000 Web Extensions Client
[03/13/06,10:57:27] Setup Runtime Files: ***ERRORLOG EVENT*** : Error code 1603 for this component means “Fatal error during installation.
[03/13/06,10:57:27] Setup Runtime Files: ***ERRORLOG EVENT*** : Setup Failed on component Setup Runtime Files
[03/13/06,10:57:30] Microsoft Visual J# .NET Redistributable Package 1.1: ***ERRORLOG EVENT*** : Error code 1603 for this component means “Fatal error during installation.
[03/13/06,10:57:30] Microsoft Visual J# .NET Redistributable Package 1.1: ***ERRORLOG EVENT*** : Setup Failed on component Microsoft Visual J# .NET Redistributable Package 1.1
[03/13/06,10:57:32] setup.exe: ***ERRORLOG EVENT*** : Unable to open g_szRegkeyMSIntegration in CSetupManager::RemoveSetupFiles()
[03/13/06,10:57:32] setup.exe: ***ERRORLOG EVENT*** : CSetupManager::RemoveSetupFiles() failed in CSetupManager::RunInstall()
[03/13/06,10:57:32] VS70BaseUI: ***ERRORLOG EVENT*** : DepCheck indicates Microsoft FrontPage 2000 Web Extensions Client is not installed.
[03/13/06,10:57:32] VS70BaseUI: ***ERRORLOG EVENT*** : DepCheck indicates Setup Runtime Files is not installed.
[03/13/06,10:57:32] VS70BaseUI: ***ERRORLOG EVENT*** : DepCheck indicates Microsoft Visual J# .NET Redistributable Package 1.1 is not installed.
After some considerable amount of time researching what could be the root cause, I stumbled across the following KB article that led me to the answer http://support.microsoft.com/default.aspx?scid=kb;en-us;327763
In my scenario the servers that I received had an incorrect mapping for the “My Documents” folder, which pointed to a network folder that did not exist. I changed this to point to a temporary folder located on the local machine and the installation continued successfully.
I hope this post may help save someone else time.
by community-syndication | Mar 13, 2006 | BizTalk Community Blogs via Syndication
I have had to park my work on BizTalk 2006 while I assist another team at my current client on some BizTalk 2004 work. I was helping to install and configure some BizTalk groups and remembered just how much of a pain this can be and how much this has evolved in BizTalk 2006.
Anyway, I had an issue during the pre-installation of Visual Studio 2003 on a Windows 2003 SP1 server that took me some time to fathom out. Checking the error log highlighted the following errors in particular:
[03/13/06,10:57:24] Microsoft FrontPage 2000 Web Extensions Client: ***ERRORLOG EVENT*** : Error code 1603 for this component means “Fatal error during installation.
[03/13/06,10:57:24] Microsoft FrontPage 2000 Web Extensions Client: ***ERRORLOG EVENT*** : Setup Failed on component Microsoft FrontPage 2000 Web Extensions Client
[03/13/06,10:57:27] Setup Runtime Files: ***ERRORLOG EVENT*** : Error code 1603 for this component means “Fatal error during installation.
[03/13/06,10:57:27] Setup Runtime Files: ***ERRORLOG EVENT*** : Setup Failed on component Setup Runtime Files
[03/13/06,10:57:30] Microsoft Visual J# .NET Redistributable Package 1.1: ***ERRORLOG EVENT*** : Error code 1603 for this component means “Fatal error during installation.
[03/13/06,10:57:30] Microsoft Visual J# .NET Redistributable Package 1.1: ***ERRORLOG EVENT*** : Setup Failed on component Microsoft Visual J# .NET Redistributable Package 1.1
[03/13/06,10:57:32] setup.exe: ***ERRORLOG EVENT*** : Unable to open g_szRegkeyMSIntegration in CSetupManager::RemoveSetupFiles()
[03/13/06,10:57:32] setup.exe: ***ERRORLOG EVENT*** : CSetupManager::RemoveSetupFiles() failed in CSetupManager::RunInstall()
[03/13/06,10:57:32] VS70BaseUI: ***ERRORLOG EVENT*** : DepCheck indicates Microsoft FrontPage 2000 Web Extensions Client is not installed.
[03/13/06,10:57:32] VS70BaseUI: ***ERRORLOG EVENT*** : DepCheck indicates Setup Runtime Files is not installed.
[03/13/06,10:57:32] VS70BaseUI: ***ERRORLOG EVENT*** : DepCheck indicates Microsoft Visual J# .NET Redistributable Package 1.1 is not installed.
After some considerable amount of time researching what could be the root cause, I stumbled across the following KB article that led me to the answer http://support.microsoft.com/default.aspx?scid=kb;en-us;327763
In my scenario the servers that I received had an incorrect mapping for the “My Documents” folder, which pointed to a network folder that did not exist. I changed this to point to a temporary folder located on the local machine and the installation continued successfully.
I hope this post may help save someone else time.
by community-syndication | Mar 10, 2006 | BizTalk Community Blogs via Syndication
A few users have reported this configuration issue when trying to install and configure BizTalk 2006 with Windows SharePoint Services adapter. BizTalk 2006 native adapter for Windows SharePoint Services requires .Net Framework 2.0 but most of the users don’t realize this until they try to configure the Windows SharePoint Services Adapter Web Service feature of BizTalk 2006. At that point, in many cases, Windows SharePoint Services has already been configured to run on top of .Net Framework 1.1 so the following error is visible in BizTalk configuration Web site is not configured to use .Net Framework 2.0
Changing the ASP.NET version on IIS site to be 2.0 instead of 1.1 causes Windows SharePoint Services 2003 to stop working completely.
This is not a BizTalk 2006 configuration issue, but BizTalk requirements combined with the succession of installation and configuration steps makes it pretty likely to run into this configuration issue of WSS 2003 with SP2. This is a known WSS 2003 with SP2 configuration issue and can be fixed easily by running STSADM tool with the force ugprade parameter.
In order to quickly upgrade your IIS site and WSS 2003 with SP2 from .Net Framework 1.1 to .Net Framework 2.0, run the commands below:
“%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe” -i
“%CommonProgramFiles%\Microsoft Shared\web server extensions\60\BIN\STSADM.exe” -o upgrade -url http://localhost:80 -forceupgrade
by community-syndication | Mar 10, 2006 | BizTalk Community Blogs via Syndication
A few users have reported this configuration issue when trying to install and configure BizTalk 2006 with Windows SharePoint Services adapter. BizTalk 2006 native adapter for Windows SharePoint Services requires .Net Framework 2.0 but most of the users don’t realize this until they try to configure the Windows SharePoint Services Adapter Web Service feature of BizTalk 2006. At that point, in many cases, Windows SharePoint Services has already been configured to run on top of .Net Framework 1.1 so the following error is visible in BizTalk configuration Web site is not configured to use .Net Framework 2.0
Changing the ASP.NET version on IIS site to be 2.0 instead of 1.1 causes Windows SharePoint Services 2003 to stop working completely.
This is not a BizTalk 2006 configuration issue, but BizTalk requirements combined with the succession of installation and configuration steps makes it pretty likely to run into this configuration issue of WSS 2003 with SP2. This is a known WSS 2003 with SP2 configuration issue and can be fixed easily by running STSADM tool with the force ugprade parameter.
In order to quickly upgrade your IIS site and WSS 2003 with SP2 from .Net Framework 1.1 to .Net Framework 2.0, run the commands below:
“%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe” -i
“%CommonProgramFiles%\Microsoft Shared\web server extensions\60\BIN\STSADM.exe” -o upgrade -url http://localhost:80 -forceupgrade
by community-syndication | Mar 10, 2006 | BizTalk Community Blogs via Syndication
BizTalk 2004, 2006: Access to new object (schema etc) from other project
Let see the example: I always have several projects in the BizTalk solution. I create a new schema in the …Schemas project, build a new assembly. But I can not access the new schema from the …Orchestration project. When I use, for example, “Schemas pick up” window, the new schema is not in the list. It happens not only with schemas but with other objects too.
The new objects are not automatically getting visible from others projects.
How can I get them visible?
If I delete the reference to the …Schemas project in the …Orchestration project and create it again, the new schema is going to be visible.
And I know faster way. 🙂
I start to Build the …Orchestration project. If I’ve got the errors I don’t mind. The references of the project are going upgraded in the beginning of the building process. And it is what I want.
Comments are appretiated 🙂
by community-syndication | Mar 10, 2006 | BizTalk Community Blogs via Syndication
Hey All, If you’re local to the Seattle/Eastside area, please join us for the next NW Connected Systems User Group Meeting. We are really excited to present the upcoming Tuesday, March 14th meeting and look forward to seeing you. The focus of the discussion is on BizTalk 2006 Core Engine Enhancements. Please come ready with questions, problem statements, or general thoughts around development and implementation of the BizTalk toolset. Park on campus and there will be someone at the door to let you into the building. For more information about this event as well as past events, please visit the following site: http://www.nwconnectedsystems.org We will have food, beverages, and door prizes at the meeting. Meeting Details Date: Tuesday, March 14, 2006 Topic: BizTalk 2006 Core Engine Enhancements Speaker: Ruslan Yakushev, Microsoft Time: 6:00pm – 8:00pm (formal presentation @ 6:30) Location: Microsoft Campus Bldg. 35 / Kalaloch Room #2615 http://www.microsoft.com/mscorp/info/usaoffices/pacwest/redmond.mspx Speaker Ruslan Yakushev is a Program Manager for the BizTalk product team (Microsoft’s Connected Systems Division) and is extremely knowledgeable on the BizTalk platform and the technology underlying BizTalk. Ruslan is an active contributor to technology whitepapers, BizTalk community newsgroups, and has presented at many events including Microsoft’s Business Process Integration and Workflow Conference that took place this past October. Come to this session and hear directly from the Microsoft product team about the core enhancements. If you are currently working with the BizTalk 2006 product or plan to implement BizTalk 2006 then you do not want to miss this presentation. Warmly, Brennan O’Reilly (User Group Steward)…
by community-syndication | Mar 9, 2006 | BizTalk Community Blogs via Syndication
I know Martijn H posted on this exception a while back but I think it’s worth regurtitating. I’ve seen it a few times, a couple of times recently and a few times about a year ago.
Recently the issue was because a send port wasn’t enlisted so there wasn’t a subscriber for the message sent from the orchestration. Last year, I was using direct binding and my context properties weren’t set up correctly (although a subscribing orchestration was enlisted) so the subscription wasn’t working. If you see this error, make sure you don’t have a subscription issue related to sending a message from an orchestration.
Both times that I’ve run across this issue recently I’ve found KB895175 and thought it might be the issue, particularly because atomic scopes are involved. Note that the status number in the KB (-1061151960) is slightly different than the error number I’m posting about (-1061151998).
by community-syndication | Mar 9, 2006 | BizTalk Community Blogs via Syndication
Hi,
The BizTalk team have just posted the latest drop of the BizTalk 2006 documentation here. For those of you that are BizTalk Server 2004 developers you’ll be pleased to know that you can now download and use the documentation on a box that doesn’t have BizTalk installed (at last!)
The even better news is that this documentation is a huge step forward from BizTalk Server 2004 which I think everyone agrees wasn’t up to scratch, and ironically this time we get the full documentation before it ships 🙂
Enjoy!