EDIFACT CONTRL 訊息做為功能通知
如果您已選取在商務設定檔設定或交易夥伴合約中產生功能通知, (或後援合約,如果未在兩個商務設定檔) 之間定義合約,或訊息中的 UNB9 欄位設定為 「1」,CONTRL 訊息就會產生為功能通知 (ACK) 。 這個通知會報告對交換進行語法檢查的結果。
CONTRL 功能通知包括下列區段:
UNH 訊息標頭 (必要項)
UCI 區段,可識別主旨交換並指出狀態交換接收,並包含已接收交換之 UNA、UNB 和 UNZ 區段的參考 (必要項)。 UCI 區段的最多出現次數為 1;因此,它會針對其中控制區段中所遇到的第一個錯誤進行報告。
UCF 區段,識別由 UNG 標頭和 UNE 預告片) 封裝的群組區段 (,並指出如果 UNG 區段存在,則為必要錯誤 (本質)
UCM 區段,可識別訊息區段 (由 UNH 標頭和 UNT 結尾封裝) 並指出錯誤的本質 (必要項)。
UCS 區段,可識別交易集並指出錯誤的本質 (必要項)。
UCD 區段,可識別錯誤複合或元件資料元素,並指出錯誤的本質 (條件式)。
UNT 訊息結尾 (必要項)。
如果已接收的 CONTRL 功能通知只包含 UNH、UCI 和 UNT 區段,EDIReceive 管線會將通知處理為 CONTRL 回條 (技術) 通知。
區段在報告層級的每個執行個體 (也就是 UCI、UCF、UCM、UCS 和 UCD 區段) 只能報告一個錯誤。
注意
CONTRL 訊息包含數個將從已接收交換複製過來的必要資料元素。 如果交換中的資料元素遺失或語法錯誤,將無法產生語法正確的 CONTRL 訊息。 如此則必須以 CONTRL 訊息以外的其他方式報告錯誤。
注意
在BizTalk Server中,會傳送 CONTRL 訊息 (收據通知、接受或拒絕) ,以回應只包含一或多個 CONTRL 訊息的接收交換。 在 BizTalk Server 2013 R2 中,不會傳送任何 CONTRL 訊息 (回條通知、接受或拒絕) ,以回應只包含一或多個 CONTRL 訊息的接收交換。 所收到 CONTRL 訊息中的錯誤,必須以 CONTRL 訊息以外的其他方式報告。 如果含有資料訊息的交換中包含一或多個 CONTRL 訊息,則為回應該交換而產生 CONTRL 訊息時,會如同已接收交換中不包含任何 CONTRL 訊息般地產生 CONTRL 訊息。
SG 迴圈
根據已接收交換是否包含一或多個群組而定,CONTRL 功能通知的結構會有所不同。 如果交換包含群組,則通知中每個群組都會包含一個 UCF 區段。 針對每個訊息,每個 UCF 區段都會包含一個 UCM 區段,而每個 UCM 區段又會以串聯方式包含一系列 UCS 和 UCD 區段。
ACK 訊息的 XML 形式會包含一個 SG3Loop 元素,可封裝每個 UCF 區段、封裝每個 UCM 元素的 SG4Loop 元素,以及封裝每對 UCS 和 UCD 元素的 SG5Loop 元素。 訊息的原生 EDI 格式中並不包含 SG 迴圈標記。
如果交換不含群組,通知就不會包含 UCF 區段, 而是針對每個訊息各包含一個 UCM 區段,而每個 UCM 區段又會以串聯方式包含一系列 UCS 和 UCD 區段。
通知訊息的 XML 格式包含用於封裝每個 UCM 元素的 SG1Loop 元素,以及用於封裝每對 UCS 和 UCD 元素的 SG2Loop 元素。 與包含群組的交換相同,通知的原生格式中並不包含 SG 標記。
注意
依照預設和業界用法,已接受的交易集不應有 SG1/SG4 迴圈。 不過,若要支援符合標準的規範,您可以針對商務設定檔選取 [合約屬性] 對話方塊的 [通知] 頁面上的 [產生SG1/SG4 迴圈] 核取方塊 (,以強制產生 SG1/SG4,或商務設定檔的 [EDI 設定] 索引標籤的 [通知] 頁面) 。 如果選取此核取方塊,接收管線將會產生 SG1/SG4 迴圈,不論交易集是接受還是拒絕。 如果不勾選,則只會針對錯誤交易集產生這些迴圈 (UCM5 != 7)。
資料元素
CONTRL 功能通知 (ACK) 包括下列資料元素:
Data 元素 | 名稱 | 使用方式 |
---|---|---|
UNH1 | 訊息參考編號 | - |
UNH2 | 訊息識別碼子元件 | 這些子元件包括: - 1 = CONTRL - 2 = 4 - 3 = 1 - 4 = UN |
UCI1 | 交換控制編號 | 自所接收訊息的 UNB5 欄位進行對應。 |
UCI2 | 交換傳送者 | 自所接收訊息的 UNB2 欄位進行對應。 第一個子元件 (識別) 為必要項。 第二個子元件 (辨識符號) 和第三個元件 (反向路由位址) 為選擇性項目。 |
UCI3 | 交換收件者 | 自所接收訊息的 UNB3 欄位進行對應。 第一個子元件 (識別) 為必要項。 第二個子元件 (辨識符號) 為選擇性項目。 |
UCI4 | 動作代碼 | 這些動作代碼包括: - 如果已接受交換,則為 8 - 7 如果已接受交換,但某些交易集遭到拒絕 - 4 如果交換因為 UNA 或 UNB 區段中的錯誤而遭到拒絕 這是必要的資料元素。 |
UCI5 | 語法錯誤代碼 | 識別接收交換時的錯誤狀況 (如果有的話)。 如需詳細資訊,請參閱 EDIFACT CONTRL 通知錯誤碼。 這個資料元素具有條件式選用性。 |
UCI6 | 服務區段標記 | 識別具有 UCI5 資料元素中已指出之錯誤狀況的區段。 這個資料元素具有條件式選用性。 |
UCI7 | 資料元素識別碼 | 識別具有 UCI5 資料元素中已指出之錯誤狀況的資料元素。 UCI7 的子元件包括: - 區段中錯誤資料元素的位置 (強制) - 錯誤元件資料元素在區段中的位置 (條件式選擇性) - 區段中發生錯誤資料元素 (條件式選擇性) |
UCI8 | - | - |
UCF1 | 群組參考編號 | 自所接收訊息的 UNG5 欄位進行對應。 這是必要的資料元素。 |
UCF2 | 應用程式傳送者識別碼 | 自所接收訊息的 UNG2 欄位進行對應,包含子元件。 這是條件式資料元素。 |
UCF3 | 應用程式收件者識別碼 | 自所接收訊息的 UNG3 欄位進行對應,包含子元件。 這是條件式資料元素。 |
UCF4 | 動作代碼 | 這些動作代碼包括: - 7 如果接受交換 - 4 如果交換因為 UNA 或 UNB 區段中的錯誤而遭到拒絕 此代碼適用於此層級與所有更低層級。 這是必要的資料元素。 |
UCF5 | 語法錯誤代碼 | 識別群組中的錯誤狀況 (如果有的話)。 如需詳細資訊,請參閱 EDIFACT CONTRL 通知錯誤碼。 這個資料元素具有條件式選用性。 |
UCF6 | 服務區段標記 | 識別群組中的錯誤區段。 這個資料元素具有條件式選用性。 |
UCF7 | 資料元素識別碼 | 識別具有 UCF5 資料元素中指出之錯誤狀況的資料元素。 UCF7 的子元件包括: - 錯誤資料元素在區段 (強制) 的位置 - 區段中錯誤元件資料元素的位置 (條件式選擇性) - 區段中發生錯誤資料元素 (強制) |
UCM1 | 訊息參考編號 | 自所接收訊息的 UNH1 欄位進行對應。 這是必要的資料元素。 |
UCM2 | 訊息識別碼 | 自所接收訊息的 UNH2 欄位進行對應,包含子元素。 這是條件式資料元素。 |
UCM3 | 動作代碼 | 這些動作代碼包括: - 7 如果接受交換 - 4 如果交換因為 UNA 或 UNB 區段中的錯誤而遭到拒絕 此代碼適用於此層級與所有更低層級。 這是必要的資料元素。 |
UCM4 | 語法錯誤代碼 | 識別群組中的錯誤狀況 (如果有的話)。 如需詳細資訊,請參閱 EDIFACT CONTRL 通知錯誤碼。 這個資料元素具有條件式選用性。 |
UCM5 | 服務區段標記 | 識別錯誤中的 UNH 或 UNT 區段。 這個資料元素具有條件式選用性。 |
UCM7 | 資料元素識別碼 | 識別具有 UCM5 資料元素中指出之錯誤狀況的資料元素。 UCM7 的子元件包括: - 錯誤資料元素在區段 (強制) 的位置 - 區段中錯誤元件資料元素的位置 (條件式選擇性) - 區段中發生錯誤資料元素 (強制) |
UCS1 | 訊息內文中的區段位置 | 錯誤區段的位置計數,從 UNH 開始為 1。 若要報告區段遺失,這是預期遺漏區段位置之前所處理最後一個區段的數值計數位置。 遺失區段群組則表示為遺失群組中的第一個區段。 這是必要的資料元素。 |
UCS2 | 語法錯誤代碼 | 識別群組中的錯誤狀況 (如果有的話)。 如需詳細資訊,請參閱 EDIFACT CONTRL 通知錯誤碼。 這個資料元素具有條件式選用性。 |
UCD1 | 語法錯誤代碼 | 識別群組中的錯誤狀況 (如果有的話)。 如需詳細資訊,請參閱 EDIFACT CONTRL 通知錯誤碼。 這個資料元素具有條件式選用性。 注意: 如果發生 XSD 驗證失敗,UCD1 資料元素會報告代碼值為 12 不正確值。 |
UCD2 | 資料元素識別碼 | 識別具有 UCD1 資料元素中指出之錯誤狀況的資料元素。 UCD2 的子元件包括: - 錯誤資料元素在區段 (強制) 的位置 - 區段中錯誤元件資料元素的位置 (條件式選擇性) - 區段中發生錯誤資料元素 (強制) |
UNT1 | 區段計數 | - |
UNT2 | 訊息參考編號 | - |