天天看點

如何讀懂X12 封包

大家好,在進行 EDI 項目的時候,想要了解如何看懂 X12 封包中的資料,那麼今天的文章就帶大家來了解一下X12封包的結構,以及如何才能擷取到需要的資料。

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

如何讀懂X12 封包

一次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等等)。

如何讀懂X12 封包

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

如何讀懂X12 封包

了解了如何去閱讀資料,我們再來詳細地解析一下這一條850資料,假如我們要擷取以下資料(該表格可由EDI檔案規範中整理擷取):

如何讀懂X12 封包

 例如要擷取訂單号,那麼我們就找到BEG這一行,從左向右數第三個資料元素即08292233294 就是我們要找的訂單号,再比如我們需要找請求傳遞日期,按照規範我們需要找到DTM這一行,且條件是DTM01=002,取DTM這個元素,那麼就是20101214這一串,就是要找的資料。以此類推,我們可以擷取到封包中的關鍵資訊,如下圖:

如何讀懂X12 封包

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

X12端口,可一步完成X12封包的解析或生成,友善将X12資料同步到不同的業務系統中。

今天的850封包隻是X12标準中一種簡單的類型,還有很多種結構不同的封包,希望大家可以利用今天講解的方法嘗試地去讀懂其他的封包。

相關連結:

X12端口配置

如何快速讀懂交易夥伴提供的EDI規範?

EDI段Segment用途

注:文案部分圖檔及内容來源于網絡,版權歸原創作者所有,如有侵犯到您的權益,請您聯系我們進行删除,給您帶來困擾,我們深感抱歉。