Geeks With Blogs
Bill Osuch - Random geek notes BizTalk
Using Dynamic Maps in Microsoft BizTalk
Using maps in a Microsoft BizTalk orchestration is pretty straightforward – create your source and destination schemas, map from one to the other, drop a Transform shape onto your orchestration, and configure the source and destination messages. But what if you need to apply different maps based on some property inside the message, or even who the message is coming from? In our case, we process X12 837 healthcare claim files. In the X12 schemas, the same piece of information can be stored in different ......

Posted On Monday, December 30, 2013 8:00 PM

Packt Publishing Thousand Titles Campaign–free eBook!

Packt Publishing is celebrating the release of its 1000th title by offering web site members their choice of free eBook. They are also opening their online library for a week for free to members, to allow you to research your choice. 

If you’re not already a member, signing up is free, but you have to do so by September 30th to get the free eBook.

To sign up, just go to

Posted On Friday, September 28, 2012 12:10 PM

BizTalk–Looping through repeating message nodes in orchestrations
Say that you have an incoming BizTalk message with many repeating nodes, and you want to process each one the same. The easiest thing to do would be to use the envelope to split the single message into multiple messages, then have multiple instances of your orchestration handle each one (similar to how the HIPAA “multiple” message schemas work). But what if you need to do some work after every individual message has been processed? I’ll show you how to use the Loop functoid along with xpath queries ......

Posted On Wednesday, August 15, 2012 3:10 PM

BizTalk–Mapping a NACHA file using the Flat File Mapping Wizard and preserving header information
In a previous post I demonstrated how to use the Flat File Mapping Wizard to map a NACHA financial file, and at the end I said I’d follow up with a post on setting up the pipeline and preserving the header information. Well, I totally forgot about that until someone asked where the post was, so here it is… Begin by creating the three schemas as shown in the previous post. Add a pipeline to the project, and drag the Flat file disassembler component from the toolbox to the Disassemble stage. Right-click ......

Posted On Friday, April 20, 2012 2:50 PM

