Tallan's Technology Blog

Tallan's Top Technologists Share Their Thoughts on Today's Technology Challenges

Unit Testing BizTalk Applications

Lee Rodgers

Unit testing is a best practice when it comes to application development.  BizTalk development falls into this realm of application development so it would be great to be able to unit test these applications as well.
The most commonly used unit testing tool with BizTalk is BizUnit (http://www.codeplex.com/bizunit).   This is a step based test framework where steps are defined in XML.  Using BizUnit in conjunction with either Visual Studio .Net Tests or nUnit tests would allow for unit tests to be integrated as part of a build process.
More information and examples will be posted in the coming weeks so stay tuned.

Deploy BizTalk policy using command line tool

Leo Wang

As I discussed in my previous blog, manually deploying BizTalk application is error-prone. For every BizTalk application, developing a script to automate deployment process is absolutely necessary. One of recent projects I’m working on requires to import and deploy policies with multiple rulesets and vocabularies. BTSTask , a command line tool from Microsoft, can be used to accomplish this task.
For example
BTSTask ImportApp /Package: “C:\MSIFiles\MyApplication.msi” /Environment: Test /ApplicationName:MyApplication /Overwrite
For detail steps about how to use BTSTask to import policy, click here.
Although BTSTask works, it demands policies are stored in an MSI file. This is not desirable because it’s not easy to compare different versions in binary format. Ideally, I would like to import an XML file. Luckily Microsoft provides a sample console application, which almost can fulfill my requirement. You can download the tool ( ImportExportRuleStore.exe ). Please note, you…

Shortcuts and Tips


As with any application, keyboard shortcuts can save a developer a tremendous amount of time. I have found that keyboard shortcuts are absolutely necessary for creating BizTalk schemas with more than a few nodes. An advanced schema can take many times longer if you have to continually insert each node one at a time. Shortcuts and the AutoLink feature of the BizTalk Mapper can also save a developer a great deal of time. Although the information below can also be found on the MSDN site, I thought it might be helpful to get it all in one area.
BizTalk Editor Keyboard Shortcuts

Keyboard shortcut
Alternate Shortcut

Opens the BizTalk menu.

BizTalk – Insert Schema Node – Child RecordAdds a Record node at the end of the child nodes of the currently selected node.

BizTalk – Insert Schema Node – Child Field…

Dynamically Reading Receive Location Context Properties


A situation present itself occur where an orchestration uses a receive port that is sourced by multiple receive locations to receive a message and a specific context property must be read from the incoming message. Because the message is coming from different receive locations, an evaluation of the to location may be necessary to determine the proper context property. For example, the following receive port is set up to accept an incoming message from four different receive locations:

In this example, the file is not only coming in from four receive locations, but each location is a different type (a windows folder, a SharePoint document folder, an FTP site or email). To get a file property such as the file name, an orchestration will need to read the context property ReceivedFileName associated with the specific receive location. When multiple locations are…

Common BizTalk Deployment Issues & Solutions

Leo Wang

Deploying BizTalk application is a challenging task, which requires some special knowledge beyond desktop or web application deployment. In this blog, I will discuss some very common deployment issues and their solutions.
I usually choose manually deploy BizTalk application to other computers due to the time constraint to write automation script. A typical deployment cycle consists of three steps. First, prepare BizTalk application for deployment. I usually deploy BizTalk application to my local BizTalk server, then test it to ensure it works properly. I will check the value of Application Name of the project property pages to ensure it is specified properly. If the application name is not defined, it will be deployed to the default BizTalk application, BizTalk Application 1. Once it’s up and running, I will add some resource files to the application such as binding file for a…

Microsoft ESB Guidance

Dmitriy Gitelman

On November 8, 2007 Microsoft released the ESB Guidance. The ESB Guidance was developed by Microsoft patterns and practices team and the Connected Systems Division. It provides architectural guidance, patterns, practices, and a set of .NET and BizTalk Server components to simplify the development of Enterprise Service Bus (ESB) on the Microsoft platform and to allow companies to extend their messaging and integration solutions.
The Microsoft ESB Guidance is based on BizTalk Server 2006 R2 and extends its functionality to provide new capabilities that focus on building robust, connected, service-oriented applications. These capabilities include:

Policy driven mediation

Itinerary-based service invocation that supports lightweight service composition at the time of message publication
Dynamic resolution of endpoints and maps that enable decoupling the consumer from the services

Connecting systems

Message namespace normalization
JMS/WMQ connectivity
Support for messaging patterns that enable dynamic service aggregation, message routing, validation and transformation
Service registry and…

Flat File Interchanges with Multiple Document Types

Flat file interchanges with BizTalk are really useful for handling large files that contain messages that need to be individually processed. However one of their limitation is that they only support one flat file schema as the interchange’s document schema:

In some instances, one might want to process interchanges that contain more than one type of message such as:

The flat file has a batch header, and a series of purchases and work orders that have different formats. In order to parse this, one needs to create a flat file schema with a choice group that will make the flat file disassembler parse either of the two formats. That choice schema can then be used as the document schema in the flat file disassembler (the min/max occurs properties of the PO and WO nodes need to be set to 0/1):

And the following…

Install BizTalk Server 2006 Orchestration Designer for Business Analysts with Visio 2007

Dmitriy Gitelman

Recently I tried to install BizTalk Server 2006 Orchestration Designer for Business Analysts (ODBA), but the installation failed with this error message.

I had Visio 2007 on my system and it looked like ODBA installer was hard coded to look for Visio 2003. To confirm that, I used Registry Monitor utility from Windows Sysinternals web site (http://www.microsoft.com/technet/sysinternals/default.mspx).

I found that the installer does look for this registry key: HKLM\Software\Microsoft\Office\11.0\Visio, but cannot find it. However, I found similar registry key for Visio 2007: HKLM\Software\Microsoft\Office\12.0\Visio. I exported this registry branch to a file and replaced all instances of “12.0” to “11.0”.
After merging this file with the registry, I was able to install and use ODBA.

Handling of Record Tag Identifiers by BizTalk 2006 Flat File Schema Wizard

Dmitriy Gitelman

Those, who work with BizTalk 2006 Flat File Schema Wizard, probably noticed that record tag identifiers are handled differently for delimited and positional records. Let’s use a simple text file Person.txt for this example.

After opening Flat File Schema Wizard, skipping the Welcome Screen and entering required information on Flat File Schema Information screen we are presented with this Select Document Data screen.

Here tag identifier PERSON marks the whole record and it is followed by a User ID. Next line is person’s name record presented in comma delimited format. This record is tagged with NAME tag identifier. The last line represents person’s address. The address is presented using relative positions format and it is tagged with ADDRESS tag identifier. The children of the root element Person are {CR}{LF} delimited, so we make corresponding selection on Delimited Record screen and enter PERSON…

Import flat file using BizTalk server

Leo Wang

Recently I worked with a client to implement a solution to import data from an Excel file to SQL Server database. In order to provide a seamless user experience, we created a web page to allow user to upload file to server, then use BizTalk server to convert Excel file to XML file and call a web service to upload data into the SQL Server database.
By leveraging BizTalk server, we built a highly scalable and available data processing system for my client. Since my goal in this post is to introduce some core tools in the BizTalk, I simplify the real issue by 1) Changing the Excel file to the flat file, 2) uploaded data is saved into a file instead of database.
After completing this tutorial, you will be able to create flat file schema, convert flat file to XML…