EDIFACT

EDIFACT

EDIFACT 標準提供了一套語法規則的結構、互動交流協議,並提供了一套允許多國和多行業的電子商業文件交換的標準消息。在北美歐洲,很多企業很早就採納了 EDIFACT ,所以應用很廣泛。EDIFACT 中已經看到在通過的 ASPAC 地區的一些,亞太地區目前使用基於 XML 的標準較多,但是 EDIFACT 也有應用。

定義


聯合國/行政、商業和運輸電子數據交換是由聯合國制定的國際標準。本標準的維護和進一步發展的工作是通過聯合國中心根據聯合國歐洲經濟委員會貿易便利化和電子商務(UN / CEFACT)。

發展


60 年代末,聯合國歐洲經濟委員會 (UN/ECE) 貿易程序簡化工作組所致力的國際貿易程序簡化工作,實際上已經拉開了 EDIFACT 標準制訂的序幕。該組織制訂了 10 項簡化貿易程序的措施,其出發點一是簡化貿易程序,清除貿易壁壘和障礙;二是為採用以計算機為主的現代技術提供有關標準,諸如各種貿易單證統一格式、標準貿易術語、標準運輸單證格式、貿易條款及貿易數據元標準。在 70 年代,英國貿易部組織了一個叫作 SITPRO(Simplification of Intema-tional Trade Procedures) 的機構,其職責是研究進出口業務的標準化和合理化。由於英國進出口業務同其他國家的關係很密切,所以許多有關機構和組織也參加了這項工作。SITPRO 在 70 年代出版了第一部國際貿易用的數據元目錄,在此基礎上,UN/ECE 的第 4 工作小組 WP.4 開始起草制定聯合國貿易數據元目錄標準,制訂這一標準的主要目的在於:
(1) 簡化貿易單證和貿易單證標準化服務
(2) 消除由於貿易數據元表述不一而產生的貿易雙方的誤解和差錯;
(3) 便於大範圍地在貿易夥伴之間交換信息。
1981 年聯合國歐經會 WP.4 工作組正式公布了兩項標準《貿易數據元目錄》(TOED)和《貿易數據交換目錄》(TTAD),經過幾年的反覆徵求意見和修改,TOED 於 1986 年正式批准為國際標準 ISO7372。因此,TDED和 TDID 是 EDIFACF 的最早的兩項標準,成為後期 EDIFACT 發展中一直引用的墓礎標準。80 年代以後,WP.4 一直致力於有關 EDI 的基本標準的研究和制定工作,包括數據元素、編碼和語義規則的標準。這期間,推出了一系列標準,如《EDIFACT 語法規則》、《EDIFACT 語法實施指南》、《EDIFACT 標準報文》、《EDIFACT 標準段目錄》、《EDIFACT 報文設計指南》和《EDIFACT 複合數據元目錄》等。這些標準已被 ISO 批准作為國際標準,提供給各國作為應用 EDI 的必不可少的內容。
UN/ECE 一開始便堅持這麼一些設計原則:技術與所使用的計算機無關,與系統使用這些技術無關,與用戶使用這些技術無關,與所使用的通信方式無關,與交換數據也無關,這賦予了 EDIFACT 極強的生命力。使用者、軟體提供者或網路服務提供者不能對 ISO 9735 中所確定的語法規則作任何改動。如要改動,應直接向UN/ECE 秘書處登記或通知其中任一起草者(或按 ISO 的程序),經 UN/ECE 和 ISO 雙方組織國際討論,然後批准發布。
EDI 標準的發展經歷了從專業標準、行業標準、國家標準,一直到今天的國際標準的四個階段演化過程。
(1)專業標準階段
專業標準起始於美國及歐洲一些國家的大型的、國際化的公司內部,如福特汽車公司飛利浦公司等,他們為簡化自身業務而自行定義了企業標準。這些標準由於為其內部使用帶有相當大的局限性。
(2)行業標準階段(1970~1980)
這個階段從 20 世紀 70 年代初開始,一些行業為滿足行業內部業務往來的要求而制定的。典型的有美國運輸業制定的 TDCC 標準、美國汽車業制定的 AIAG 標準、歐洲汽車業制定的 ODIFICE 標準、零售業制定的 UCS 標準、倉儲業制定的 WINS 標準、電子業的 EDIFICE 標準、醫學界的 TEEDI 標準、建築業的 EDICONSTRAUCT 標準等,這些標準的制定為行業 EDI 的開展奠定了基礎。
(3)國家標準階段(1980~1985)
隨著經濟及計算機技術的發展,行業標準已不能適應發展的需求,於是國家標準應運而生。1979年,美國國家標準協會授權ASC X12委員會依據TDCC標準,開始開發、建立跨行業且具一般性EDI國家標準ANSI X.12。
同時,歐洲也由官方機構及貿易程序簡化組織共同推動統一的EDI標準,並獲聯合國的授權,由聯合國歐洲經濟理事會從事於國際貿易程序簡化工作的第四小組(UN/ECE/WP.4)負責發展及制定EDI的標準,並在80年代早期提出TDI(Trade Data Interchange)及GTDI(Guildlines For TDI)的標準,但該標準只定義了商業文件的語法規則,還欠缺報文標準。
(4)國際標準階段(1985~)
鑒於全球 EDI 發展的趨勢,各國的國家標準為國際標準提供了完整的技術和應用結構,在此基礎上,聯合國歐洲經濟委員會(UN/ECE)為簡化貿易程序促進國際貿易活動,公布了一套用於行政、商業和運輸業的EDI國際標準——UN/EDIFACT標準。國際標準化組織為 EDIFACT 制定了 ISO9735 EDI 語法規則和 ISO7372 貿易數據元國際標準。同時,ANSI X.12 於 1992 年決定在其第四版標準制定后,不再繼續發展維護,全力與UN/EDIFACT結合,最終將使全球EDI標準統一於 EDIFACT 標準,EDIFACT 作為國際標準,已被世界上大多數國家所接受,我國的 EDI 標準也確定以 EDIFACT 標準為基礎制定。因此,掌握 EDI 的國際標準——EDIFACT 對實施 EDI 至關重要。商業夥伴實施 EDI,必須遵循一定的報文標準。EDIFACT 就是這樣一種全球化的由聯合國委員會不斷更新驗證的規範標準。

