如何讀懂X12 報文

大家好,很多客戶在進行 EDI 項目的時候,想要了解如何看懂 X12 報文中的數據,那麼今天的文章就帶大家來了解一下X12報文的結構,以及如何才能獲取到需要的數據。

首先我們先來了解一下X12報文的結構,如下圖所示:

edi

一次EDI傳輸包含一段Interchange,Interchange中會包含一個或多個Functional Group(下文簡稱FG),FG 中會包含一個或多個Transaction。舉例來說,如果需要在一次傳輸中傳輸3個850,以及4個846文件,那麼就會有2個FG,在850的FG中會有3個Transaction,846的FG中有4個Transaction。

對報文結構有了基本的瞭解之後,我們再來看下如何從報文中獲取數據。以下是一段示例的850報文,每一行開頭(2-3個字符組成)叫做segment節點,代表了特定的業務含義,例如BEG代表報文的開始以及一些主信息,DTM代表時間信息,N1代表實體信息(ship-to、ship-from、bill-to等等)。

edi

我們再進入到某一行來具體看一下,其中*是每個數據元素的分隔符(也可按照實際情況設置爲其他符號,120是這一行的物料數量,它的位置是PO102,有一些代碼代表了特殊的業務含義,例如EA本身在報文裏面就代表了物料的單位,類似的還有PCS、KGM等,除此之外,還有一些不是單獨出現的代碼,我們把它叫做限定符,於限定右側數據的含義,例如這個地方的VN,它的意義是限定右邊的數據意義爲供應商物料編碼,我們一看到VN後面的一串數據就知道供應商物料編碼爲 AB3542。

edi

瞭解瞭如何去閱讀數據,我們再來詳細地解析一下這一條850數據,假如我們要獲取以下數據(該表格可由EDI文件規範中整理獲取):

edi

例如要獲取訂單號,那麼我們就找到BEG這一行,從左向右數第三個數據元素即08292233294 就是我們要找的訂單號,再比如我們需要找請求交付日期,按照規範我們需要找到DTM這一行,且條件是DTM01=002,取DTM這個元素,那麼就是20101214這一串,就是要找的數據。以此類推,我們可以獲取到報文中的關鍵信息,如下圖:

edi

以上就是基本的閱讀X12報文以及獲取業務數據的方法,雖然我們可以直接從X12報文中讀取到數據,想必大家也可以感受到人工去閱讀X12報文,並從中提取數據是非常麻煩的。報文設計的初衷就是爲了方便計算機處理,直接去閱讀報文對於開發人員來說可能是有意義的,例如可以用來對比收到的數據與原始數據是否一致。但對於ERP用戶或者業務團隊來說,很顯然他們不需要去讀原始的X12報文。 EDI 在整個數據交換的流程中扮演的更多的是一個傳輸、翻譯的角色。

知行之橋中的X12端口,可一步完成X12報文的解析或生成,方便將X12數據同步到不同的業務系統中,歡迎下載試用。

今天的850報文只是X12標準中一種簡單的類型,還有很多種結構不同的報文,希望大家可以利用今天講解的方法嘗試地去讀懂其他的報文,如果有任何疑問,請聯繫我們。

相關鏈接:

X12端口配置
如何快速讀懂交易夥伴提供的EDI規範?
EDI段Segment用途

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章