One of the more frustrating curiosities I’ve encountered in developing HL7 solutions for BizTalk is the 1 schema rule for the HL7 Accelerator. Only 1 schema with the Microsoft namespace is allowed for a message type (i.e. only one http://microsoft.com/HealthCare/HL7/2X#ADT_A08_GLO_DEF ) in a BizTalk 2006 server group. This was true, even if the assemblies containing the schema had different version numbers.
This simple little restriction causes more grief than one might think. Imagine what you have to do to update a schema after numerous solutions that depend on the schema are deployed to your BizTalk Group. That’s right, between backing up, removing, installing, re-installing, testing and making a sacrifice to the computer gods, you’ve lost your weekend.
However, last week I read that Microsoft improved BizTalk Project integration in Visual Studio making it easier to version and deploy projects with the BizTalk 2009 release. So I made a few needed updates to our canonical HL7 Schema project, incremented the assembly version, and deployed it just for kicks (yeah I know … I need a life). I then ran a few test messages through my dev system expecting it to throw an error … but was pleasantly surprised to see properly formatted messages coming out of my test app. I did a few more tests just to be sure and confirmed that this indeed was working.
Ultimately what I discovered is this:
- We now have the ability to deploy multiple versions of assemblies/schemas for use with the HL7 Accelerator in BizTalk 2009.
- The deployed Schema with the highest Assembly Version number is automatically utilized by referencing assemblies
(unless you set “Specific Version” to true in your referencing assemblies when referencing the Schema’s DLL in question). - Projects can be updated individually at your leisure to make use of new functionality.
- Once all projects have been updated and re-deployed, you can then (and only then) remove references to the older assembly versions from your resources folder in BizTalk. For those who are inclined to just “Get er Done” and move on, the older versions of the Assembly can be left forever more.
All-in-all … much improved over BizTalk 2006!
Thanks,
- D