Saturday, June 18, 2005

My Blog is Moving!!!

I have been blogging on BlogSpot for over a year now. I am moving my blog to MSN Spaces because it has several additional features such as Categories, 30mb of space for pictures, and is more customizable.

-j

Wednesday, June 15, 2005

BizTalk ChalkTalk : Troubleshooting Common Problems in a BizTalk Server 2004 Platform Installation

BizTalk ChalkTalk : Troubleshooting Common Problems in a BizTalk Server 2004 Platform Installation

A fellow Innovative Architect was running into problems installing BizTalk 2004 on Windows XP. This article may be useful in troubleshooting what is going on. The best part is that it covers what software different services in BizTalk are dependent upon. This is important in relation to Windows XP installations because SharePoint will not run on Windows XP. This means that BAS and HWS cannot be installed on Windows XP.

-j

Google Groups : microsoft.public.biztalk.general

Google Groups : microsoft.public.biztalk.general

This news post describes a very similar format that I have to follow to commicate with Freddie Mac's Desktop Underwriter system. It looks like I will be writing a custom adapter to handle this (ugh!).

I may be using this:
GotDotNet User Sample: Biztalk Server Adapter Framework 1.1 with VB.NET support FINAL

This link may be useful to me in this process as well:
http://www.dixie.sk/blog/post/1/16

More to come...

-j

Monday, June 13, 2005

Handling Default Namespaces

Handling Default Namespaces

This article was useful to me in figuring out how to use default namespaces in xslt stylesheets.

-j

Sunday, June 12, 2005

MCSD for Microsoft .NET Certification Requirements

MCSD for Microsoft .NET Certification Requirements

Innovative Architects gives bonuses and gets Microsoft Partner points for employee certifications. I want to keep track of this page because it is likely to be the track I would take to Microsoft Certification.

-j

Saturday, June 11, 2005

Visual Studio 2005: Technical Resources for Visual Studio 2005

Visual Studio 2005: Technical Resources for Visual Studio 2005

I loaded a virtual pc with VS2005 Beta 2. I'll be coming back to this site to get some guided tours of new features.

I watched this webcast and was impressed with it:

Whidbey WebCast

-j

Matt's Musings on Messaging - Send XML to a SQL stored procedure (RELOADED)

Matt's Musings on Messaging - Send XML to a SQL stored procedure (RELOADED)

This sample looks promising. I need to do some fairly complex CRUD operations on a table to keep track of attributes related to a business transaction. Instead of separating create/update/delete statements into separate ports, I want to do it all at once using an xml fragment that I will parse in a stored procedure.

I would use an update-gram, but the only output generated is a "success" message. I want the flexibility of returning the table data post-update back to biztalk. This requirement is not supported in an update-gram.

-j

XSD Object Code Generator

XSD Object Code Generator

This tool generates a MUCH better class representation of an .xsd schema. The output is a lot easier to consume than the output generated by the default xsd.exe tool that ships with .NET. I wish that the project I am currently working on had used this tool instead of xsd.exe to generate the classes being used.

Friday, June 10, 2005

XML - Prefix problem with XML/XSL

XML - Prefix problem with XML/XSL

I was running into a little bit of a snaffu with using custom xslt in a BizTalk map. All I had to do was reference the appropriate namespace in the map and voila! If only I had discovered that three or four hours ago! :o(

-j

XSL Transformations

XSL Transformations

This is a really good resource for xsl transformations. One of the useful things to me is the section about using xsl:element and xsl:attribute when transforming from xml to xml.

http://www.ibiblio.org/xml/books/bible2/chapters/ch17.html#d1e6328

I had an interesting case where I needed to transform an "extensible" database model into a more usable xml structure.

This is the original output of a SQL Server stored proc using For Xml Auto:

<root>
<transaction transactionid="1">
<vendor vendordescription="DU">
<status statusdescription="Created">
<transactionattribute attributeid="1" attributekey="TestAttribute1"
attributevalue="TestValue1" attributedatatype="String">
<transactionattribute attributeid="2" attributekey="TestAttribute2"
attributevalue="TestValue2" attributedatatype="String">
</transactionattribute>
</transactionattribute>
</status>
</vendor>
</transaction>
</root>

I needed the output to be in a format somewhat like this:

<transactions>
<transaction>
<transactionid>1</transactionid>
<vendorname>DU</vendorname>
<status>Created</status>
<testattribute1>TestValue1</testattribute1>
<testattribute2>TestValue2</testattribute2>
</transaction>
</transactions>

So, to accomplish this I created this xsl transformation script:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="no" />
<xsl:template match="/">
<Transactions>
<Transaction>
<xsl:element name="TransactionID">
<xsl:value-of select="//Transaction/@TransactionID" />
</xsl:element>
<xsl:element name="VendorName">
<xsl:value-of select="//Vendor/@VendorDescription" />
</xsl:element>
<xsl:element name="Status">
<xsl:value-of select="//Status/@StatusDescription" />
</xsl:element>
<xsl:for-each select="//TransactionAttribute">
<xsl:element name="{@AttributeKey}">
<xsl:value-of select="@AttributeValue" />
</xsl:element>
</xsl:for-each>
</Transaction>
</Transactions>
</xsl:template>
</xsl:stylesheet>

Thursday, June 09, 2005

Monday, June 06, 2005

Saturday, June 04, 2005

Constructing BizTalk 2004 XML Messages (In an Orchestration) - Choices

Constructing BizTalk 2004 XML Messages (In an Orchestration) - Choices

Finally, I found an example of constructing a message and assigning property values to it in BizTalk 2004 Orchestrations. Example number three in this link is what I will be using.

Friday, June 03, 2005

BizTalk Server Orchestration - message has not been initialized in construct statement

BizTalk Server Orchestration - message has not been initialized in construct statement

This may sound very basic...but...

When using the MessageAssignment orchestration shape, if the message you are using has not been instantiated by a map or a port then you must manually instantiate the message:

Message_Type = new System.Xml.XmlDocument();
//Now that the message has been instantiated it can be used.
Message_Type.[PropertyName] = "Property Value";

Wednesday, June 01, 2005

Mark Schmidt's Abode : Creating Multiple Input Maps for BizTalk Server 2004

I may use this to compose multipart mime documents.

...Update:
I discovered an issue with this post. I was only able to get the BizTalk Mapper to launch when the schemas used in the example were in the same project as the orchestration. There may be another solution, but I don't have time to look for one! I think the reason for the problem is the namespacing used in the schemas I downloaded in the example. -j

...Update 2:
This method only works if the target namespace of all the input maps is defined. If the namespaces are not defined then the map generated only carries across the source schema for the first message. -j