EDI 字元集
BizTalk Server 會使用字元集來驗證整個EDI交換。 用於 X12 編碼訊息以及 EDIFACT 或 KEDIFACT 編碼訊息的字元集會以不同方式決定。
EDIFACT 字元集
EDIFACT 編碼交換以其字元集而言是能夠自我描述的, 所使用的是 UNB1 資料項目。 EDIFACT 要求標記名稱和分隔符號都必須是 ASCII 類型,因此您可以找出 UNB1 來為交換的其餘部分套用相關的字碼頁。
處理傳入的EDIFACT訊息時,BizTalk Server 會決定要用於 UNB1 資料元素之訊息的字元集。 不需要在貿易夥伴合約中設定。
處理傳出EDIFACT訊息時,BizTalk Server 使用貿易夥伴合約或後援合約中的字元集。 如果在 [EDIFACT 後援設定] 對話方塊的 [合約] 索引標籤中定義合約) 或 [EDIFACT 後援設定] 對話方塊的 [字元集和分隔符] 頁面, (未) 定義任何合約,則您可以在 [EDIFACT 後援設定] 對話方塊的 [字元集和分隔符] 頁面中設定 UNB1 數據項 (。 UNB1.1 是稱為「語法識別項」的必要複合資料項目。 UNB1.2 是 EDIFACT 字元集的版本。 UNB1 資料項也可用來在儲存整個屬性集時驗證在貿易夥伴管理使用者介面中輸入的屬性值, (當您從字段移出或顯示不同的頁面) 時。
可用的字元集包括 KECA、UNOA、UNOB、UNOC、UNOD、UNOE、UNOF、UNOG、UNOH、UNOI、UNOJ、UNOK、UNOX 和 UNOY。 預設值為 [UNOB]。 這些層級的完整字元集是在「ISO 9735 EDIFACT 語法規則」中指定。
注意
如果在內送或外寄交換中遇到 UNOC 字元集,「EDI 解譯器」或「EDI 組合器」會使用 Latin-1 字碼頁,而不是 UTF-8 字碼頁。 這是因為 UTF-8 不是 UNOC 的超集。 UNOC 中可接受的部分字元若當成 UTF-8 處理,會導致交換遭擱置。
某些 EDIFACT 字元集中的字元可能是雙位元組字元,而其他 EDIFACT 字元集中的字元則可能是單一位元組字元。 因此,當您根據交換中的字元數來設定批次的釋放準則時,交換中的位元組數可能會根據使用的字元集而有所不同。
[UNA 區段] 和 [區段名稱 UNB] 限制只能使用 ASCII 字元集中的值。
KEDIFACT 字元集
如同 EDIFACT,KEDIFACT 編碼交換的字元集也是在 UNB1 資料項目中建立。 就 EDIFACT 而言,當處理 KEDIFACT 交換時,BizTalk Server 所要套用的字元集是在雙向合約索引卷標的 Charset 和 Separators 頁面的數據元素 UNB1 中建立, (如果合約定義) 或 EDIFACT 後援設定] 對話方塊的 [字元集和分隔符] 頁面) 則為 (。 標識子 (UNB1.1) 元素的值必須設定為 KECA。
X12 字元集
當 BizTalk 接收管線或傳送管線執行 X12 編碼訊息的 EDI 驗證時,它會使用管線的 CharacterSet 屬性中選取的 X12 字元集。 若要設定這個屬性,請開啟接收位置或傳送埠的 [屬性] 對話方塊,然後按一下接收或傳送管線旁邊的省略符號,再設定「解譯器」或「組合器」的 [CharacterSet] 屬性。
管線的 CharacterSet 屬性是用來驗證 X12 交換,因為不同於 EDIFACT 或 KEDIFACT,X12 編碼的交換不會根據其字元集自我描述。 使用 ISO 或 UTF 編碼讀取 ISA 標頭可能會導致不同的合約查閱值。 因此,BizTalk 必須知道在合約查閱 (取得合約) 適用的字元集時,用來處理訊息的適用字元集。
如果合約是在 X12 後援 [設定] 對話方塊的 [後援合約] 索引標籤中定義) 或 X12 後援合約索引卷標的 [Charset 和分隔符] 頁面, () 定義合約後援合約索引標籤中的 [字元集] 和 [ (分隔符] 頁面,則指定要用於合約驗證的 X12 字元集。 不過,BizTalk 只有在儲存整個屬性集時 (不是按下 TAB 鍵跳離欄位或顯示不同頁面時),才會使用這些設定來驗證相關屬性的輸入值。 接收管線或傳送管線會忽略這些字元集屬性。
注意
如果合約或後援合約中指定的字元集不符合為接收或傳送管線選取的字元集,則可能會產生訊息驗證錯誤。 例如,如果合約中的 X12 字元集屬性設定為 Extended,而管線屬性中的 X12 字元屬性設定為 Basic。
可用的字元集包括「基本」和「擴充的」(如<X12 規格/實作指南>所述) 以及 UTF8/Unicode。 預設值為 UTF8。
注意
在雙向合約或後援合約中,針對數據元素分隔符、元件元素分隔符和區段終止符輸入的值,僅限於 ASCII 字元集中的值。 驗證時,並不會針對 X12 字元集驗證這些屬性。
基本字元集包含下列大寫字母、數位、空格和特殊字元:A 到 Z、0 到 9、 ! “ & ' ( ) * + , - 。 / : ; ? = (空格) 。
擴充字元集包含基本字元集中的字元,以及小寫字母、選取語言字元和其他特殊字元:a 到 z、% @ [ ] _ { } \ | <> ~ # $.