HL7 Message Encoding

To extend what I wrote about for the Encoding for HL7 messages post. There are two values that are used for the Message Encoding context properties. It isn't obvious but follow the logic:

According to Extended Encoding Support page in the Note section of step 5 you can only choose Western European or UTF8, so if I look at the Encoding Class documentation, the table below are the values you can use:

Value To Set Name Display
65001 utf-8 Unicode (UTF-8)
850 ibm850

Western European (DOS)

Event ID 5720, BTAHL7Schemas.MessageEncoding

In a follow up to my initial discovery of the new context property (largely undocumented as far as I can tell) called BTAHL7Schemas.MessageEncoding we were converting a working process from 2004 to 2006 R2 and we started getting this error:

Event Type: Error
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5720
Date: Date
Time: Time
User: N/A
Computer: ComputerName
Description:
There was a failure executing the send pipeline: "BTAHL72XPipelines.BTAHL72XSendPipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Assembler" Send Port: "MLLPSendPort" URI: "localhost:11000" Reason: Object reference not set to an instance of an object.

So we put the MessageEncoding in and then started getting the following error:

Event Type: Error
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5720
Date: Date
Time: Time
User: N/A
Computer: ComputerName
Description:
There was a failure executing the send pipeline: "BTAHL72XPipelines.BTAHL72XSendPipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Assembler" Send Port: "HL7_SP" URI: "C:\Labs\HL7_Outbound\%MessageID%.txt" Reason: Specified cast is not valid.

Low and behold, hot fix 947261 that deals with these two error message. If you check version the following file Microsoft.solutions.btahl7.hl72fasm.dll, ours was at 2.0.302.0

Acknowledgment Event ID: 5778 - The published message message could not be routed because no subscribers were found

Another one of the gotchas (yes, my blog seems to be full of them) is the 'association' of the acknowledgment with the original message that  is generated from the BTAHL7 receive pipeline. In the BTAHL7 Configuration explorer, by default the Acknowledgment settings are as follows:

partnerdefaultsetup

Notice that the MSH15 and MSH16 overrides are set to AL- Always generate the System and Application Acknowledgment, and that below the Route ACK to send pipeline on request-response receive port is checked. This means that the default behavior of the pipeline is to generate two acknowledgments, and route one of them back along the receive location's send pipeline. What is it supposed to do with the second acknowledgment that it created?

That is where the error message is generated: Event ID 5778: The Messaging engine failed to process a message submitted by adapter: MLLP Source URL:{whaver server:port} Details: The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted.

ackeventerror

The resolution: a simple solution is to create a send port for this data and drop it off as a file.

Not quite the elegant solution that I want to deal with, as now there is a maintenance aspect of making sure that this folder is purged.

Let's just not create the application acknowledgment. You do this by changing the parties definition from Original to Enhanced mode and turning the application acknowledgment to NE (never).

newpartnersetup

MS-HUG August 26-27

MicrosoftHUG_GoldenTicket_only

Is anyone going there this year?

Let me know.

Encoding for HL7 messages

I was helping a friend with a HL7 question about how to change the MSH1, and I decided to make sure that my syntax was correct so I looked at the help and

BAM

I noticed that there is a new context property

DoorbellFinalMessage(BTAHL7Schemas.MessageEncoding) = 65001;

Using BTAHL7 pipelines in multiple applications

A question was recently posted on the forums on how you can use the default pipelines in multiple applications.

I actually was stumped when I started testing the beta of BizTalk 2006 also.

The steps are pretty easy:

In your new application, right click the application and in the context menu click properties

context menu

In the properties click on references and Add BizTalk Application 1 (which is where the pipeline is installed to)

references

Now you can access the pipeline within your own application.

BizTalk Guru Newsletter - BAM Uninstall

Stephen Thomas hit me up to write an article for his newsletter (if you aren't automatically getting it, you should sign up for it here).

I wrote about how to automatically uninstall a BAM definition as part of the MSI uninstall. You can read about it here: http://www.biztalkgurus.com/newsletter/TheBizTalker-Volume-11.html

The one dilemma I have is that I cannot seem to figure out how to get a batch script to resolve the installation path by using this code in a batch script:

for /f "skip=2 tokens=2,*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\BizTalk Server\3.0" /v "InstallPath"') do SET BTSbm="%%~bTracking\bm.exe remove-all -DefinitionFile:"

I am looking into it and will update this blog entry when I finally do figure it out.

HL7 Accelerator installation on a 64 bit machine

If you are installing the HL7 accelerator on a 64 bit development environment, make sure that you install both BizTalk 2006 R2 and the HL7 components in the \Program Files (x86)\ folder.

If you don't the HL7 projects (BTAHL72X Common, ...) will not show up as available as BizTalk projects. You will still be able to create HL7 schemas using the new button'd dialog box, but the underlying projects are not available.

HL7 accelerator 1.3 versus 2.0

One of the most noticeable differences between the 2006 and the 2006 R2  is the dialog on creating new schemas. Here is what it looks like in 2006

oldHL7Dialog

I never quite got that pressing Finish created the schema, and Cancel closed the dialog box. In my meetings with the developers, I asked if that could be changed.

Viola!

newHL7Dialog

Custom Trigger Message Update

I have updated my custom trigger message entry here since a friend tried unsuccessfully to follow my instructions.

I have added a few more pictures and have noted some gotcha's.

«August»
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456