淺述EDI 接收模型 1

2021-03-31 08:56:29 字數 2705 閱讀 9773

宣告:儘管我這裡的題目叫做 「edi 技術淺述」 ,並不表明edi的確需要深邃的技術,只是說得好聽一些,給人以高深的迷惑感 ^o^

1.edi (electronic data interchange 電子資料交換, 無紙**[金山詞霸2003解釋])

2.平檔案:與計算機作業系統無關的電子資料檔案

3.edi報文

是通過電子媒質進行交換資料的檔案,在這個交換資料的過程中,主要由兩部分組成,格式和平台。

格式是指,報文的具體資料格式。平台是指報文應用的作業系統平台(但是大多數edi報文都是以平檔案的格式傳輸的,但是由於windows的存在,excel等固定平台格式的報文也很常見)

4.edi定義

edi報文定義,就是指edi報文的格式,這個格式是由**夥伴雙方共同的乙個約定。由於計算機的普及,現在聯合國和交通部,都有對各種電子報文的格式定義,其中聯合國標準我們通常稱為edifact。當然方便期間,你可以和你的**夥伴約定乙個格式定義,但是這樣在通用性方面就會大打折扣。所以我們建議使用聯合國和交通部相關標準

5.乙個通用的edi接收驗證傳送模型--程式設計師最關心的問題

在開發交通運輸方面的專案的時候,我們會經常涉及到對edi報文的接收傳送的問題

例如乙個貨櫃碼頭的生產管理,會涉及到與其它貨櫃碼頭,貨櫃公司,貨物**等之間的大量edi資料的接收傳送驗證問題

但是由於edi格式的不規範,和其它貨櫃碼頭,貨櫃公司,貨物**的不規範,及技術的不完善,以及edi報文生成,及傳輸過程中造成錯誤的不可避免,仍然給edi報文的接收驗證傳送工作造成了相當大的困難。其次就是對未知報文的接收驗證傳送,對程式設計師來說也是乙個相當頭痛的問題。

那麼,怎樣能夠開發乙個相對通用的edi系統哪?下面給出了乙個模型。

請對照(中華人民共和國海關艙單電子資料傳輸管理辦法)

或自行搜尋(中華人民共和國交通部相關標準)

或聯合國標準船圖(p1)

閱讀以下內容

第一部分:資料格式定義

由大約6部分組成:

(1)資料(報文)**(商檢報文,海關報文) 相當於一類圖書的名稱

(2)資料(報文)標準定義(商檢驗箱單標準,海關艙單標準) 定義的標準,相當於乙個文學書籍中的一類,例如:古漢語文學,現代英語文學。當我們看到這個標準的時候,就知道,她的格式要麼是漢字的,要麼是英文的

(3)記錄(海關艙單標準:提單頭記錄,提運單記錄,提運單-貨櫃記錄) 通常乙個標準中包含多個記錄,如果只有乙個記錄,那麼這是乙個最簡單的報文,也最容易處理,它如下格式

(4)字段 記錄裡的具體的具體內容,例如乙個貨櫃箱號msku1234567

(5)字段屬性 我們用來接收(讀取)這個字段內容時候的規則

(6)資料庫表定義 我們要將資料讀取到資料庫中具體的哪乙個表的哪一條記錄的哪乙個欄位裡?

在這一部分裡面,最重要的是(3)和(5)兩部分的內容,因為我們將在這兩部分中定義讀取規則.

▲記錄:

我們應該實現

1.按照什麼來讀一行記錄?

a.按照長度(海關標準須如此)

b.按照乙個具體的分割符號(聯合國標準須如此)

c.按照開始的標誌來讀取(交通部格式須如此)

d.其他...(xml格式)

2.這種記錄是不是迴圈的?這種記錄是不是巢狀迴圈的?--怎麼處理記錄的迴圈?

a.按照乙個標誌(p1中的eqd就將告訴我們,乙個段組迴圈開始(也就是記錄迴圈.段組:巢狀迴圈的記錄))

b.按照乙個指定的數字迴圈(海關提運單)

其他...

▲字段:

我們應該實現

1.讀取到哪兒?

要能夠設定讀取到表中的哪個字段,這其中可能會出現越界

2.怎樣讀取?

a.按照長度讀取(海關艙單只能這樣)

b.按照標識讀取

c.按照分割符讀取(p1聯合國應該如此)

例如:nad+ca+cma:172:zzz'

loc+147+0250702::5'

?nad,loc為記錄標識,ca,147為字段具體值,用分割符(+)分割

注意cma:172:zzz是nad下面的乙個巢狀,cma,172,zzz是字段,由(:)分割,所以我們應該把nad叫做乙個段組

d.應該能夠提供函式功能,

例如,(a)重複設定函式,我可以重複的把ca插入表中的所有記錄的乙個欄位中

(b)判斷函式,當nad記錄的第乙個欄位中的資料等於ca的時候我就把ca轉換成**

(c)trim,left,right,mid函式,擷取字串

(d)字段提取函式,在本來應該寫入cma的時候,我去提取ca的值,寫入(這時候ca必須是已經讀取過的,否則就會有問題)

(e)其他函式

通過以上的分析,我們會看到

是可以作到基本上通用的,但是其中的控制相當煩瑣,具體細節過於紛繁,沒有親自分析過2,3種標準的更無從體會.

一點經驗:

聯合國的各種標準,最煩瑣,因為要適應全世界嗎!如果能夠把聯合過的標準疏通一遍,其他標準作起來就順利的多了.

由於xml的發展,xml作為平台檔案傳輸成為一種趨勢

淺述Try Catch 作用

1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 namespace test09716 static void main string args 1722 catch ...

淺述陣列排序

陣列自帶的函式sort可以根據自定義的排序器排序 function compare v1,v2 var values 4,1,2,5,3 var vv values.sort compare console.info vv 如果有乙個複雜資料型別的集合需要排序時,處理方式有兩種 用comparato...

Lotus 複製技術淺述

lotus 複製技術淺述 複製機制是分布式系統的核心技術。domino notes獨特的複製技術是業界爭相效仿的物件,但是迄今為止還沒有任何一家在此技術領域能達到lotus domino notes的技術層次。該項技術 為群件系統關鍵技術,曾經幫助domino notes贏得無數榮譽。下面我們將就此...