可以修改 BizTalk Server 中提供的现有 EDI 架构。 当你和你的贸易伙伴已就标准架构的修改达成一致,并且可能更改了相关的消息实现准则(MIG)文件时,可以在 Visual Studio 的 BizTalk 编辑器中修改架构。
注释
某些架构修改(跨字段验证和 HIPAA 子文档拆分)涉及对 EDI 架构中的注释的更改。 无法在 BizTalk 编辑器中进行这些更改,但可以在文本编辑器(如记事本)中进行更改。
先决条件
必须以 BizTalk Server 管理员组的成员身份登录。
架构命名约定
EDI 架构由其根名称和命名空间标识。 不能在具有相同根名称和命名空间的同一 BizTalk 组中部署两个架构。 不能修改任何 EDI 架构的根名称,也不能添加到根名称,因为根名称必须包含标准命名约定中的版本和文档类型。 因此,如果要在同一 BizTalk 组中部署两个具有相同根名称的架构,则必须为每个架构使用不同的命名空间。
对于两个或更多不同的贸易合作伙伴,公司在同一 BizTalk 组中部署相同架构的不同版本并不少见。 在这种情况下,这两个架构具有相同的版本和相同的文档类型。 若要部署这两个架构,必须为每个架构使用不同的命名空间。
EDI 架构更改
可以在 Visual Studio 中对 EDI 架构进行以下更改:
要执行的操作 | 执行此操作 |
---|---|
更改枚举 (如代码列表中的值列表) |
在元素的属性中,打开 枚举编辑器 ,向枚举列表添加值或删除值。 |
更改数据元素的可选性 | 更改 Min Occurs 属性。 将其更改为 0,以使字段可选或设置为 1 以使其是必需的。 |
更改数据元素可在文件中显示的最大次数 | 更改 Max Occurs 属性。 |
更改数据元素中的字符数 | 更改 Length 属性。 |
更改数据元素的数据类型 | 更改 基本数据类型 或 日期类型 属性。 |
添加自定义字段 | 插入子字段元素架构节点并设置其属性。 注意: 不允许将子字段属性添加到 EDI 架构中的记录,因为无法保证元素序列。 尝试添加子字段属性会导致架构无效。 只能将子字段元素添加到 EDI 架构中的记录。 |
添加自定义记录 | 插入子记录架构节点,设置其属性,然后添加子字段元素。 |
删除自定义字段或记录 | 删除包含其子字段元素的自定义域或自定义记录。 |
启用跨字段验证 | 在架构的 appinfo 部分中的批注中将跨字段验证标志设置为 “是”。 此标志是 X12ConditionDesignator_Check (对于 X12 或 HIPAA 架构)或 EdifactDependencyRule_Check (对于 EDIFACT 架构)。 通过指定关系条件(X12 和 HIPAA)或依赖项规则(EDIFACT)为特定元素启用跨字段验证。 有关详细信息,请参阅 配置跨字段验证。 还需要将 Edi 类型验证 属性设置为 “是”。 默认情况下,针对 HIPAA 架构启用了跨字段验证。 |
启用 HIPAA 子文档拆分 | 在可以在其中设置子文档拆分的 HIPAA 架构之一中,将架构 的subdocument_break 和 Split_Without_Sibling_Data 属性设置为 “是 ”,并将架构中特定元素 的 subdocument_creation_break 属性设置为 “是”。 还需要将 入站批处理选项 协议属性设置为 将交换拆分为事务集。 有关详细信息,请参阅 拆分 HIPAA 子文档。 |
向 HIPAA 文档添加触发器字段 | 可以允许 EDI 反汇编程序基于称为触发器字段的限定元素为 HIPAA 文档段创建唯一的 XML 记录。 必须指定描述段和触发器值的属性,以便为段创建唯一的 XML 记录。 有关详细信息,请参阅 HIPAA 架构触发器字段注释。 |
将段添加到 X12 事务集 | 向 X12 事务集添加新段时,段名称的前三个字符将用作段标识符。 因此,我们建议命名一个段,以便前三个字符是唯一的。 |
向 HIPAA 事务集添加循环 | 向 HIPAA 事务集添加新循环时,建议命名循环以在名称中包含“循环”。 循环的示例格式为“TS837_2010AB_Loop”。 注意: 循环中的第一个段是必需的(段的 minOccurs 必须等于 1),以避免歧义。 |
将“任何订单循环”添加到 HIPAA 事务集 | 当事务集具有具有不同语义的等效段时,必须在 SubLoop 中定义它们。 具有 <xs:all> 的 XML 注释的 SubLoop 允许等效段以任意顺序出现。 建议将“任意顺序循环”命名为在循环名称中包含“SubLoop”。 示例格式为“TS837Q1_2010A_SubLoop” 注意: 任何订单循环的元素必须仅在循环中发生一次。 SubLoop 的同级必须将 maxOccurs 设置为 1,以避免歧义。 |
在 BizTalk 编辑器中修改现有 EDI 架构
在 Visual Studio 中,添加要修改到项目的架构,并在 BizTalk 编辑器中打开架构。
注释
可以通过单击“架构编辑器”屏幕底部的 EDI 选项卡,以图形形式显示架构。 使用此表格格式导航架构的节点要容易得多。
若要更改数据元素或记录的属性,请单击 BizTalk 编辑器左窗格中的相应节点,并在“属性”窗口中更改其属性。
若要更改枚举中的值,请在 “属性 ”窗格中选择枚举,然后单击省略号以打开 枚举编辑器。 根据需要在值列表中添加或删除值,确保“ 值 ”窗格中每行都有一个值。 单击 “确定” 。
若要将自定义字段添加到架构,请右键单击 BizTalk 编辑器控制台树中的记录节点,指向 “插入架构节点”,然后单击“ 子字段元素”。 命名数据元素,然后将数据元素拖动到记录中的相应位置。 根据需要设置自定义字段的属性。
注释
不允许将子字段属性添加到 EDI 架构中的记录,因为无法保证元素序列。 尝试添加子字段属性会导致架构无效。
若要将自定义记录添加到架构,请右键单击架构编辑器控制台树中的记录节点,指向 “插入架构节点”,然后单击“ 子记录”。 将记录命名,然后将记录拖动到架构中的相应位置。 向记录添加至少一个数据元素。 根据需要设置自定义记录的属性。
对架构进行所需更改后,可以通过单击根节点(<架构>),然后更改目标命名空间属性来更改应用于架构的命名空间。
保存该架构。
通过在解决方案资源管理器中右键单击架构并单击“ 验证架构”来验证架构。
注释
Validate Schema 命令将验证 EDI 架构,因为根节点(<架构>)的架构编辑器扩展属性设置为 EDI 架构编辑器扩展。
修改现有 EDI 架构中的批注属性
在文本编辑器(如记事本)中打开架构。
若要启用跨字段验证,请继续执行如下步骤。 有关详细信息,请参阅 配置跨字段验证。
在架构顶部的 appinfo 批注中,对于 X12 或 HIPAA 架构,将交叉字段验证标志 X12ConditionDesignator_Check 设置为 是,而对于 EDIFACT 架构,将 EdifactDependencyRule_Check 设置为 是。
注释
默认情况下,BizTalk Server HIPAA 架构的跨字段验证标志为 “是 ”。
在特定元素的批注中,指定元素的关系条件(X12 或 HIPAA)或依赖项规则(EDIFACT)。 有关这些设置的详细信息,请参阅 交叉 Field-Segment 验证。
注释
在相关协议的“协议属性”对话框的单向协议选项卡的“验证”页(“事务集设置”部分)中,确保已选择 EDI 类型验证属性。
若要启用 HIPAA 子文档拆分,请按以下步骤进行。 有关详细信息,请参阅 拆分 HIPAA 子文档。
在架构顶部的 appinfo 批注中,将 subdocument_break 和 Split_Without_Sibling_Data 标志设置为 “是”。
在特定元素的 appinfo 批注中,请查看 subdocument_creation_break 标志,并将其设置为 “是”。
注释
在相关协议的“协议属性”对话框的单向协议选项卡的“本地主机设置”页(“交换设置”部分下),确保入站批处理选项属性设置为“将交换拆分为事务集”。