構成要素


為了實現各公司計算機系統間傳遞貿易單證,必須保證這種貿易單證具有標準格式並能夠為各公司的計算機所識別。正如語言在人類交流中的媒介作用一樣,EDI 標準是實施 EDI 必不可少的,它是計算機系統之間的語言。作為 EDI 標準,應達到以下目的:
(1)提供一種任何貿易夥伴都可使用的語句,這種語句是無歧義的,可以使使用者明白其含義的;
(2)這種標準是不受計算機機型影響的,既適用於計算機間的數據交換,同時又獨立於計算機之外;
(3) EDI 傳遞的貿易單證是電子單證,目的是為了以電子手段完成傳統貿易單證的傳遞,從而加速單證的周轉,縮短貿易進程。EDI 標準的制定正是基於此目的,因此貿易數據元就是 EDI 標準的重要組成部分。
貿易數據元是電子單證最基本的單位,任何電子單證都由貿易數據元組成。訂立 EDI 標準首先就要定義此標準所涉及的貿易數據元,對貿易數據元的名稱、使用範圍、數據類型和數據段長度做出詳細的規定。貿易數據元是制定 EDI 標準的基礎,它決定了標準的適用範圍,起到對標準的支持和限定作用。
任何貿易單證都是由一些具有一定功能的項組成的。例如一張發票是由發貨人、貨物名稱、貨物價格等項組成。那麼電子單證為實現貿易單證的功能而與貿易單證的項相對應的就是段。
每一個段都是由多個數據元組成的,與現在貿易單證中的各項所起的作用一樣,段在電子單證中完成一定的功能,是組成電子單證的單元。電子單證是以報文形式在計算機網路上傳輸的,它除包含相應的貿易單證的內容外,還包含一些必要的控制段。因此,段的種類就分成數據段和控制段。在 EDI 標準中數據段的定義包括段標識、段名、段功能和組成段的數據項,其中段標識是由段名的英文首字母縮寫構成的。控制段的定義結構與數據段差不多,所不同的是,在功能上,一個數據段完成的功能基本上是貿易單證中一個項所起的作用,而控制段是對整個 EDI 報文的控制、標識與描述;在使用上,不同類型的 EDI 報文都具有相同的控制段,而數據段的取捨則取決於 EDI 報文的類型。EDI 標準中定義的段是 EDI 報文設計中所需段的集合,任何在此標準下設計的 EDI 報文中涉及的段都不超出標準定義的範圍。
EDI 標準如果僅有數據元目錄和段目錄,而公司計算機系統間傳遞的電子單證格式由用戶自行定義,那麼用戶間傳遞的報文將不能被彼此理解,EDI的應用將處於混亂狀態,其優越性就無從體現。因此,EDI 標準除包括貿易數據元目錄和段目錄外,還應包括標準報文格式,即用戶都能識別的電子單證式樣。
標準報文格式一般包括兩部分:報文控制部分和報文內容部分。報文控制部分由控制段構成,至少包括報文頭(Message Header)和報文尾(Message Tailer)兩個段;報文內容部分由數據段構成,涉及的段由報文性質決定,例如訂單報文與發票報文涉及的數據段就有所不同。報文中用到的數據段根據需要從相應的段目錄中選取出來,並根據報文設計需要按一定先後次序出現在標準報文中。這樣,必要的控制段,加上一定數量有序的數據段就構成了 EDI 報文標準。
總之,為達到 EDI 標準所希望的目的,起到 EDI 標準所應起的作用,EDI 標準至少要包括數據元目錄、段目錄和 EDI 標準報文格式。因此,數據元、段和標準報文格式是 EDI 標準的三要素。

標準構成


