BizTalk 2006 *Officially* Released, Demo of Pipeline Feature
Wow, we just announced today that BizTalk Server 2006 released (press release, also see Virtual Press Room, new BizTalk home page) just as we planned. Instead of this just being a "BizTalk is out" post, I wanted to also show a cool way to use pipeline-instance configuration to send HTML email.
I spent last week doing a BizTalk Proof of Concept project with some customer buddies (hi Perry and Dan) in Los Angeles last week, and actually came away with a few things I plan on showing here. The first, we'll cover here. The second, using the BAM API on a looping orchestration process, we'll cover Wednesday.
So it's super that you can set an SMTP send port to use a static HTML file for sending messages out. However, it's a bit inflexible if you have dynamic content you wish to insert into the message (personalization, message-level details, etc). One very elegant way I decided to get around this issue is explained here. I used the XSLTransform SDK project, combined with the pipeline-instance configuration to send a variety of messages out.
First, you build the XSLTransform component and put it in the /Program Files/Microsoft BizTalk Server 2006/Pipelines directory. Remember that these components DO NOT have to be GAC'ed and need to be in this location to be seen by BizTalk.
Next, we add a Send Pipeline to our BizTalk project. Add our new XSLTransform pipeline component to the palette, and then drag it to the Encoding stage of the pipeline. This component exposes a property called XsltFilePath. This pipeline component uses that path to load up an XSL document, apply it to the message in the pipeline, and, set the content of the outbound message to an html type for email.
Next, I authored four different XSL files. Each one take various properties from the XML message and puts the data into a nice HTML format.
Then, I can go into my Send Port in the BizTalk Administration Console, choose my project's Send Pipeline, and, click the ellipse button next to it. This new feature enables you to make changes to the pipeline associated with THIS Send Port instance. So instead of using countless different Pipelines that have one minor difference, you can reuse the same Pipeline and simply configure the port-specific settings on each one! Now, you could actually do this in BizTalk 2004, but you had to go through the BizTalk API, and it was a bit messy. This is much cleaner and more intuitive.
Now when my workflow process runs, I can send emails out that are targeted in content and message. And most importantly, if I want to change ANY aspect of that email (content, format, etc), all I need to do is tweak an XSL file, and that's it! No redeploying components, orchestrations or configuration settings. Sweet.
So now we have a clean, low-code solution that is very easy to maintain, and provides a better experience than just sending out static HTML.
And don't forget to tune in today for my riveting webcast on the new features of the BizTalk 2006 Messaging Engine.
UPDATE: Download XSLT files here.