步骤 12:配置业务流程形状

在此步骤中,完成业务流程形状的配置,以删除配置智能标记不足。 将 DoorbellOutputMessage 指定为第一个转换过程的输出,将 DoorbellMap.btm 指定为该过程中使用的映射。 然后,将 DoorbellFinalMessage 指定为第二个转换过程的输出,并添加使用其他字段数据扩充消息的表达式。

配置业务流程形状

  1. 在 Visual Studio 的业务流程设计视图图面上,单击 ConstructMessage_1 形状。

  2. “属性” 窗口中,单击“ 构造的消息 ”属性,从下拉列表中选择“ DoorbellOutputMessage ”,然后按 Enter

  3. 在业务流程设计视图图面上,单击ConstructMessage_1形状内部的 DoorbellTransform 形状。 在 “属性” 窗口中,单击“ 映射名称”,然后单击属性字段中的省略号 (...) 按钮。

  4. 在“转换配置”对话框中,选择“ 现有映射”。 在 “完全限定的映射名称 ”下拉列表中,单击“ BTAHL7_Project.DoorbellMap”。

  5. 单击左窗格中的“ ”。

  6. 单击“ 变量名称” 下的空框,然后从下拉列表中单击“ DoorBellInputMessage ”。

  7. 在左窗格中单击“ 目标 ”。

  8. 单击“ 变量名称” 下的空框,然后单击下拉列表中的“ DoorbellOutputMessage ”。

  9. 单击“确定”保存更改。

  10. 在业务流程“设计”视图图面上,单击 ConstructMessage_2 形状。

  11. “属性” 窗口中,单击“ 构造的消息”,从下拉列表中选择“ DoorbellFinalMessage ”,然后按 Enter

  12. 在业务流程设计视图图面上,单击ConstructMessage_2形状内的 DoorbellFinalTransform 形状。 在 “属性” 窗口中,单击“ 表达式”,然后单击省略号 (...) 按钮打开 BizTalk 表达式编辑器。

  13. 在 BizTalk 表达式编辑器中,单击文本字段并粘贴以下文本:

    HeaderInfo = new System.Xml.XmlDocument();
    HeaderInfo.LoadXml("<ns0:MSH_25_GLO_DEF xmlns:ns0=\"http://microsoft.com/HealthCare/HL7/2X\">
        <MSH><MSH.2_EncodingCharacters>^~\\&</MSH.2_EncodingCharacters><MSH.3_SendingApplication>
        <HD.0_NamespaceId>SrcApp</HD.0_NamespaceId><HD.1_UniversalId>SrcAppUid</HD.1_UniversalId>
        </MSH.3_SendingApplication><MSH.4_SendingFacility><HD.0_NamespaceId>srcFac</HD.0_NamespaceId>
        <HD.1_UniversalId>srcFacUid</HD.1_UniversalId></MSH.4_SendingFacility><MSH.5_ReceivingApplication>
        <HD.0_NamespaceId>dstApp</HD.0_NamespaceId><HD.1_UniversalId>dstAppUid</HD.1_UniversalId>
        </MSH.5_ReceivingApplication><MSH.6_ReceivingFacility><HD.0_NamespaceId>dstFac</HD.0_NamespaceId>
        <HD.1_UniversalId>dstFacUid</HD.1_UniversalId></MSH.6_ReceivingFacility><MSH.7_DateTimeOfMessage>
        <TS.1>200307092343</TS.1></MSH.7_DateTimeOfMessage><MSH.8_Security>sec</MSH.8_Security>
        <MSH.9_MessageType><CM_MSG.0_MessageType>ADT</CM_MSG.0_MessageType>
        <CM_MSG.1_TriggerEvent>A04</CM_MSG.1_TriggerEvent></MSH.9_MessageType>
        <MSH.10_MessageControlId>msgid2134</MSH.10_MessageControlId><MSH.11_ProcessingId>
        <PT.0_ProcessingId>P</PT.0_ProcessingId></MSH.11_ProcessingId><MSH.12_VersionId>
       <VID_0_VersionId>2.2</VID_0_VersionId></MSH.12_VersionId></MSH></ns0:MSH_25_GLO_DEF>");
    
    DoorbellFinalMessage.MSHSegment = HeaderInfo;
    DoorbellFinalMessage.BodySegments = DoorbellOutputMessage;
    DoorbellFinalMessage.ZSegments = "";
    
    DoorbellFinalMessage(BTAHL7Schemas.MSH1) = 124;
    DoorbellFinalMessage(BTAHL7Schemas.MessageEncoding) = 65001;
    DoorbellFinalMessage(BTAHL7Schemas.MSH2) = "^~\\&";
    DoorbellFinalMessage(BTAHL7Schemas.ParseError) = false;
    DoorbellFinalMessage(BTAHL7Schemas.ZPartPresent) = false;
    DoorbellFinalMessage(BTAHL7Schemas.SegmentDelimiter2Char) = true;
    
    
  14. 单击“确定”。

    重要

    在“HeaderInfo.LoadXml”表达式中,删除表达式中的回车符和空格。 “HeaderInfo.LoadXml”语句应位于一行中。

    注意

    上述文本的第一个块是硬编码的 XML 标头的示例。 BTAHL7 序列化程序需要标头段。 可以根据环境需求自定义这些标头值。 上述文本的第二个块定义多部分消息中所需的三个消息部分。 BTAHL7 序列化程序需要多部分消息。 上述文本的第三个块包含 BTAHL7 序列化程序为了将 XML 消息序列化为 HL7 平面文件消息而检查的提升属性。

    继续执行 步骤 13:创建和配置端口

另请参阅

消息充实教程