BizTalk Server - Microsoft has released HIPAA 5010 Errata schema
Microsoft has release new BizTalk 5010 HIPAA schemas to support the A1 and A2 errata documents. They are bundled with a BizTalk Server 2009 Cumulative Update (#2, to be specific), but you can easily extract just the schemas for BizTalk 2010. The CU2 download is available at: (you'll have to request the download by giving them your email address and having them send you the link). For the HIPAA 5010 Errata schemas, run MicrosoftEdiXSDTemplatesKb2... file ......

Posted On Tuesday, March 29, 2011 9:18 AM

BizTalk–Mapping repeating EDI segments using a Table Looping functoid
BizTalk’s HIPAA X12 schemas have several repeating date/time segments in them, where the XML winds up looking something like this: <DTM_StatementDate> <DTM01_DateTimeQualifier... <DTM02_ClaimDate>2012... </DTM_StatementDate> <DTM_StatementDate> <DTM01_DateTimeQualifier... <DTM02_ClaimDate>2012... </DTM_StatementDate> The corresponding ......

Posted On Thursday, March 29, 2012 8:07 AM

BizTalk 2010 EDI batching–using an external release trigger
In an earlier post I showed you how to implement basic EDI batching, releasing the batch every time 3 messages were waiting. In the real world, you’re probably going to have some other criteria for releasing the batch; in our case a back-end system notifies BizTalk when all HIPAA 837 claims in a single file are ready to be sent. The MSDN page for this process is actually very easy to follow, but I’ll summarize it here. First, you’ll set up a new receive port and location to receive the trigger file. ......

Posted On Monday, February 27, 2012 3:04 PM

BizTalk 2006 & 2009 hotfix for EDI leap year date errors
Microsoft has released a hotfix to fix a date problem in BizTalk Server 2006 R2 & 2009 when processing EDI files where a data element contains a leap date. BizTalk Server 2006 and 2010 are not affected. This issue occurs because the EDI interchange cannot validate a data element that contains a leap date value, such as "20120229". This issue can be resolved by either installing the BizTalk Server 2009 cumulative update package 1 (if you’re running 2009…) or the hotfix at the top of KB article ......

Posted On Thursday, February 23, 2012 1:10 PM

BizTalk - Stopping TA1 generation in EDI applications
When receiving EDI messages in BizTalk, you have the option of sending an Interchange Acknowledgment (TA1) when a file is received. This is configured in the X12 Fallback Settings in BT 2010, or in EDI Global Properties in previous versions. However, even if you have this disabled, if your inbound file has the ISA14 field (Acknowledgement Requested) set to 1, then a TA1 will be created. It will then be suspended, since BT doesn't know what to do with the message. To get around this, you have two ......

Posted On Wednesday, December 1, 2010 3:52 PM

Directly querying the BizTalk database for suspended messages
I needed to write a quick job that would notify support folks whenever a BizTalk message was suspended. Yes, you could use WMI and/or MOM, but since we're not currently using anything along those lines this was the quickest way to go. Run this against the BizTalkMsgDb database: SELECT nvcName as ApplicationName, DATEADD(hh,-6,dtSuspendTime... as DateSuspended, -- Subtract the appropriate hours for your timezone nvcAdapter as Adapter, nvcURI as URI, nvcErrorDescription as ErrorDescription FROM ......

Posted On Monday, November 29, 2010 8:47 PM

BizTalk 2010 EDI Batching Tutorial
In two previous posts I talked about party configuration and routing of EDI messages: Basic Party Resolution in BizTalk 2010 EDI Party Resolution (& trading partners) in BizTalk 2010 In this post I’ll build off of those examples and set up EDI batching so that we can deliver more than one EDI 810 invoice per file. You’ll need to have worked through the previous two posts to have your BizTalk application ready to follow along with these steps. First, change the File name: of the Contoso Send Port ......

Posted On Thursday, February 16, 2012 3:04 PM

Accessing all context properties in a custom BizTalk pipeline component
Previously I talked about how to create a custom BizTalk pipeline component, and gave a few examples for accessing specific context properties. I wanted to be able to dump all the context properties to disk for examination, so I added a few lines of code and an on/off switch. First, add two properties to your component: private bool _EnableContextTrace; private string _FileTraceLocation; public bool EnableContextTrace { get { return _EnableContextTrace; } set { _EnableContextTrace = value; } } public ......

Posted On Monday, February 6, 2012 2:06 PM

Creating a custom BizTalk 2010 pipeline component–Part 3
I hadn’t intended for there to actually be a part 3 to this series, but I realized that I failed to talk about how to get the xml back into the message once you’re done messing with it. You have to convert it to a MemoryStream and assign it to IBaseMessage.BodyPart.Data, like this: public Microsoft.BizTalk.Message.I... Execute(Microsoft.BizTalk.C... pc, Microsoft.BizTalk.Message.I... inmsg) { IBaseMessagePart bodyPart = inmsg.BodyPart; ......

Posted On Thursday, January 26, 2012 11:10 AM

Creating a custom BizTalk 2010 pipeline component–Part 2
In the last post I showed how to create the skeleton of a pipeline components, add it to the toolbox, integrate it into a BizTalk app and deploy & test it. This time I’ll go over working with the XML, reading and writing message context properties, and reading and writing custom component properties. To get the xml portion of the message, you can get a Stream from IBaseMessage.Body.Part.GetO... and load it into an XmlDocument. In our case we’re manipulating the structure of an ......

Posted On Wednesday, January 25, 2012 3:17 PM

BizTalk error - "No valid adapters are installed on this machine"
After upgrading to a new 64-bit OS on our BizTalk server, I was unable to get the WCF-SQL adapter working - kept getting the "No valid adapters are installed on this machine" error message. The Admin Console had SOME of the WCF adapters visible, just not WCF-SQL. I found out that this was due to the fact that I had simply installed the 64-bit version of the Adapter Pack - both Visual Studio and the BizTalk Admin Console run as 32-bit processes, so you'll need to install that version as well. So, ......

Posted On Monday, October 18, 2010 9:34 AM

Working with 5010 schemas in BizTalk (part 1)
If you're working with healthcare EDI transactions in BizTalk, then you need to be thinking about the upcoming 5010 transaction set implementation. In a nutshell, the 5010 transaction set introduces anywhere from dozens to hundreds of changes (depending on the individual transaction) and paves the way for the upcoming ICD-10 implementation. The timeline for transition is as follows: Jan 2009 Begin Level 1 activities (gap analysis, design, and development) Jan 2010 Begin internal testing for HIPAA ......

Posted On Thursday, October 7, 2010 12:52 PM

Creating a custom BizTalk 2010 pipeline component–Part I
Recently at work we had a need to be able to manipulate the XML version of a HIPAA EDI file before it hit any of our BizTalk orchestrations, so I decided to do this with a custom pipeline component. There are other (possibly better…) ways of doing this, but sometimes you just have to work with what you’ve got. I can never remember all the little bits and pieces you have to set up in a custom pipeline component, so I decided to give the BizTalk Server Pipeline Component Wizard a try. The wizard walks ......

Posted On Tuesday, January 24, 2012 12:40 PM

Generating HIPAA 5010 acknowledgments in BizTalk Server 2010
Microsoft has released a hotfix that supports 999 functional acknowledgments and 277CA for HIPAA 5010 Errata in Microsoft BizTalk Server 2010. This post will be a quick walk-through on getting the 999s working. To start, download and install the hotfix (part of Cumulative update package 3) at: If you don't have a solution that currently uses 997 responses, and you want to test the 999s out, just do the quick tutorial (Walkthrough (X12): Receiving EDI Interchanges ......

Posted On Monday, December 5, 2011 4:37 PM

EDI Party Resolution (& trading partners) in BizTalk 2010
In my last BizTalk post, I showed a project that routed xml messages to different parties based on the destination party name. It worked for simple xml messages, but if you want to work with EDI files you need to set up actual trading partner agreements between the parties, in order to configure the additional information needed to send an EDI X12 message (the ISA & GS segments). We'll build off the solution previously created by adding an X12 schema, mapping the xml purchase order to it, and ......

Posted On Wednesday, October 26, 2011 12:46 PM

New BizTalk 2010 Developer Training from Microsoft
Microsoft has publically released the content from their BizTalk 2010 training course - this includes the PowerPoint decks (with instructor notes), Word docs of all the modules, 1.5 gigs of videos, and virtual machines (for Hyper-V only) for all the labs. The downloads are available at: BizTalk Server 2010 Developer Training Kit From Microsoft's site: About This Hands-On Lab This five-day instructor-led course consists of a series of hands-on labs that provides students with the knowledge and skills ......

Posted On Wednesday, May 25, 2011 9:58 AM

Problems with the BizTalk HIPAA 5010 schemas

We've been having a problem getting BizTalk to recognize an 837I A2 (00501X223A2) file, and Microsoft just yesterday released a fix for it:

It can be downloaded as part of the new Cumulative update package 1 for BizTalk Server 2010.

Technorati Tags:

Posted On Tuesday, May 24, 2011 12:52 PM

BizTalk: Using the Flat File Mapping Wizard to map a NACHA financial file
If you've ever had to work with any financial ACH transactions (Automated Clearing House, think direct deposit...) then chances are you've run into a NACHA file. These are flat, positional files composed of repeating 94 character records. The basic structure looks like this: File Header Record Batch Header Record Entry Detail Record Entry Detail Record Entry Detail Addenda Record (optional) Batch Control Total Batch Header Record Entry Detail Record Batch Control Total File Control Record Notice ......

Posted On Thursday, April 21, 2011 2:54 PM

Basic Party Resolution in BizTalk 2010
BizTalk parties are external entities that BizTalk communicates with. You create parties in the admin console to determine how (or where) messages are routed, as well as controlling various pieces of envelope information for EDI messages. Today I'm going to walk through a very simple method of routing a message through an orchestration to any location based just on the party name. Begin by creating a new BizTalk solution. Add a schema called PurchaseOrder that looks like this: Promote the customer ......

Posted On Monday, October 17, 2011 1:29 PM

Changing the BizTalk message output file name
By default, BizTalk creates the filename of the message dropped to a send port as %MessageID%, which is the unique identifier (GUID) of the message. What if you want to create your own filename? To start, create a simple schema, and a basic orchestration that will receive the message and send it right back out, like this: If you deploy this and wire up the ports, you can drop an xml file into your receive port and have it come out at your send port named something like {7A63CAF8-317B-49D5-871F-9F... ......

Posted On Friday, June 24, 2011 2:40 PM

New Microsoft BizTalk 2010 certification exam
TS: Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2010 Microsoft has released the newest BizTalk 2010 certification exam, which will qualify you as a Microsoft Certified Technology Specialist (MCTS): Microsoft BizTalk Server 2010. Unfortunately, at this point it appears there is absolutely no training material for it; looking at the Preparation Materials tab at the link above says "Microsoft Learning recommends that you have hands-on experience with the product ......

Posted On Wednesday, April 20, 2011 3:03 PM

The new way to configure EDI trading partners in BizTalk 2010
I'm assuming you already know the basics of EDI and party configuration in BizTalk before reading this... In BizTalk 2009, you created a party, then right-clicked to set the EDI Properties of that party (both as sender and receiver). The home organization (i.e. you) did not require a partner for itself. In 2010, each organization, including yourself, is represented as a trading partner (or party). Configuring a trading partner agreement in 2010 is very similar to 2009; you just have your options ......

Posted On Tuesday, November 23, 2010 12:00 PM

Working with 5010 schemas in BizTalk (part 2)
Assuming that you've already got a HIPAA 4010 application running, and you've now downloaded and examined the 5010 schema, the next step is going to be determing what's changed from 4010 to 5010. For that, you're going to need something more than just eyeballing the two schemas side by side. Washington Publishing Company has a nice set of Change Description Guides that contain all of the information from the 5010 guides and all of the segments from the 4010A1 guides along with a change description ......

Posted On Thursday, November 11, 2010 1:52 PM

BizTalk - using a custom schema with your WCF stored procedure
Let’s say you added a table to the database created in the previous post, with a foreign key relationship to the original table, like this: The idea here is that you can have multiple rows in NestedData for each single row in TestData. If you create a stored procedure (call it Get_NestedData) with the following select statement: select TestData.TestDataId, StringColumn, IntColumn, Notes from TestData left outer join NestedData on TestData.TestDataId = NestedData.TestDataId where TestDataId = @TestDataId ......

Posted On Thursday, October 21, 2010 2:24 PM

BizTalk - simple WCF tutorial for using a stored procedure
This is a basic tutorial for using a stored procedure via a WCF-SQL adapter in BizTalk. It's similar to the examples given in the SDK, but eliminates all the extra garbage of creating custom C# assemblies, enabling the SQL FILESTREAM, etc. You'll need to make sure both the LOB SDK and the Adapter Pack are installed before beginning. First, create a test database call WCFSQLTest, then create a table and a stored proc, using the following scripts: CREATE TABLE [dbo].[TestData]( [TestDataId] [int] IDENTITY(1,1) ......

Posted On Tuesday, October 19, 2010 1:15 PM

BizTalk - Failed while creating a service
I recently was testing some new functionality in a BizTalk solution by adding it to a second orchestration (before I went screwing around with my main one...) and received an error in the event log when dropping a file to the receive location: "xlang/s engine event log entry: Failed while creating a <Orchestration Name> service." (the full stack trace is shown at the end of this post) So, I tried to simplify things - I deleted that orchestration and started a new one, with just send and receive ......

Posted On Thursday, October 7, 2010 9:29 AM

BizTalk 2009 update available on Windows Update
I've never seen this before, a BT update on Windows Update: Update for BizTalk Server 2009 (KB2252691) This update fixes an issue that prevents the ENTSSO service from starting, after installing .NET Framework 4. The registration of an assembly used by the Enterprise Single Sign-On Service to access SQL Server does not specify the correct version of the .NET Framework. When .NET Framework 4 is installed, the assembly will try to use the newer framework and then fail to load ......

Posted On Wednesday, September 29, 2010 8:34 AM

BizTalk - keeping the GAC clean (continued)
After my last post, I discovered a side effect of registering the BizTalk Assembly Viewer. The Assembly Viewer is seen, essentially, as a system drive, but one that opens VERY slowly. The side effect is that when you're in Microsoft Office (and possibly other apps) and try to Save As..., the file dialog hangs. I'm not sure if it will eventually respond, but I got tired of waiting and simply unregistered the Assembly Viewer. To unregister: 1. Open up a Visual Studio Command Prompt 2. Navigate to <BizTalk ......

Posted On Tuesday, August 24, 2010 10:08 AM

BizTalk - keeping the GAC clean
Chances are that for anyone running a development BizTalk machine, you've deployed quite a few solutions as you've tested various things. It's easy enough to delete them from the BTS Administration Console with a right-click, but (assuming you've kept the default properties) they're also sitting in the GAC as well. In most cases this won't cause a problem, but eventually you may run into the dreaded "Message can not be serialized as the schema <schema name> could not be located. Either the ......

Posted On Tuesday, August 10, 2010 8:47 AM

BizTalk Orchestration & Port Tutorial Part 2
In Part 1 I showed how to create and publish a simple Orchestration demo. Now we’ll finish configuring it in the admin console and test it. Open the BizTalk Server 2009 Administration Console, and expand BizTalk Server 2009 Administration, then Applications. You should have an entry for OrchestrationPortDemo – expand it as well. First, we’ll add the Receive Port – the place that we’ll drop the test file. Right-click on Receive Ports and select New One-way Receive Port. On the General tab, name it ......

Posted On Friday, March 19, 2010 1:59 PM

Simple BizTalk Orchestration & Port Tutorial
(This is a reference for a lunch & learn I'm giving at my company) This demo will create a BizTalk process that monitors a directory for an XML file, loads it into an orchestration, and drops it into a different directory. There’s no real processing going on (other than moving the file from one location to another), but this will introduce you to Messages, Orchestrations and Ports. To begin, create a new BizTalk Project names OrchestrationPortDemo: When the solution has been created, right-click ......

Posted On Friday, March 19, 2010 12:26 PM

Copyright © Bill Osuch | Powered by: