修改 EDI 架构

可以修改 BizTalk Server 中提供的现有 EDI 架构。 如果你和你的贸易合作伙伴已就修改标准架构达成一致,并且可能更改了 (MIG) 文件的相关消息实施指南,则可以在 Visual Studio 的 BizTalk 编辑器中修改架构。

注意

一些架构修改(跨字段验证和 HIPAA 子文档拆分)包含对 EDI 架构中批注的更改。 这些更改无法在 BizTalk 编辑器中完成,但可以在文本编辑器(例如记事本)中完成。

必备条件

必须以 BizTalk Server Administrators 组成员的身份登录。

架构命名约定

EDI 架构通过其根名称和命名空间进行标识。 您不能使用相同的根名称和命名空间将两个架构部署在同一个 BizTalk 组中。 您不能修改任何 EDI 架构的根名称或向根名称添加内容,因为根名称必须包含符合标准命名约定的版本和文档类型。 因此,如果您希望使用相同的根名称将两个架构部署在同一个 BizTalk 组中,则必须为每个架构使用不同的命名空间。

对于公司而言,为两个或更多个不同的贸易合作伙伴将同一架构的不同版本部署在同一个 BizTalk 组中的情况并不少见。 在这种情况下,两个架构将具有相同的版本和相同的文档类型。 若要部署这两个架构,每个架构必须具有不同的命名空间。

EDI 架构更改

可以在 Visual Studio 中对 EDI 架构进行以下更改:

要执行此操作 操作
更改枚举

(例如,代码列表中的值列表)
在元素的属性中,打开 枚举编辑器 ,向枚举列表添加值,或者从枚举列表中删除值。
更改数据元素的可选性 更改 Min Occurs 属性。 将其更改为 0 可使字段成为可选字段;将其更改为 1 可使字段成为必需字段。
更改数据元素可以在文件中出现的最大次数 更改 Max Occurs 属性。
更改数据元素中的字符数 更改 Length 属性。
更改数据元素的数据类型 更改 “基本数据类型”“日期类型” 属性。
添加自定义字段 插入一个子字段元素架构节点并设置其属性。 注意: 不允许向 EDI 架构中的记录添加子字段属性,因为无法保证元素的顺序。 尝试添加子字段属性将导致无效架构。 只能将子字段元素添加到 EDI 架构的记录中。
添加自定义记录 插入一个子记录架构节点并设置其属性,然后添加子字段元素。
删除自定义字段或记录 删除自定义字段或自定义记录及其子字段元素。
启用跨字段验证 将架构 appinfo 部分中批注中的跨字段验证标志设置为 “是”。 此标志是 X12 架构或 HIPAA 架构) 的X12ConditionDesignator_Check (,对于 EDIFACT 架构 ) EdifactDependencyRule_Check (。

通过指定关系条件(X12 和 HIPAA)或依赖规则 (EDIFACT) 为特定元素启用跨字段验证。 有关详细信息,请参阅 配置跨字段验证

还需要将 Edi 类型验证 属性设置为 “是”。

默认情况下,对 HIPAA 架构启用跨字段验证。
启用 HIPAA 子文档拆分 在可以设置子文档拆分的 HIPAA 架构之一中,将架构 的subdocument_breakSplit_Without_Sibling_Data 属性设置为 “是 ”,将架构中特定元素的 subdocument_creation_break 属性设置为 “是”。

还需要将 “入站批处理选项 协议”属性设置为 “拆分交换”作为事务集

有关详细信息,请参阅 拆分 HIPAA 子文档
向 HIPAA 文档添加触发器字段 您可以让 EDI 拆装器根据限定元素(称为触发器字段)为 HIPAA 文档中的一段内容创建唯一的 XML 记录。 必须指定描述段的属性和触发器值,从而为该段创建唯一的 XML 记录。 有关详细信息,请参阅 HIPAA 架构触发器字段注释
向 X12 事务集添加分段 在向 X12 事务集添加新分段时,分段名称的前三个字符用作分段标识符。 因此,建议您命名分段时,前三个字符是唯一的。
向 HIPAA 事务集添加循环 在向 HIPAA 事务集添加新循环时,建议命名循环时名称中包括“Loop”。 循环的示例格式为“TS837_2010AB_Loop”。 注意: 循环中的第一个段是必需的, (段的 minOccurs 必须等于 1) 以避免歧义。
向 HIPAA 事务集添加“任何顺序循环” 当事务集包含具有不同语义的等效分段时,必须在 SubLoop 中字义这些分段。 具有 xs:all> XML 注释的 <SubLoop 允许以任何顺序出现等效段。

建议您在命名“任意顺序循环”时,在循环名称中包含“SubLoop”。 示例格式为“TS837Q1_2010A_SubLoop” 注意: 任何订单循环的元素在循环中只能出现一次。 同级 SubLoop 必须将最大出现次数设置为 1 以避免混乱。

在 BizTalk 编辑器中修改现有 EDI 架构

  1. 在 Visual Studio 中,将要修改的架构添加到项目,并在 BizTalk 编辑器中打开该架构。

    注意

    可以通过单击“架构编辑器”屏幕底部的“ EDI ”选项卡,以图形形式显示架构。 使用此表格格式可更轻松地导航架构节点。

  2. 若要更改数据元素或记录的属性,请单击 BizTalk 编辑器左窗格中的相应节点,然后在“属性”窗口中更改其属性。

  3. 若要更改枚举中的值,请在“ 属性 ”窗格中选择枚举,然后单击省略号以打开 枚举编辑器。 根据需要在值列表中添加或删除值,确保“值”窗格中的每一行都有一个 。 单击 “确定”

  4. 若要向架构添加自定义字段,请右键单击 BizTalk 编辑器控制台树中的记录节点,指向 “插入架构节点”,然后单击“ 子字段元素”。 命名该数据元素,然后将该数据元素拖至该记录中的相应位置。 根据需要设置自定义字段的属性。

    注意

    不允许将子字段属性添加到 EDI 架构中的记录,因为元素顺序将无法保证。 尝试添加子字段属性将导致无效架构。

  5. 若要向架构添加自定义记录,请右键单击“架构编辑器”控制台树中的记录节点,指向“ 插入架构节点”,然后单击“ 子记录”。 命名该记录,然后将该记录拖至该架构中的相应位置。 至少将一个数据元素添加到记录。 根据需要设置自定义记录的属性。

  6. 对架构进行所需更改后,可以通过单击根节点 (架构) <> 然后更改目标命名空间属性来更改应用于架构属性的目标命名空间。

  7. 保存该架构。

  8. 右键单击解决方案资源管理器中的架构并单击“验证架构”来验证架构

    注意

    验证架构” 命令将验证 EDI 架构,因为根节点的 架构编辑器扩展 属性 (<架构>) 设置为 EDI 架构编辑器扩展

修改现有 EDI 架构中的批注属性

  1. 在文本编辑器(如记事本)中打开该架构。

  2. 若要启用跨字段验证,请按如下所示继续操作。 有关详细信息,请参阅 配置跨字段验证

    1. 在架构顶部的 appinfo 注释中,将跨字段验证标志 (X12 或 HIPAA 架构的 X12ConditionDesignator_Check 或 EDIFACT 架构 的EdifactDependencyRule_Check) 设置为 “是”。

      注意

      对于BizTalk Server HIPAA 架构,跨字段验证标志默认为“是”。

    2. 在特定元素的批注中,为元素指定关系条件(X12 或 HIPAA)或依赖规则 (EDIFACT)。 有关这些设置的详细信息,请参阅 跨 Field-Segment 验证

      注意

      “验证 ”页 (“ 事务集设置” 部分下,) 相关协议 的“协议属性 ”对话框的单向协议选项卡,确保选中 “EDI 类型验证 ”属性。

  3. 若要启用 HIPAA 子文档拆分,请按如下所示继续操作。 有关详细信息,请参阅 拆分 HIPAA 子文档

    1. 在架构顶部的 appinfo 注释中,将 subdocument_breakSplit_Without_Sibling_Data 标志设置为 “是”。

    2. 在特定元素的 appinfo 注释中,请参阅 subdocument_creation_break 标志为 “是”。

      注意

      “本地主机设置”页 (相关协议的“协议属性”对话框的单向协议选项卡) 的“交换设置”部分下,确保“入站批处理”选项属性设置为“拆分交换为事务集”。

另请参阅

开发 EDI 架构