We are already aware of the BTM Migration Tool that was made available through CodePlex a while back. Just wanted to have some dough shared with folks that the migration tool.

To start with, AFAIK, the current release of the tool is ‘not supported’. This does not mean that we can’t share any feedback about the product. If we have any feedback or a feature list that we want to be added to the tool, we can always provide feedback using the forums. Now let’s start talking about the tool.

What does it do?

Lot of BizTalk Server customers would be looking to move their BizTalk Server applications to the Azure EAI/EDI Service. One thing that has undergone considerable change between BizTalk Server and Azure EAI/EDI Services is the Mapper, which is now called Transform in the EAI/EDI Service parlance and Functoids are now called Map Operations. Anyways, so when you move your BizTalk Server applications to the cloud, you would also need to migrate your maps to transforms. To automate this task (to some extent), you can use the BTM Migration Tool. The tool is a command line utility that converts BizTalk Server maps (.btm) to Azure Transforms (.trfm).

How to Use the tool?

BtmToTrfmConvertor.exe <BTMFilePath> <SourceSchema> <DestinationSchema> (optional)<OutputTrfm>

Note: Ensure that the DLLs that are provided with the EXE must be in the same location from where you run the EXE.

Also, we need to ensure that the computer on which we run this tool has both BizTalk Server 2010 and Azure EAI and EDI Labs SDK installed.

Does this tool convert everything in the .BTM to equivalent in .TRFM?

No. It doesn’t. There are some limitations with the current version of the tool, which might get addressed in future updates of the tool. Some limitations are:

  • Multiple pages from BTM are merged into a single TRFM page.
  • Links to functoids that failed conversion are denoted as empty links on the input side.
  • Labels and comments from the BTM are not migrated to TRFM.
  • Script and Custom functoids are converted to arithmetic expression map operations and the expression value is set to empty so that we get to know that it was an unsuccessful conversion. The content of the script functoid is put in the comments section of the map operation. This task is a best-effort operation, meaning the content is put in the comments section to the best level it could be done.

You could find more such issues here.