十分钟解读Arrow EDI
關于 Arrow
Arrow Electronics向工業和商業電子元器件和企業運算解決方案用戶提供產品、服務和解決方案,2016年銷售額達23.8億美元。Arrow作為供應渠道合作伙伴,通過遍布全球90多個國家和地區的465多個地點構成的全球網絡,為超過125,000家原始設備制造商、合約制造商和商業客戶提供服務。
Arrow為什么要推進供應商接入EDI呢?
以下是來自Arrow官網的信息,供參考。
為了提高閱讀效率,把上圖中的英文翻一下,如翻譯不夠準確,請指出
電子數據交換EDI
高效&可靠性
EDI電子數據交換是指以標準化商業文檔,實現點對點的連接。本質上來說,通過EDI方式交換業務數據信息,可以提高傳輸速率,提高數據準確性和效率。
Arrow 引領行業與客戶、供應商建立基于EDI的聯系,以便加快生產預測、采購訂單、訂單確認、發票等信息流的傳輸效率。
受益于EDI傳輸的客戶或供應商具有以下共同特點:
官方說明看起來好抽象:-(,通過一個訂單處理示例來說明EDI的優勢。
下圖所示,進行EDI處理時,有EDI與無EDI的流程對比。
無edi的訂單處理流程,這么長,看著都復雜,而且通過傳真和電子郵件方式等的用戶對象是人,接收到業務數據也需要人為干預,進行數據的錄入的同時容易出錯。
相比之下,EDI的流程的簡單多。
通過以上示例,簡單總結下EDI與其他方式的區別?
EDI與現有的一些通信手段,如傳真,電子信箱(Email)等有什么不同之處?具體區別是什么?
解讀Arrow EDI的需求
先看下Arrow AS2連接提供的相關文檔
- Arrow B2B Comm_Profile AS2_EU.DOC
- Arrow_Quality_2016.zip
- Arrow production certificates 2016.zip
文檔1:是AS2的配置參數文檔,分Quanlity Environment和Production Environment兩個環境。
文檔2:是Quanlity Environment的證書,該證書在傳輸過程中用于簽名、加密。
文檔3:是Production Environment的證書,該證書在傳輸過程中用于簽名、加密。
AS2的定義
AS2,是Applicability Statement 2的縮寫,是一種電子數據交換規范,旨在確保數據在互聯網能夠安全可靠地傳輸。
AS2的目的在于在于通過Internet安全可靠地傳輸商業文檔。首先通過數據加密和數字簽名生成數據包,然后基于HTTP(或HTTPS)通過互聯網或任何TCP/IP網絡進行安全可靠的數據交換。
然后是EDI規范的相關文檔
- EDI INVOICE.PDF (INVOIC:發票信息)
- EDI_DELFOR_.pdf (DELFOR:訂單預測信息)
- EDI_Util_NE_Out_INVRPT_VMI_D97A.PDF (INVRPT:庫存信息)
以上文檔符合EDIFACT標準,版本號D97A,目的是將傳輸的文檔標準化,為什么需要標準化?
舉個栗子,如果一個人永遠只和一個人說話,那么他們兩個只要懂相互的意思就O了。但是,如果有幾百人都要相互說話。那么還是大家都說標準語言。
在EDI實施過程中,最大的挑戰就是來自于EDI標準報文的解析與生成。
甲說,我們沒有業務系統,以前Arrow都是發郵件給我們Excel文檔,我們要通過Excel格式展示真實業務數據。。。
乙說,我們用的SAP,你們在EDI報文轉換過程中,怎么實現與SAP的無縫集成呢。。。
丙說,我們業務系統僅支持導入CSV文件,你們能生成CSV文件嗎。。。
綜上,為了滿足不同客戶需求,EDI轉換部分根據您實際需求定制開發(定制開發部分的源碼是可以share給你們的哦)。
如果您想開發小程序翻譯EDIFACT報文,先通過EDIFACT簡介了解下結構組成部分。
EDI Demo帶您走進EDI新領域
之前有網友留言,理論說了那么多,還是不懂怎么看EDI報文? ?
心好塞,分享那么多,還是不夠不夠夠不夠…那就再來點干貨。
BGM+241+123456+9’
BGM: Beginning of message,業務數據的開始節點。
BGM01 = 241,表示Delivery Schedule,固定Code,表示該文檔傳輸的是交付計劃信息。
BGM02 = 123456,表示Delivery Schedule No,表示交付計劃編號。
BGM03 = 09,表示源文檔,未做任何修改。
DTM+137:20190108:102’
DTM1.1 = 137 表示日期類型,在這里是指交付日期。(主要DTM出現137,它后面跟的值就是要求的交付日期)
DTM1.2 = 20190108,是實際交付日期。
DTM1.3 = 102,表示日期格式,比如102 = CCYYMMDD,103 = CCYYMMDDHHSS
按照EDI規范說明,Header信息的讀取都可以通過以上方式。
從LIN Segment節點開始,是交付計劃明細,與Header信息存在一對多的關系。(一般一個交付計劃,會對應多個物料號,需注意下Header與Details的一對多關系,以免漏掉一部分明細值)
LIN+1++1178340:BP::92’
PIA+1+1178340:VP::91’
RFF+BO:1234501:1’
QTY+3:1440:PCE’
SCC+4’
QTY+131:240:PCE’
DTM+158:20180611:102’
DTM+159:20180617:102’
SCC+4’
QTY+131:480:PCE’
DTM+158:20180716:102’
DTM+159:20180722:102’
SCC+4’
QTY+131:720:PCE’
DTM+158:20180813:102’
DTM+159:20180819:102’
LIN+2++TVA1280559R5A:BP::92’
PIA+1+TVA1280559R5A:VP::91’
RFF+BO:BEL/1234502:1’
QTY+3:300:PCE’
SCC+4’
QTY+131:50:PCE’
DTM+158:20180611:102’
DTM+159:20180617:102’
SCC+4’
QTY+131:109:PCE’
DTM+158:20180716:102’
DTM+159:20180722:102’
SCC+4’
QTY+131:150:PCE’
DTM+158:20180813:102’
DTM+159:20180819:102’
為了體現一對多的關系,在上面的demo中,放了兩個LIN segment,通過下圖展示下不同segment之間的關系。
LIN是個Loop結構,意味著在一個文檔中可以出現多次。QTY,SCC也是Loop結構。
LINLoop結構下,允許有1個LIN Segment,最多10個PIA Segment,1個IMD Segment,最多99個QTYLoop,最多999個SCCLoop。
1個QTY Loop下只有1個QTY Segment。
1個SCCLoop下只有1個SCC Segment,最多999個QTYLoop。
SCCLoop下的1個QTYLoop,只有1個QTY Segment,最多2個DTM Segment。
LIN+1++1178340:BP::92’
LIN 3.1= 1178340 對應供應商產品編號
PIA+1+1178340:VP::91’
PIA 2.1= 1178340 對應采購商產品編號
SCC+4’
SCC 1 = 4 ,是交付計劃狀態,表示預測,如果值是1,表示確認訂單,可以按其計劃發貨。
QTY+131:240:PCE’
QTY 1.1 = 131,是固定類型,表示交付數量;
QTY 1.2 = 240,是交付數量具體的值;
QTY 1.3 = PCE,是數量單位。
DTM+158:20180611:102’
DTM+159:20180617:102’
DTM 1.1 = 158 或159, 158 - 開始日期,159 - 截止日期;
DTM 1.2 是真實日期,DTM 1.3是日期格式,同Header的DTM Segment結構一致。
理論說完了,那就準備實戰吧,不要偷懶,千萬別光看不練。
下方示例,介紹了EDI與自定義XML之間的互相轉換,嘗試下載軟件,及示例工程,在本地搭建環境模擬下整個EDI實施過程。
EDI軟件下載地址: https://www.kasoftware.com/download.html
EDI轉換示例工程:https://www.kasoftware.com/translation/edi_xml_convert_sample.html
注:文案部分圖片及內容來源于網絡,版權歸原創作者所有,如有侵犯到您的權益,請您聯系我們進行刪除,給您帶來困擾,我們深感抱歉。
總結
以上是生活随笔為你收集整理的十分钟解读Arrow EDI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue-lazyload 简单使用
- 下一篇: 教你快速学会二进制、十进制、十六进制之间