EDIFACT 標準包括一系列涉及電子數據交換的標準、指南和規則,包括以下 8 個方面的內容:
(1) EDIFACT 應用級語法規則(ISO9735)
應用級語法規則規定了用戶數據結構的應用層語法規則和報文的互換結構。
(2) EDIFACT 報文設計指南
報文設計指南是為從事標準報文的設計者提供技術依據。
(3) EDIFACT 應用級語法規則實施指南
這一指南的目的是幫助EDI用戶使用 EDIFACT語法規則。
(4) EDIFACT 數據元目錄(ISO7372)
EDIFACT 數據元目錄收錄了 200 個與設計 EDIFACT 報文相關的數據元,並對每個數據元的名稱、定義、數據類型和長度都予以具體的描述。
(5) EDIFACT 代碼目錄
代碼目錄給出數據元中的代碼型數據元的代碼集,收錄了 103 個數據元的代碼,這些數據元選自 EDIFACT 數據元目錄,並通過數據元號與數據元目錄聯繫起來。
(6) EDIFACT 複合數據元目錄
所謂複合數據元是由別的數據元組成的,其功能更強,包含的信息量更多。目錄收錄了在設計 EDIFACT 報文時涉及的 60 多個複合數據元。目錄中對每個複合數據元的用途進行描述,羅列了組成複合數據元的數據元,並在數據元後面註明其類型,注有字母 "M" 的表示該數據元在此複合數據元中是必須具備的,注有字母 "C" 的表示該數據元在此複合數據元中的出現與否是根據具體條件而定的。複合數據元通過複合數據元號與段目錄相聯繫,組成複合數據元的數據元通過數據元號與數據元目錄、代碼表相聯繫。
(7) EDIFACT 段目錄
段目錄定義了 EDIFACT 報文中用到的段。目錄中註明了組成段的簡單數據元和複合數據元,並在數據元後面註明此數據元是"必備型"或"條件型"。段目錄中除有段名外,每個段前均標有段的標識。"段標識"一般由三個英文字母組成,它們是段的英文首字母縮寫。每個段通過"段標識"與 EDIFACT 標準報文相聯繫,簡單數據元和複合數據元通過數據元號和複合數據元事情與 EDIFACT 數據元目錄和複合數據元目錄相聯繫。
(8) EDIFACT 標準報文目錄
這是已得到聯繫合批准的貿易單證標準報文的集合。EDIFACT標準報文格式分三級:0 級、1 級和 2 級。0 級是草案級,1 級是試用推薦草案,2 級是推薦報文標準級。

舉例


下列是一個 EDIFACT 消息的實例,是航空公司返回的航班查詢結果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
UNA:+.? '
UNB+IATB:1+6XPPC+LHPPC+940101:0950+1'
UNH+1+PAORES:93:1:IA'
MSG+1:45'
IFT+3+XYZCOMPANY AVAILABILITY'
ERC+A7V:1:AMD'
IFT+3+NO MORE FLIGHTS'
ODI'
TVL+240493:1000::1220+FRA+JFK+DL+400+C'
PDI++C:3+Y::3+F::1'
APD+74C:0:::6++++++6X'
TVL+240493:1740::2030+JFK+MIA+DL+081+C'
PDI++C:4'
APD+EM2:0:1630::6+++++++DA'
UNT+13+1'
UNZ+1+1'
UNA這個段落是可選的(O)。如果存在,它指定的特殊字元要被用於解釋消息的剩餘部分。以下是這六個特殊字元:
• 成分(Component)數據元分隔符(上例中為:)
• 元素(Element)分隔符(上例中為+)
• 小數點(Decimal notification)(上例中為.)
• 轉義字元(Release Character)(上例子中為?)
• 保留,必須是一個空格
• 段(Segment)結束符(上例中為‘)
上例中UNA段(Segment)的這些特殊字元是默認值。
UNH+1+PAORES:93:1:IA’– 這是消息頭部,是每條信息所需要的開始部分。這段代碼特指消息的名稱和版本。此例中版本是PAORES ver 93.1,它是由組織執行機構(IATA)規定的。
IFT+3+NO MORE FLIGHTS’– 這是一個段(Segment)。它的名稱是“Interactive Free Text(IFT,互動自由文本)”,其內容包含一段簡單的文字:“沒有航班(NO MORE FLIGHTS)”。
UNT+13+1′– 這是消息尾部的段(Segment)。它表示著所發送的消息共有13個段(Segment)。

結構


從上面的例子可以看出,EDIFACT 數據為層級嵌套結構。其中頂層被稱為 Interchange,其下層為多個消息(Message)組成的複合消息體。這些消息由多個段(Segment)組成。在段(Segment)之下是元素(Element),其是從聯合國數據元目錄(UNTDID)衍生出的並被加入到了EDIFACT標準中的。
一個組(Group)或一個段(Segment)可以是強制性的(M)或條件性的(C),且可被重複。如下:
• C99 表示一個組(Group)或一個段(Segment)可以出現0到99次
• M99 標誌一個組(Group)或一個段(Segment)必須出現1次,但最多出現99次
一個消息(Message),是由段(Segment)序列或組(Group)序列組成的。一般的,在一個組(Group)內的第一個段(Segment)或組(Group)必須是強制性(M)的。另外,除非實際邏輯所要求,組(Group)序列一般都是條件性(C)的。
結構如下:
EDIFACT
EDIFACT