none
BizTalk 2010 HL7 DASM generating wrong version ACK RRS feed

  • Question

  • For no apparent reason BizTalk 2010 on my dev machine has decided it no longer likes generating ACKs for 2.3.1 messages properly anymore.

    The message context and MSH segment before and after the pipeline component properly identify the version of the message as 2.3.1.

    The ACK Body segment that comes out though is the 2.5+ ack, ACK_25_GLO_DEF, instead of _24_

    So, when the next part of the application is listening on context of this message that says it is _24_ it fails Xml schema validation because the body is actually from the _25_ structure.

    My question: What inputs make the DASM choose the ACK_24_ or the ACK_25_ schemas for automatic ACK generation?

    I have dived as deep as I can to try to figure this out. I need to get this environment fixed asap as I am unable to develop and debug the system while it is non functional.

    Edit: Actually this is even weirder. The BodySegment of the DASM generated ACK looks like this:

    <ns0:ACK_24_GLO_DEF xmlns:ns0="http://microsoft.com/HealthCare/HL7/2X">
    <MSA_MessageAcknowledgment>
    <MSA.1_AcknowledgmentCode>AE</MSA.1_AcknowledgmentCode> 
    <MSA.2_MessageControlId>NWHCWDMZMJIUBRVSCYW</MSA.2_MessageControlId> 
    </MSA_MessageAcknowledgment>
    <ERR_Error><ERR_2_ErrorLocation><ERL_0_SegmentId><ERL_0_0_StringData>OBX_ObservationResultSegment</ERL_0_0_StringData></ERL_0_SegmentId><ERL_1_SegmentSequence><ERL_1_0_Numeric>1</ERL_1_0_Numeric></ERL_1_SegmentSequence><ERL_2_FieldPosition><ERL_2_0_Numeric>4</ERL_2_0_Numeric></ERL_2_FieldPosition></ERR_2_ErrorLocation><ERR_3_Hl7ErrorCode><CWE_0_Identifier><CWE_0_0_StringData>HL7nnnn</CWE_0_0_StringData></CWE_0_Identifier><CWE_1_Text><CWE_1_0_StringData>Required field is missing</CWE_1_0_StringData>...</CWE_1_Text><CWE_2_NameOfCodingSystem><CWE_2_0_CodedValueForHl7DefinedTables>101</CWE_2_0_CodedValueForHl7DefinedTables></CWE_2_NameOfCodingSystem></ERR_3_Hl7ErrorCode><ERR_4_Severity><ID_0_CodedValueForHl7DefinedTables><ID_0_0_CodedValueForHl7DefinedTables>E</ID_0_0_CodedValueForHl7DefinedTables></ID_0_CodedValueForHl7DefinedTables></ERR_4_Severity><ERR_12_HelpDeskContactPoint><XTN_11_UnformattedTelephoneNumber><XTN_11_0_StringData> </XTN_11_0_StringData></XTN_11_UnformattedTelephoneNumber></ERR_12_HelpDeskContactPoint></ERR_Error><ERR_Error><ERR_2_ErrorLocation><ERL_0_SegmentId><ERL_0_0_StringData>OBX_ObservationResultSegment</ERL_0_0_StringData></ERL_0_SegmentId><ERL_1_SegmentSequence><ERL_1_0_Numeric>2</ERL_1_0_Numeric></ERL_1_SegmentSequence><ERL_2_FieldPosition><ERL_2_0_Numeric>4</ERL_2_0_Numeric></ERL_2_FieldPosition></ERR_2_ErrorLocation><ERR_3_Hl7ErrorCode><CWE_0_Identifier><CWE_0_0_StringData>HL7nnnn</CWE_0_0_StringData></CWE_0_Identifier><CWE_1_Text><CWE_1_0_StringData>Required field is missing</CWE_1_0_StringData></CWE_1_Text><CWE_2_NameOfCodingSystem><CWE_2_0_CodedValueForHl7DefinedTables>101</CWE_2_0_CodedValueForHl7DefinedTables></CWE_2_NameOfCodingSystem></ERR_3_Hl7ErrorCode><ERR_4_Severity><ID_0_CodedValueForHl7DefinedTables><ID_0_0_CodedValueForHl7DefinedTables>E</ID_0_0_CodedValueForHl7DefinedTables></ID_0_CodedValueForHl7DefinedTables></ERR_4_Severity><ERR_12_HelpDeskContactPoint><XTN_11_UnformattedTelephoneNumber><XTN_11_0_StringData> </XTN_11_0_StringData></XTN_11_UnformattedTelephoneNumber></ERR_12_HelpDeskContactPoint></ERR_Error></ns0:ACK_24_GLO_DEF>

    To save you time, that XML is wrapped in ACK_24_GLO_DEF but the inside of the ERR_Error tag is from the ACK_25_GLO_DEF schema!

    How is that even remotely possible or sane?! It is the correct version up until the ERR segment is constructed, and it is choosing the wrong structure then. 

    • Edited by Bon Franklin Monday, April 21, 2014 10:55 PM clarifying
    Monday, April 21, 2014 9:44 PM

Answers

  • Hi Bon,

    Have you installed any recent updates?

    Please check modified date of Dasm exes and their respective configuration files.

    PipelineTools

    Replacing these exes with the exes from any other server where it is working fine might work for you.


    If this answers your question please mark as answer. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

    • Marked as answer by Bon Franklin Tuesday, April 22, 2014 6:13 PM
    Tuesday, April 22, 2014 6:21 AM

All replies

  • Hi Bon,

    Have you installed any recent updates?

    Please check modified date of Dasm exes and their respective configuration files.

    PipelineTools

    Replacing these exes with the exes from any other server where it is working fine might work for you.


    If this answers your question please mark as answer. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

    • Marked as answer by Bon Franklin Tuesday, April 22, 2014 6:13 PM
    Tuesday, April 22, 2014 6:21 AM
  • That did the trick!

    I had installed no new patches for BizTalk, just Windows (2008R2) updates and the versions from prod appeared to be the exact same. I just updated the GAC with the prod hl7 assemblies and it started working.

    I wonder how it broke this way. Very weird.

    Thanks again.

    Tuesday, April 22, 2014 6:13 PM