扩展的编码支持

默认情况下,HL7 接收管道(BTAHL72X)仅支持 ASCII 编码。 这意味着输入消息中等效值大于 127 的任何字符都将被替换为“?”。 这是因为 ASCII 字符集中没有表示等效值大于 127 的字符。

BizTalk Accelerator for HL7 (BTAHL7) 提供对两种新编码的支持:

  • 西欧语言

  • UTF-8

    创建并生成自定义管道组件以实现扩展编码支持。 自定义管道组件使用 BTAHL7 2.X 反汇编程序。 创建使用自定义管道处理消息的接收位置。 若要测试接收位置和自定义管道,请创建使用 BTAHL7 2.XSendPipeline 的发送端口。

创建自定义管道

  1. 在 Visual Studio 2013 中,添加新的空BizTalk Server项目

  2. 在“解决方案资源管理器”中,右键单击新项目,单击“添加”,然后单击“新建项”。

  3. 在“ 添加新项 ”对话框中,添加新的 接收管道

  4. 从管道工具箱中,将 BTAHL7 2.X 反汇编程序 拖到管道编辑器中,并将其拖放到 “反汇编” 阶段 “放置到”目标上

    注意

    如果 BTAHL7 2.7 反汇编程序不在工具箱中,请在工具箱中右键单击,然后单击“ 选择项”。 在“选择工具箱项”对话框中的“BizTalk 管道组件”选项卡上,选择“BTAHL7 2.X 反汇编程序检查”框,然后单击“确定”。

  5. BTAHL7 2.X 反汇编程序“属性”窗格中,从 “编码字符集 ”下拉列表中选择“ 西欧 ”或“ UTF8 编码”。

    注意

    HL7 仅支持 ASCII (默认) 、西欧和 UTF8 编码。 不要选择其他编码选项,因为 HL7 不支持它们。

  6. 在“文件”菜单上,单击“全部保存” 。

  7. 部署该项目。

    创建新的接收位置以继续。

创建使用自定义管道的接收位置

  1. “开始”菜单上,单击“程序”,指向“BizTalk Server”,然后单击“BizTalk Server管理”。

  2. 在BizTalk Server管理控制台中,依次展开“BizTalk Server管理”、“BizTalk 组”、“应用程序”和“应用程序”,展开为管道程序集指定的应用程序 (默认情况下,BizTalk 应用程序 1) ,右键单击“接收位置”,指向“新建”,然后单击“单向接收位置”。

  3. 在“ 接收位置属性 ”对话框的“ 接收管道 ”下拉列表中,选择创建的自定义管道的名称。 (这是自定义管道对象的名称,而不是 BTAHL7 2X 管道的名称。)

创建发送端口以测试接收位置和管道

  1. “开始”菜单上,单击“程序”,指向“BizTalk Server”,然后单击“BizTalk Server管理”。

  2. 在BizTalk Server管理控制台中,依次展开“BizTalk Server管理”、“BizTalk 组”、“应用程序”和“应用程序”,展开为管道程序集指定的应用程序 (默认,BizTalk 应用程序 1) ,右键单击“发送端口”,指向“新建”,然后单击“静态单向发送端口”。

  3. 在“ 发送端口属性 ”对话框的“ 发送管道 ”下拉列表中,选择“ BTAHL72XSendPipeline”。

测试接收位置和管道

  • 将包含特殊字符的文件,并使用在自定义管道中指定的相同编码保存到接收位置中指定的位置。 输出位置的文件应保留特殊字符。

    注意

    如果尝试处理使用不支持的编码的文件 (请记住,) 仅支持 ASCII、西欧和 UTF8,则会在应用程序事件查看器中记录错误,错误 ID 为 5633。

    注意

    如果要测试为 UTF8 编码配置的自定义管道,则应将字节顺序标记 (BOM) 字符附加到要传递的消息。 如果要测试为西欧编码配置的自定义管道,请不要附加 BOM 字符。