修改 EDI 結構描述
您可以修改隨附于 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 屬性。 |
變更資料元素的資料型別 | 變更 [基底資料類型 ] 或 [日期類型] 屬性。 |
加入自訂欄位 | 插入子欄位項目結構描述節點,並設定其屬性 (Property)。 注意: 不允許將子欄位屬性新增至 EDI 架構中的記錄,因為無法保證元素序列。 加入子欄位屬性 (Attribute) 會產生無效的結構描述。 您只可以在 EDI 結構描述的記錄中加入子欄位項目。 |
加入自訂記錄 | 插入子欄位記錄結構描述節點,設定其屬性 (Property),然後加入子欄位項目。 |
刪除子欄位或記錄 | 刪除自訂欄位,或是包括子欄位項目的自訂記錄。 |
啟用欄位交互驗證 | 在架構的 appinfo 區段中,將批註中的交叉欄位驗證旗標設定為 [是]。 此旗標是 X12 或 HIPAA 架構) 的 X12ConditionDesignator_Check (,或 EDIFACT 架構) EdifactDependencyRule_Check (。 透過指定關係條件 (X12 和 HIPAA) 或相依性規則 (EDIFACT),啟用針對特定項目的欄位交互驗證。 如需詳細資訊,請參閱 設定跨欄位驗證。 您也需要將 Edi 類型驗證 屬性設定為 yes。 預設會針對 HIPAA 結構描述啟用欄位交互驗證。 |
啟用 HIPAA 子文件分割 | 在您可以設定子檔分割的其中一個 HIPAA 架構中,將 架構的subdocument_break 和 Split_Without_Sibling_Data 屬性設定為 yes ,並將架構中特定元素的 subdocument_creation_break 屬性設定為 yes。 您也需要將 輸入批次處理選項 合約屬性設定 為 [分割交換為交易集]。 如需詳細資訊,請參閱 分割 HIPAA 子檔。 |
新增觸發欄位至 HIPAA 文件 | 您可以允許 EDI 解譯器使用稱為觸發欄位的合格項目,為 HIPAA 文件建立唯一的 XML 記錄。 您必須指定描述區段的屬性與觸發值,才能為區段建立唯一的 XML 記錄。 如需詳細資訊,請參閱 HIPAA 架構觸發程式欄位注釋。 |
新增區段至 X12 交易集 | 當您新增區段至 X12 交易集時,會使用區段名稱的前 3 個字元做為區段識別碼。 因此,建議您命名區段時,必須讓前 3 個字元是唯一的。 |
新增迴圈至 HIPAA 交易集 | 當您新增迴圈至 HIPAA 交易集時,建議您在迴圈名稱中包含 “Loop”。 迴圈的範例格式為 “TS837_2010AB_Loop”。 注意: 迴圈中的第一個區段是必要 (區段的 minOccurs 必須等於 1) ,以避免模棱兩可。 |
新增 ‘any order loop’ 至 HIPAA 交易集 | 當交易集有多個相同區段具有不同語意時,您必須在子迴圈中定義它們。 具有 xs:all > 之 XML 批註的 < SubLoop 允許依任何順序發生對等的區段。 建議您在 ‘any order loop’ 的迴圈名稱中包含 “SubLoop”。 範例格式為 「TS837Q1_2010A_SubLoop」 注意: 任何訂單迴圈的元素只能在迴圈內發生一次。 為避免岐義,子迴圈的同層級項目必須將 maxOccurs 設為 1。 |
若要用 BizTalk 編輯器來修改現有的 EDI 結構描述
在 Visual Studio 中,新增您想要修改至專案的架構,並在 BizTalk 編輯器中開啟架構。
注意
您可以按一下 [架構編輯器] 畫面底部的 [EDI ] 索引標籤,以圖形形式顯示架構。 使用表格式格式的結構描述節點更易於瀏覽。
若要變更資料元素或記錄的屬性,請在 [BizTalk 編輯器] 的左窗格中按一下適當的節點,然後在 [屬性] 視窗中變更其屬性。
若要變更列舉中的值,請在 [屬性] 窗格中選取列舉,然後按一下省略號以開啟[列舉編輯器]。 視需要從值清單中新增或刪除,以確保 [ 值 ] 窗格中每一行都有一個值。 按一下 [確定]。
若要將自訂欄位新增至架構,請以滑鼠右鍵按一下 BizTalk 編輯器主控台樹中的記錄節點,指向 [插入架構節點],然後按一下 [子欄位元素]。 為該資料元素命名,然後將它拖曳到記錄中的適當位置。 視需要設定自訂欄位屬性的屬性。
注意
不可以在 EDI 結構描述中的記錄上加入子欄位屬性 (Attribute),因為這些項目沒有確定的順序。 加入子欄位屬性 (Attribute) 會產生無效的結構描述。
若要將自訂記錄新增至架構,請在 [架構編輯器] 主控台樹中的記錄節點上按一下滑鼠右鍵,指向 [插入架構節點],然後按一下 [ 子記錄]。 為該記錄命名,然後將它拖曳到結構描述中的適當位置。 將至少一個資料元素加入至該記錄。 視需要設定自訂記錄的屬性。
對架構進行所需的變更之後,您可以按一下 [架構] ([架構 > ] <) 的根節點,然後變更 [目標命名空間] 屬性,來變更套用至架構屬性的目標命名空間。
儲存結構描述。
以滑鼠右鍵按一下 方案總管 中的架構,然後按一下 [驗證架構],以驗證架構。
注意
驗證架構命令會驗證 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 旗標為 [是]。
注意
在 [ 本機主機設定 ] 頁面 (的 [ 交換設定 ] 區段底下,) 相關合約 [ 合約屬性 ] 對話方塊的 [單向協定] 索引標籤底下,確定 [ 輸入批次處理] 選項 屬性已設定為 [ 分割交換為交易集]。