NCV5-外部交換平臺(tái)技術(shù)紅皮書_第1頁
NCV5-外部交換平臺(tái)技術(shù)紅皮書_第2頁
NCV5-外部交換平臺(tái)技術(shù)紅皮書_第3頁
NCV5-外部交換平臺(tái)技術(shù)紅皮書_第4頁
NCV5-外部交換平臺(tái)技術(shù)紅皮書_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、此文件受到UFIDA的保護(hù),并已在保護(hù)中心注冊(cè),外泄必糾!UFIDA GUID19B556DBC-1AC6-8F37-3BF6-71C56F13F30FUFIDA GUID1A4D3866A-8E0A-C39D-50D4-050B0F9DB068外部交換平臺(tái)實(shí)施技術(shù)紅皮書NC-UAP 5.0用友NC-UAP2014-08-18第一章 總體概述 1.1. 外部交換平臺(tái)總體結(jié)構(gòu) 1.2. 外部交換平臺(tái)功能特點(diǎn) 1.3. 外部交換平臺(tái) V50 版新增功能 2.第二章實(shí)施簡(jiǎn)介及相關(guān)注意點(diǎn) 4.1. 實(shí)施方法簡(jiǎn)介 4.1.1 外系統(tǒng)數(shù)據(jù)導(dǎo)入的一般步驟 41.2 外部交換平臺(tái)服務(wù)器端文件目錄結(jié)構(gòu) 52.

2、Servlet的URL地址參數(shù)與XML交換文檔頭屬性的關(guān)系 73. 向 NC 系統(tǒng)發(fā)送數(shù)據(jù)方式 8.3.1手動(dòng)界面發(fā)送 83.2后臺(tái)預(yù)警發(fā)送 93.3自定義程序發(fā)送 114. 回執(zhí)及異常出錯(cuò)信息 1.24.1回執(zhí)格式 124.2異常和錯(cuò)誤編碼 125. 外部交換平臺(tái)總體參數(shù)設(shè)置 1.35.1單據(jù)導(dǎo)入方式 135.2單篇最大傳輸上限 145.3 導(dǎo)入過程是否記錄中間文件 145.4 外部系統(tǒng)默認(rèn)帳套 145.5 設(shè)置客戶端 IP 范圍 145.6接收公司匹配規(guī)則 155.7 回執(zhí)文件后臺(tái)備份 155.8 回執(zhí)和導(dǎo)出文件編碼格式 156. 單據(jù)流水號(hào)和單據(jù)并發(fā)控制 1.56.1 單據(jù)流水號(hào)的概念和

3、作用 156.2 單據(jù)并發(fā)控制 16第三章單據(jù)交換規(guī)則定義 1.71. 基礎(chǔ)篇簡(jiǎn)單單據(jù)配置 1.71.1 表頭記錄的配置 191.2 表體記錄的配置 201.3 字段屬性項(xiàng)的配置 212. 高級(jí)篇復(fù)雜字段配置 2.92.1 VO 記錄的配置規(guī)則 292.2 簡(jiǎn)單數(shù)組記錄的配置規(guī)則 312.3 VO 數(shù)組記錄的配置規(guī)則 332.4簡(jiǎn)單集合記錄的配置規(guī)則 352.5VO 集合記錄的配置規(guī)則 37第四章基于外部交換平臺(tái)的單據(jù)集成開發(fā) 4. 31.注冊(cè)單據(jù)相關(guān)信息 4.32.生成配置交換規(guī)則定義文件 4.63. 輔助信息項(xiàng)設(shè)置 4.9插件代碼維護(hù) 5.0第 3 頁第一章總體概述1. 外部交換平臺(tái)總體結(jié)

4、構(gòu)圖1.1.1外部交換平臺(tái)總體結(jié)構(gòu)圖外部數(shù)據(jù)交換平臺(tái)主要用于外部系統(tǒng)和 NC系統(tǒng)進(jìn)行集成。利用外部數(shù)據(jù)交 換平臺(tái),可以將外系統(tǒng)的基本檔案和業(yè)務(wù)數(shù)據(jù)發(fā)送到 NC系統(tǒng)中,并進(jìn)行相關(guān)的 業(yè)務(wù)操作,如審批、棄審,也可以通過發(fā)送 XML格式的查詢條件導(dǎo)出NC系統(tǒng) 的數(shù)據(jù)(需業(yè)務(wù)插件支持),導(dǎo)出的數(shù)據(jù)可以附著在回執(zhí)文件中,也可以直接向 外部系統(tǒng)回發(fā)HTTP請(qǐng)求。2. 外部交換平臺(tái)功能特點(diǎn)采用XML格式作為統(tǒng)一的數(shù)據(jù)交換標(biāo)準(zhǔn),為數(shù)據(jù)訪問提供簡(jiǎn)便、 統(tǒng)一的 模式。XML格式在數(shù)據(jù)表達(dá)和描述方面有著很大的優(yōu)勢(shì),逐漸成為業(yè)界 的標(biāo)準(zhǔn),采用XML格式作為交換標(biāo)準(zhǔn)格式可以很好的保護(hù)企業(yè)投資。面向服務(wù)的架構(gòu)。這使得第三

5、方系統(tǒng)可以隨時(shí)隨地向 NC系統(tǒng)發(fā)送相關(guān) 的業(yè)務(wù)數(shù)據(jù),NC內(nèi)部的預(yù)警服務(wù)及工作流引擎使得 NC系統(tǒng)可以在合適第1頁的時(shí)候向第三方系統(tǒng)傳送需要的數(shù)據(jù), 并且滿足第三方系統(tǒng)的格式規(guī)范。靈活配置。數(shù)據(jù)轉(zhuǎn)換的規(guī)則可靈活定義,獨(dú)立于應(yīng)用集成和業(yè)務(wù)邏輯, 也就是說根據(jù)不同的外部數(shù)據(jù)結(jié)構(gòu), 直接通過修改交換規(guī)則文件的定義, 即可達(dá)到各種異構(gòu)數(shù)據(jù)無縫集成的目的。自由擴(kuò)充。對(duì)于標(biāo)準(zhǔn)產(chǎn)品不支持的業(yè)務(wù)單據(jù),如果有集成需求,外部交 換平臺(tái)提供了向?qū)降亩伍_發(fā)工具,集成了所有與二次開發(fā)相關(guān)的功 能及配置,支持動(dòng)態(tài)部署,可以在用戶環(huán)境上進(jìn)行快速有效的開發(fā)。3. 外部交換平臺(tái) V50 版新增功能與外部交換平臺(tái)V3序列產(chǎn)品相

6、比,V50版外部交換平臺(tái)在功能上得到了進(jìn) 一步的完善,在易用性上也有了很大改進(jìn)。1) 單據(jù)交換規(guī)則的定義更加豐富和靈活。 可以為某一單據(jù)模型中的某一字 段定義路徑,也可以為一個(gè)集合中的實(shí)體元素定義路徑,甚至可以為某 個(gè)字段定義XML吉構(gòu)查詢的公式。這些都得益于對(duì) XPath功能的模擬, 使得XML文件間結(jié)構(gòu)轉(zhuǎn)換的能力更強(qiáng),但這個(gè)交換規(guī)則的學(xué)習(xí)成本可能 比較大,后續(xù)版本需要圖形化和簡(jiǎn)潔化。2) 為基于外部交換平臺(tái)的自定義單據(jù)的集成提供了一個(gè)快速開發(fā)工具。 這 個(gè)工具以向?qū)Х绞綄⒓梢粋€(gè)自定義單據(jù)所要做的工作貫穿起來,包 括:?jiǎn)螕?jù)信息注冊(cè)、 校驗(yàn)文件生成、 樣本數(shù)據(jù)導(dǎo)出、 輔助信息格式配置、 業(yè)務(wù)

7、插件類代碼生成和編寫, 甚至還包括業(yè)務(wù)插件類代碼的實(shí)時(shí)編譯和 部署,樣本數(shù)據(jù)的導(dǎo)入測(cè)試和結(jié)果展示等。3) 啟用NCV50新緩存機(jī)制。這不但使得外部系統(tǒng)設(shè)置、輔助信息設(shè)置和基 礎(chǔ)數(shù)據(jù)對(duì)照表的設(shè)置能夠?qū)崟r(shí)地作用于外部數(shù)據(jù)導(dǎo)入過程中, 而且對(duì)于 基本檔案數(shù)據(jù)的訪問也實(shí)現(xiàn)了實(shí)時(shí)性,效率得到了更高的優(yōu)化。4) 基礎(chǔ)數(shù)據(jù)對(duì)照導(dǎo)入功能更加豐富。 基礎(chǔ)數(shù)據(jù)對(duì)照在 V35 版根據(jù)基本檔案 自動(dòng)增加的基礎(chǔ)上,新增了基礎(chǔ)數(shù)據(jù)對(duì)照的 XML 文件增加和 EXCEL 文件增加的功能。5) 外部交換平臺(tái)總體參數(shù)配置功能更加豐富和完整。 這部分配置主要包括 單據(jù)導(dǎo)入方式、接收公司匹配規(guī)則、導(dǎo)入過程是否記錄中間文件、回執(zhí) 和

8、導(dǎo)出文件編碼格式、設(shè)置客戶端 IP 范圍等,這些功能的可配置性極 大地提高了外部交換平臺(tái)的靈活性和可擴(kuò)展性。6) 對(duì)單據(jù)導(dǎo)入過程中的并發(fā)程度進(jìn)行控制。對(duì)于某一單據(jù)類型,一共給出 了四種并發(fā)控制程度, 實(shí)施人員可根據(jù)具體情況設(shè)置合理的并發(fā)控制級(jí) 別,避免單據(jù)并發(fā)導(dǎo)入引發(fā)的錯(cuò)誤。7) 外系統(tǒng)數(shù)據(jù)實(shí)現(xiàn)后臺(tái)預(yù)警發(fā)送。借助預(yù)警平臺(tái)的定時(shí)觸發(fā)功能,系統(tǒng)可 以自動(dòng)將保存在服務(wù)端某個(gè)目錄下的外系統(tǒng)數(shù)據(jù)導(dǎo)入 NC 系統(tǒng)中,實(shí)現(xiàn) 了異步駐留的數(shù)據(jù)發(fā)送方式。8) 對(duì)數(shù)據(jù)導(dǎo)入過程中的異常進(jìn)行了重新劃分,對(duì)于錯(cuò)誤信息進(jìn)行了編碼。 前者帶來的好處就是錯(cuò)誤提示信息更加明確化, 后者主要用于第三方系 統(tǒng)程序內(nèi)部識(shí)別導(dǎo)入過程中

9、是否出現(xiàn)錯(cuò)誤以及具體的錯(cuò)誤信息。9) 進(jìn)一步約束外部交換平臺(tái)導(dǎo)入單據(jù)的語義。 對(duì)每個(gè)單據(jù)需要定義一個(gè)組 織字段, 用于確保往某個(gè)接收方, 比如說 A 公司做加載數(shù)據(jù)時(shí),導(dǎo)入的 數(shù)據(jù)能真正進(jìn)入 A 公司,這個(gè)組織字段一般是公司或者主體賬簿。 為單 據(jù)定義組織字段之后,如果數(shù)據(jù)里相應(yīng)組織字段的值不為空,則要求其 值與接受方保持一致,如果數(shù)據(jù)里相應(yīng)組織字段的值為空,則取接受方 的內(nèi)容為組織字段的值。10) 易用性改進(jìn)?!臼謩?dòng)加載界面】對(duì)文件目錄、回執(zhí)目錄、目標(biāo)URL地址、 加載成功轉(zhuǎn)移目錄的配置增加記憶功能, 就是說以相同公司相同用戶登 陸時(shí),上述各項(xiàng)的配置內(nèi)容默認(rèn)顯示為最后一次用戶設(shè)置的值,避免用

10、 戶每次都需要重新設(shè)置。 【交換規(guī)則定義】增加了查找、定位字段的功 能,單據(jù)交換規(guī)則樹上的右擊菜單也更加簡(jiǎn)練明確,同時(shí)為字段的導(dǎo)入 導(dǎo)出公式定義增加新版本的公式編輯器,定義公式更加方便簡(jiǎn)潔。上述功能我們?cè)诮酉聛淼膬?nèi)容中會(huì)具體提到。第 3 頁第 4 頁第二章 實(shí)施簡(jiǎn)介及相關(guān)注意點(diǎn)NC外部交換平臺(tái)的主要功能就是將不同外系統(tǒng)的數(shù)據(jù)導(dǎo)入NC系統(tǒng)。由于不同系統(tǒng)之間對(duì)于相同單據(jù)的數(shù)據(jù)在表示上千差萬別, 需要外部交換平臺(tái)對(duì)單據(jù)的 XML格式的外系統(tǒng)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換和數(shù)值翻譯,然后將轉(zhuǎn)換后生成的XML格式的NC標(biāo)準(zhǔn)數(shù)據(jù)實(shí)例化為NCS統(tǒng)對(duì)應(yīng)單據(jù)的數(shù)據(jù)對(duì)象,并調(diào)用業(yè)務(wù)模塊的接口(服 務(wù))進(jìn)行保存或者更新。NC系統(tǒng)

11、在后臺(tái)有一個(gè)Servlet伺候服務(wù),等待并處理客戶端的POST方法請(qǐng) 求(外部交換平臺(tái)提供界面客戶端和預(yù)警客戶端, 對(duì)于同步集成方式, 外系統(tǒng)可 以自定義發(fā)送客戶端)。客戶端往根據(jù)Servlet的URL建立的連接的輸出流中寫 待發(fā)送數(shù)據(jù)文件的內(nèi)容,而后臺(tái)服務(wù)端則從請(qǐng)求的輸入流中讀取數(shù)據(jù)文件內(nèi)容, 然后再進(jìn)行后續(xù)處理。關(guān)于客戶端發(fā)送數(shù)據(jù)的具體內(nèi)容請(qǐng)參考 2.3 節(jié)。2.1節(jié)介紹了要將某個(gè)外系統(tǒng)的某種單據(jù)類型的數(shù)據(jù)文件導(dǎo)入至NC系統(tǒng)的最簡(jiǎn)單方法。其余小節(jié)介紹了在實(shí)施數(shù)據(jù)導(dǎo)入過程中容易混淆而需要注意的地 方,或者是一些常用的工具等。1. 實(shí)施方法簡(jiǎn)介1.1 外系統(tǒng)數(shù)據(jù)導(dǎo)入的一般步驟外系統(tǒng)根據(jù)單據(jù)類型

12、將相同單據(jù)類型的數(shù)據(jù)組織在一個(gè) XML文件中,然后將 其發(fā)送到NC系統(tǒng)的某個(gè)賬套下的某個(gè)公司或集團(tuán)中(對(duì)于有賬簿信息的單據(jù)而 言,比如會(huì)計(jì)科目或者憑證,則是某個(gè)公司的某個(gè)賬簿之下) 。一般來說,如果 需要發(fā)送某種單據(jù)類型的數(shù)據(jù)至 NC系統(tǒng)中,需要如下幾步:一、注冊(cè)外部系統(tǒng)。如果不存在可用的外系統(tǒng)的話,請(qǐng)?jiān)凇巴獠肯到y(tǒng)信息注 冊(cè)”界面中注冊(cè)一個(gè)外部系統(tǒng)。二、準(zhǔn)備外系統(tǒng)數(shù)據(jù)。 這份數(shù)據(jù)可能是外系統(tǒng)直接輸出的, 也可能是二次開 發(fā)人員通過寫程序從第三方系統(tǒng)數(shù)據(jù)庫中抓出來的, 或者由 Excel 格式或其他格 式文件轉(zhuǎn)換過來的。寫這份數(shù)據(jù)時(shí),可以參考NC安裝盤附帶的XML模板,XML文件頭或者說文檔頭的

13、屬性項(xiàng)請(qǐng)參照 2.2 節(jié)詳細(xì)說明。三、配置輔助信息(可選) 。如果要導(dǎo)入的單據(jù)數(shù)據(jù)需要輔助信息配置,在 “輔助信息配置”界面根據(jù)外部系統(tǒng)、單據(jù)類型、接收公司及主體帳簿(如果帶 的話)為此次文件發(fā)送配置輔助信息。四、設(shè)置基礎(chǔ)數(shù)據(jù)對(duì)照(可選)照(對(duì)于需要參照基本檔案的字段,。如果要導(dǎo)入的單據(jù)數(shù)據(jù)需要作基礎(chǔ)數(shù)據(jù)對(duì) 如果其值不能按名稱或者編碼自動(dòng)翻譯過來 第 5 頁的話,在導(dǎo)入過程中系統(tǒng)會(huì)自動(dòng)提示必須為該值做基礎(chǔ)數(shù)據(jù)對(duì)照) ,在“基礎(chǔ)數(shù) 據(jù)對(duì)照”界面根據(jù)需要參照的外部系統(tǒng)、需要參照的基本檔案、公司(取當(dāng)前登 陸公司)及主體帳簿(如果帶的話)為需要對(duì)照的值做基礎(chǔ)數(shù)據(jù)對(duì)照。六、配置Servlet的URL地

14、址。將要發(fā)送至的帳套編碼作為 account屬性值 寫入要發(fā)送到的Servlet的URL中(或者寫入XML文件的頭中),將接收公司和 主體帳簿(如果帶的話)的代碼拼成接收方(接收公司編碼接收主體賬簿編碼) 作為receiver屬性寫入要發(fā)送到的Servlet的URL中(或者XML文件的頭中)。 詳細(xì)說明請(qǐng)參見 2.2 節(jié)。最后,就可以利用客戶端觸發(fā)該單據(jù)類型的數(shù)據(jù)文件的發(fā)送了。NC外部交換平臺(tái)內(nèi)置了常用單據(jù)類型數(shù)據(jù)的導(dǎo)入功能,對(duì)于這些單據(jù)類型,如果外系統(tǒng)數(shù)據(jù)遵照了這些單據(jù)類型的交換規(guī)則定義 (即如果外系統(tǒng)的數(shù)據(jù)嚴(yán)格 按照NC安裝盤附帶的相應(yīng)單據(jù)的XMLS板生成),那么按上述步驟相對(duì)比較簡(jiǎn)單 地

15、就可以導(dǎo)入數(shù)據(jù)。 但是如果外系統(tǒng)數(shù)據(jù)未能遵照單據(jù)類型的交換規(guī)則定義, 則 需要修改該單據(jù)類型的交換規(guī)則定義。 做法就是將該單據(jù)的普通交換規(guī)則定義文 件另存為特定該外部系統(tǒng)的交換規(guī)則定義文件, 并根據(jù)單據(jù)交換規(guī)則定義規(guī)范修 改該特定交換規(guī)則定義文件, 具體需要參見第三章 單據(jù)交換規(guī)則定義 ,然后再 行導(dǎo)入。對(duì)于非系統(tǒng)內(nèi)置或者自定義的單據(jù)的導(dǎo)入, 需要基于外部數(shù)據(jù)交換平臺(tái) 做二次開發(fā),這部分內(nèi)容可參見第四章。1.2 外部交換平臺(tái)服務(wù)器端文件目錄結(jié)構(gòu)外部交換平臺(tái)服務(wù)端的目錄結(jié)構(gòu)安排如圖 2.1.1 所示,其中 NC_COMMON 為安裝盤根目錄,也是中間件的工作目錄。從上圖可以看出,外部交換平臺(tái)配置

16、文件目錄 pfxx與webapps 樣同在安 裝盤根路徑下,其中:pfxxtemp 目錄,存貯外部交換平臺(tái)接受到的原始數(shù)據(jù)文件、 轉(zhuǎn)換翻譯完畢的 標(biāo)準(zhǔn) XML 文件、傳送失敗的文件。xmleditor 目錄,存放校驗(yàn)文件管理的樣式文件,可不用考慮。exportbills 目錄,存放外部交換平臺(tái)發(fā)送給外系統(tǒng)的數(shù)據(jù)文件。billdefine 目錄,存放所有需要交換的檔案和單據(jù)的交換規(guī)則文件。auxiregister目錄,每個(gè)模塊在這個(gè)目錄下注冊(cè)一個(gè)文件, 文件的內(nèi)容是模塊 所涉及單據(jù)的輔助信息格式。詳細(xì)情況參考 4.3節(jié)輔助信息項(xiàng)設(shè)置。bus in essprocessor目錄,每個(gè)模塊在這個(gè)目錄

17、下注冊(cè)一個(gè)文件,文件的內(nèi)容是模塊所涉及單據(jù)在外部交換平臺(tái)的注冊(cè)信息,如單據(jù)類型、業(yè)務(wù)插件類名稱、 業(yè)務(wù)操作、單據(jù)導(dǎo)入范圍、單據(jù)加鎖級(jí)別等。詳細(xì)內(nèi)容參考 4.1節(jié)注冊(cè)單據(jù)相關(guān) 信息。billconfiginfo目錄,每個(gè)模塊在這個(gè)目錄下注冊(cè)一個(gè)文件,文件的內(nèi)容是模 塊所涉及單據(jù)的基本信息,如表和 V0對(duì)象名。詳細(xì)內(nèi)容參考4.1節(jié)注冊(cè)單據(jù)相 關(guān)信息。sendurl.xml文件,定義了 NC系統(tǒng)通過HTTP回發(fā)數(shù)據(jù)給外系統(tǒng)時(shí)的各種 參數(shù),如發(fā)送地址、業(yè)務(wù)操作、發(fā)送方、接受方、單據(jù)類型等等。globalset.xml用于存放外部交換平臺(tái)的全局參數(shù), 如默認(rèn)帳套、單篇最大傳 輸上限等。-:一I NC.C

18、OMMONant bin 匚口時(shí)sjb?啟-0口心 H- - -E-ii-iE.-external Framework hotwebs ierp initdatarule lib middlswars module?auxiregister billconFiginfo bl 血 fine businesspro cewhcif exportbillf pfxxtemp receivedbills xmleditora Jj webapps圖2.1.1外部交換平臺(tái)服務(wù)端文件目錄結(jié)構(gòu)2. Servlet的URL地址參數(shù)與XML交換文檔頭屬性的關(guān)系在外系統(tǒng)的單據(jù)數(shù)據(jù)的導(dǎo)入過程中需要用到一些初始化信

19、息,如帳套、接收方(包括接收公司和主體賬簿)、數(shù)據(jù)所屬外部系統(tǒng)(發(fā)送方)、單據(jù)類型、業(yè)務(wù) 處理(新增、更新還是查詢)等。這部分?jǐn)?shù)據(jù)可以在Servlet的URL地址的參數(shù)中指定,也可以在XML數(shù)據(jù)文件的文檔頭屬性中指定,但是在 Servlet的URL 地址的參數(shù)中指定的信息比在 XML數(shù)據(jù)文件的文檔頭屬性中指定的信息有更高 的優(yōu)先級(jí)別。比如在 Servlet的URL地址參數(shù)中指定receiver=yk,而在XML數(shù) 據(jù)文件的文檔頭屬性中指定receiver=yy,則最終還是將數(shù)據(jù)發(fā)送到y(tǒng)k公司。下面我們依據(jù)實(shí)例來逐一介紹各個(gè)常用屬性。圖2.2.1是一個(gè)典型的NC服務(wù)器的 Servlet 的 UR

20、L 地址,“26:80/service/XChangeServle” 是后 臺(tái)Servlet的服務(wù)名,V50之前的版本直接指定Servlet的類名,現(xiàn)在指定的是包 裝之后的服務(wù)名?!埃俊碧?hào)之后的“ account=0001 &receiver=yy”就是設(shè)置的URL 地址參數(shù),一般情況下這個(gè)地方只設(shè)置帳套編碼和接收方兩個(gè)屬性。至于這兩個(gè)屬性的含義下面會(huì)介紹到。httpl 2S:BQfserviceA(ChangeServlet?account0001 &receker=yy圖2.2.1典型Servlet的URL地址圖2.2.2是一個(gè)典型的XML文檔頭,

21、文檔頭的根標(biāo)簽名是ufinterface,后面 跟著就是各種初始化信息的設(shè)置。我們將這些屬性分為三類:必須設(shè)置的屬性、 根據(jù)Servlet的URL參數(shù)設(shè)置決定是否必設(shè)的屬性和根據(jù)需要決定是否設(shè)置的屬 性。伽 廊昭皿弧曲醴魁泄b-wtarto dcttoMerf 創(chuàng)聊(Mtoc* 甌訓(xùn)対耐啪砒 senchange11 proc-adtf ra-yk1 replace: Y 制伽伽、 圖2.2.2典型XML文檔頭【必須設(shè)置的屬性】:billtype屬性,這個(gè)屬性值決定了這個(gè) XML文件(文檔)中所有單據(jù)的單據(jù)類型,外部交換平臺(tái)所有的處理都是圍繞單據(jù)類型的。sender屬性,這個(gè)屬性值設(shè)置的是外系統(tǒng)

22、編碼,指定的是數(shù)據(jù)的來源系統(tǒng), 即習(xí)慣上所說的發(fā)送方。proc屬性,這個(gè)屬性值設(shè)置對(duì)文件中所有單據(jù)要做的操作, 如新增add、更 新update、刪除delete 查詢query等等。單據(jù)具體支持哪些業(yè)務(wù)操作可以到二 次開發(fā)工具-交換平臺(tái)設(shè)置-交換單據(jù)設(shè)置中查詢?!靖鶕?jù)Servlet的URL參數(shù)設(shè)置決定是否必設(shè)的屬性】:這些屬性其實(shí)也是必設(shè)屬性,但如果Servlet的URL參數(shù)里面設(shè)置了這幾個(gè) 屬性的話,XML文檔頭里面可以不設(shè)置這幾個(gè)屬性值,即使設(shè)置了也不會(huì)起作用。account屬性,這個(gè)屬性指定要將數(shù)據(jù)導(dǎo)入至 NC系統(tǒng)的哪個(gè)帳套。receiver屬性,這個(gè)屬性指定數(shù)據(jù)的接收方。接收方又是有

23、一定格式的, 可以將這個(gè)格式用一個(gè)正則表達(dá)式表示為:接收方=(公司編碼|公司主鍵)(主體帳簿編碼)?第 8 頁也就是說接收方根據(jù)單據(jù)類型的需要,可以是公司或者公司下的主體帳簿。 當(dāng)接收方是公司,如編碼為“ yy ”名稱為“ yk”的公司,其主鍵為“ 1046”,那 么根據(jù)外部交換平臺(tái)總體參數(shù)設(shè)置中的接收公司匹配規(guī)則的設(shè)置(參考 2.5 節(jié)) 可設(shè)為 receiver=yy 或者 receiver=1046 。當(dāng)接收方是公司下的主體帳簿時(shí),如 編碼為“ yy”名稱為“ yk”主鍵為“ 1046”的公司下有一編碼為“ yy-0001 ”名 稱為“ yy 公司基準(zhǔn)帳簿”的主體帳簿時(shí),根據(jù)外部交換平臺(tái)

24、總體參數(shù)設(shè)置中的 接收公司匹配規(guī)則可將接收方屬性設(shè)置為 receiver=yyyy-0001 或者 receiver=1046yy-0001 ?!靖鶕?jù)需要決定是否設(shè)置的屬性】 :filename 屬性,在數(shù)據(jù)導(dǎo)入過程中,對(duì)于每張單據(jù)我們都可以記錄其原始數(shù) 據(jù)、翻譯后數(shù)據(jù),對(duì)整個(gè)文檔我們也可以記錄其導(dǎo)入后的回執(zhí)信息, 這個(gè) filename 屬性的值就是用于記錄上述數(shù)據(jù)文件時(shí)的文件名。當(dāng)然,如果您沒有設(shè)置的話, 系統(tǒng)會(huì)為每個(gè)導(dǎo)入的文檔默認(rèn)生成文件名。isexchange屬性,這個(gè)屬性值決定了在外系統(tǒng)的數(shù)據(jù)在導(dǎo)入NC系統(tǒng)的過程中,是否使用外部交換平臺(tái)提供的翻譯轉(zhuǎn)換和校驗(yàn)功能。 正常情況下應(yīng)將這個(gè)屬

25、 性設(shè)置為“丫”,或者干脆不設(shè)。除非從其他NC系統(tǒng)產(chǎn)生的符合NC轉(zhuǎn)換后標(biāo)準(zhǔn) 的 XML 數(shù)據(jù)直接導(dǎo)入 NC 系統(tǒng),并且很多基礎(chǔ)檔案數(shù)據(jù)字段直接用的是 PK 值, 此時(shí)可以設(shè)置屬性為“ N”和“ n”,可避免無謂的翻譯轉(zhuǎn)換。replace 屬性,這個(gè)屬性值決定是否允許將相同單據(jù)往同一個(gè)接收方重復(fù)導(dǎo) 入。 V50 版的插件一般允許相同單據(jù)重復(fù)導(dǎo)入, 除了將第一次導(dǎo)入視作新增之外, 其余導(dǎo)入視作更新。關(guān)于這方面的具體內(nèi)容請(qǐng)參見 2.6節(jié)內(nèi)容。如果不允許相同 單據(jù)的重復(fù)導(dǎo)入,那么將這個(gè)屬性值設(shè)置為“N”或者“n”。否則將其設(shè)置為“丫” 或者干脆不設(shè)??偟膩碚f,XML文檔頭的【必須設(shè)置的屬性】和【根據(jù)

26、Servlet的URL參數(shù) 設(shè)置決定是否必設(shè)的屬性】 ,均為在外系統(tǒng)交換文檔發(fā)送過程中必須得到的初始 化信息,可以在Servlet的URL地址參數(shù)中設(shè)置,也可以在XML文檔頭屬性中設(shè) 置,但必須進(jìn)行設(shè)置。而對(duì)于 XML文檔頭的【根據(jù)需要決定是否設(shè)置的屬性】, 也可以在Servlet的URL地址的參數(shù)中設(shè)置,但一般不推薦這么做。3. 向 NC 系統(tǒng)發(fā)送數(shù)據(jù)方式NC外部交換平臺(tái)支持客戶端以同步和異步兩種方式發(fā)送(加載)外部數(shù)據(jù)。 其中NC外部交換平臺(tái)為異步加載方式內(nèi)置了兩類客戶端:界面和預(yù)警,而對(duì)于 同步加載方式,外系統(tǒng)需要編寫往 NC后臺(tái)Servlet發(fā)送文件的代碼,下面分別 介紹它們:3.1

27、手動(dòng)界面發(fā)送這是外部數(shù)據(jù)最簡(jiǎn)單也最常用的一種客戶端發(fā)送方式, 點(diǎn)擊:客戶化-外 部交換平臺(tái)-外部數(shù)據(jù)發(fā)送,在打開的界面中選擇需要發(fā)送的文件,如有必 要,修改目標(biāo)URL地址的receiver參數(shù)值,選擇“發(fā)送”菜單即可。詳細(xì)內(nèi)容 請(qǐng)參考外部交換平臺(tái)的用戶手冊(cè)。-Ulxl外部數(shù)據(jù)發(fā)送票屣丈件M丑|0.9肚11力的匚andSeiHing訓(xùn)圖11面橢事備田)D睡質(zhì)加再目錄肉總輩隹25破BO.回執(zhí)耳件冊(cè).容抿朗轂15衛(wèi)件犬擔(dān)熄會(huì)計(jì)科m.wnl72004-1 D-2D1DC.1DC4Blijian圖2.3.1外部數(shù)據(jù)發(fā)送界面3.2后臺(tái)預(yù)警發(fā)送點(diǎn)擊:客戶化-預(yù)警平臺(tái)-預(yù)警條件配置-條目配置-增加,在 彈出的

28、預(yù)警條目設(shè)置對(duì)話框中配置一個(gè)類型為“外部交換數(shù)據(jù)后臺(tái)發(fā)送”的預(yù)警條目,其預(yù)警條件的配置如圖2.3.2所示。在該預(yù)警條件標(biāo)簽頁中內(nèi)置 了四個(gè)預(yù)警條件:待發(fā)送文件目錄該預(yù)警條件閾值用于設(shè)置用戶數(shù)據(jù)文件目錄(不能為空);回執(zhí)目錄該預(yù)警條件閾值用于設(shè)置存放單據(jù)導(dǎo)入之后的回執(zhí)信息的目錄,每張單據(jù)一個(gè)回執(zhí)文件,如果用戶不設(shè)置這個(gè)閾值,系統(tǒng)在待發(fā)送文件目錄下 默認(rèn)創(chuàng)建目錄/logdir作為回執(zhí)目錄;發(fā)送后文件轉(zhuǎn)移目錄該預(yù)警條件閾值對(duì)于想將能夠成功加載的文件備份走的用戶有用(一般不用設(shè)置);發(fā)送配置信息該預(yù)警條件閾值是一個(gè)可擴(kuò)展的預(yù)警條件閾值,它用于配置將什么樣的 文件發(fā)送到哪個(gè)URL地址(不能為空)。這個(gè)配

29、置值的格式如下:第一部分是單據(jù)類型:汕卯岡朗;即腑仙;啊血性制驗(yàn)lh說:叫溯i酣儡冊(cè)腳口1肥毗miH開僦陋附刖第二部分是外系統(tǒng)編碼:billtjpe-Test1;sjsn()=仙;問冊(cè)阱側(cè):仙汕悅:郵甘加輸岬澗At加鹹和儆陋附明第三部分是目的URL地址:billtype=Ie5t1;si/5no:仙;urlM他財(cái)ttp:血伽比M&ui酣融儷撕呱t加wntM曲吧pi冊(cè)劉上面所列發(fā)送配置信息項(xiàng)取值的意思就是將單據(jù)類型是“Testi”,外部系統(tǒng)編碼為“ 1101 ”的文件發(fā)送到NC外部數(shù)據(jù)接收的Servlet地址: urladdress=http:/localhost:80/service/XCha

30、 ngeServlet?accou nt=0001 &rece iver=yy。這個(gè)地方如果我們將單據(jù)類型的取值設(shè)為“XX ”或“ xx ”的話,表示任何單據(jù)類型的文件都可以往某個(gè)地址發(fā)送,相當(dāng)于通配符的意思,但對(duì)于外部系統(tǒng)編碼沒有通配符。圖232預(yù)警條目配置發(fā)送配置信息是一個(gè)可擴(kuò)展的預(yù)警條件閾值, 其的意思就是用戶可以在 預(yù)警平臺(tái)的類型注冊(cè)對(duì)話框中修改名為“外部交換數(shù)據(jù)后臺(tái)發(fā)送”的預(yù)警類 型定義,增加作為預(yù)警條件的發(fā)送配置信息項(xiàng),以實(shí)現(xiàn)數(shù)據(jù)文件的多點(diǎn)發(fā)送。 點(diǎn)擊:客戶化-預(yù)警平臺(tái)-預(yù)警條件配置-在“類型配置”標(biāo)簽頁 選中“外部數(shù)據(jù)交換后臺(tái)發(fā)送”行-類型配置-編輯,彈出“類型注 冊(cè)”對(duì)話框,如

31、圖2.3.2所示,為其增加了一個(gè)發(fā)送配置信息閾值項(xiàng)。需要 注意的是該新增閾值項(xiàng)的名稱必須以字符串“ postconfig ”打頭,如“postconfigT、“postconfig12”,等。這樣配置更多的發(fā)送配置信息, 使得能有選擇地將某個(gè)特殊單據(jù)類型特殊外部系統(tǒng)的數(shù)據(jù)文件能夠發(fā)送到 某個(gè)指定服務(wù)器地址去。圖232預(yù)警類型注冊(cè)配置完畢,即可由預(yù)警平臺(tái)調(diào)度和執(zhí)行發(fā)送任務(wù)。 另請(qǐng)注意,在待發(fā)送 文件目錄、回執(zhí)目錄和發(fā)送后轉(zhuǎn)移目錄的設(shè)置上本地客戶端和服務(wù)器端文件 系統(tǒng)的差別,如目錄“ c:/aaa指的是服務(wù)器端文件系統(tǒng)路徑而非客戶端文 件系統(tǒng)地址。3.3自定義程序發(fā)送以Java代碼為例,介紹外系統(tǒng)

32、作為客戶端如何向NC系統(tǒng)發(fā)送數(shù)據(jù):/獲取Servlet連接并設(shè)置請(qǐng)求的方法String url =http:/10.73225:8080/service/XchangeServlet ”;URL realURL = new URL(url);HttpURLC onn ecti on conn ecti on = (HttpURLC onn ecti on) realURL.ope nConn ecti on();conn ecti on. setDoOutput(true);connection.setRequestProperty( Contect-type ” text/xml );con

33、n ecti on. setRequestMethod( Post);/將Document對(duì)象寫入連接的輸岀流中File file = new File(C:/samples/psndoc.xmlIn putStream in put = new FileI nputStream(file);Document doc =XMLUtil.getDocumentBuilder().parse(input);Writer writer = new OutputStreamWriter(connection.getOutputStream(),UTF-8 );XMLUtil.printDOMTree(

34、writer, doc, 1);/ 按照 XML 文件格式輸岀/從連接的輸入流中取得回執(zhí)信息In putStream in putStream = conn ecti on. get In putStream();Document resDoc = XMLUtil.getDocumentBuilder().parse(inputStream);/ 解析為 Doc 對(duì)象/對(duì)回執(zhí)結(jié)果的后續(xù)處理說明關(guān)于XML操作可以用XMLUtil類,關(guān)于發(fā)送的 API,可以直接用PostFile類4. 回執(zhí)及異常出錯(cuò)信息4.1回執(zhí)格式加載外部系統(tǒng)數(shù)據(jù)時(shí),對(duì)于導(dǎo)入的數(shù)據(jù)文件中的每張單據(jù),都會(huì)給客戶端返 回一個(gè)回執(zhí)信

35、息,記錄單據(jù)導(dǎo)入成功與否,以及失敗的原因?;貓?zhí)信息也是一個(gè) XML文件,其一般格式如下:- 1002 lUdiba 4bscu bas0 l-rBsultcodEresultdesc 叩 ticini 單 #100210dlb34bEcijbasOjffeibS.單 IE 100210dlb34bsciibasOibS!content/圖2.4.1回執(zhí)文檔的一般格式回執(zhí)信息中還可以嵌套單據(jù),這個(gè)時(shí)候可以將外部交換平臺(tái)看作簡(jiǎn)單的信息 中心,外系統(tǒng)發(fā)送過來一個(gè)消息,NC系統(tǒng)回應(yīng)一個(gè)消息。如查詢類的單據(jù),夕卜 系統(tǒng)發(fā)送一個(gè)表示查詢條件的信息,NC系統(tǒng)返回所有符合查詢條件的單據(jù),這 些單據(jù)就是內(nèi)嵌在回

36、執(zhí)信息中的。 再如,用這個(gè)功能來實(shí)現(xiàn)NC系統(tǒng)和外系統(tǒng)在 某種程度上的流程集成,外系統(tǒng)發(fā)送一張走流程平臺(tái)的單據(jù),然后再由外部交換 平臺(tái)返回流程平臺(tái)處理后得到的單據(jù)。4.2異常和錯(cuò)誤編碼異常信息對(duì)于使用外部交換平臺(tái)是極為重要的,有助于實(shí)施人員分析數(shù)據(jù)導(dǎo) 入結(jié)果,查找數(shù)據(jù)導(dǎo)入失敗原因。外部交換平臺(tái)中的異常分類:環(huán)境初始化異常、 單據(jù)轉(zhuǎn)換異常和業(yè)務(wù)插件處理異常。這個(gè)劃分是基于一個(gè)外系統(tǒng)某單據(jù)類型的 XML交換文檔在導(dǎo)入NC系統(tǒng)過程中所需處理階段而給出的。如果單據(jù)導(dǎo)入失 敗,那么在回執(zhí)信息的vresultdescriptio n中會(huì)給出發(fā)生了什么異常以及出錯(cuò)信 息。如果需要更詳細(xì)的出錯(cuò)信息,請(qǐng)檢查后臺(tái)日

37、志,外部交換平臺(tái)對(duì)于導(dǎo)入數(shù)據(jù) 過程中發(fā)生的異常,記錄在 nchome/nclogs/server/pfxx-log.log日志文件中。錯(cuò)誤編碼則直接定位于發(fā)生錯(cuò)誤的分類:配置錯(cuò)誤、數(shù)據(jù)錯(cuò)誤、系統(tǒng)錯(cuò)誤, 然后在某種錯(cuò)誤下再進(jìn)行細(xì)分。這些錯(cuò)誤信息都通過錯(cuò)誤編碼的方式在單據(jù)導(dǎo)入的回執(zhí)信息的resultcode中給出。這些錯(cuò)誤編碼信息主要是給第三方系統(tǒng)程序 內(nèi)部用于識(shí)別數(shù)據(jù)交換過程中是否出現(xiàn)問題,以及具體出了什么問題,便于程序內(nèi)進(jìn)行控制。對(duì)于實(shí)施人員,如果拿到一份回執(zhí),只需要知道1表示正確傳送,其他的代表各種錯(cuò)誤碼,一般均為負(fù)數(shù)。5. 外部交換平臺(tái)總體參數(shù)設(shè)置點(diǎn)擊:客戶化-外部交換平臺(tái)-交換平臺(tái)日志-

38、參數(shù)設(shè)置,在交換 平臺(tái)日志界面打開參數(shù)設(shè)置對(duì)話框, 如圖2.5.1所示。在這個(gè)對(duì)話框中,可以設(shè) 置在外部數(shù)據(jù)導(dǎo)入過程中起到相當(dāng)作用的參數(shù),您可以根據(jù)需要對(duì)這些參數(shù)的設(shè)置進(jìn)行改動(dòng)。設(shè)置的參數(shù)值實(shí)時(shí)生效,不用重起后臺(tái)服務(wù)器。圖2.5.1總體參數(shù)設(shè)置F面我們來介紹這些參數(shù)的功能及需要注意的地方:5.1單據(jù)導(dǎo)入方式外部交換平臺(tái)以交換文檔中的單據(jù)為單位, 支持非獨(dú)立事務(wù)和獨(dú)立事務(wù)兩種 導(dǎo)入方式,即同一 XML文檔對(duì)象中的所有單據(jù)批量處理和同一 XML文檔對(duì)象 中的每張單據(jù)單獨(dú)處理。例如,一個(gè)憑證類型的 XML文檔由一百張憑證組成, 如果將交換平臺(tái)總體參數(shù)的單據(jù)導(dǎo)入規(guī)則設(shè)置為“同一文檔里的所有單據(jù)批量處

39、理”的話,那么如果在導(dǎo)入這個(gè)文檔的過程中有任何一張憑證發(fā)生錯(cuò)誤,將導(dǎo)致 所有的這一百張憑證導(dǎo)入失敗, 但是如果單據(jù)導(dǎo)入規(guī)則設(shè)置為 “同一文檔里的每 張單據(jù)獨(dú)立處理”的話,那么即使這一百張憑證里有些憑證在導(dǎo)入過程中失敗了, 也不會(huì)影響到其余單據(jù)的成功導(dǎo)入。 通俗一點(diǎn)的說話就是, 非獨(dú)立事務(wù)就是文檔 中的所有單據(jù)要么一塊兒成功, 要么一塊兒失敗, 而獨(dú)立事務(wù)就是文檔中的每張 單據(jù)的成功導(dǎo)入與否不會(huì)受其他單據(jù)導(dǎo)入成功與否的影響, 當(dāng)然如果從文檔中導(dǎo) 入的單據(jù)有先后順序的話, 選擇獨(dú)立事務(wù)可能也就起不到作用了。 系統(tǒng)默認(rèn)的單 據(jù)導(dǎo)入方式是“同一文檔里的所有單據(jù)批量處理” 。5.2 單篇最大傳輸上限對(duì)于

40、要導(dǎo)入的單篇文檔或者單個(gè)文件來說, 其大小是受服務(wù)器端系統(tǒng)性能影 響的。系統(tǒng)默認(rèn)單篇最大傳輸上限是 2048KB,這個(gè)大小一般系統(tǒng)的存儲(chǔ)器都能 夠滿足。如果用戶導(dǎo)入的文件大于設(shè)置的值, 回執(zhí)文件就會(huì)提示 “文件長(zhǎng)度超過 設(shè)定長(zhǎng)度”的錯(cuò)誤。因此,用戶可以根據(jù)需要,如待導(dǎo)入文件的大小和機(jī)器性能調(diào)整這個(gè)值,最大大概能設(shè)置到 214 - 215KB,也就是20000KB左右,建議設(shè)置 在 5000KB 以下,以便得到較好的傳輸性能。5.3 導(dǎo)入過程是否記錄中間文件這個(gè)參數(shù)主要用于控制所導(dǎo)入文檔的每張單據(jù)是否在服務(wù)器本地做備份記 錄,主要做兩次備份, 分別是原始單據(jù)備份和轉(zhuǎn)換翻譯后單據(jù)的備份, 前者備份

41、 至 目 錄 NC_HOME/pfxx/pfxxtemp/indocs/ 下 , 后 者 備 份 至 目 錄 NC_HOME/pfxx/pfxxtemp/translated/ 下。這些信息在找錯(cuò)排錯(cuò)中是非常有用的, 比如發(fā)生找不到某個(gè)字段元素的錯(cuò)誤, 它可能是交換規(guī)則定義錯(cuò)誤引起, 也可能 是外系統(tǒng)數(shù)據(jù)格式錯(cuò)誤引起, 這個(gè)時(shí)候?qū)浞莸膶?dǎo)入原始單據(jù)和轉(zhuǎn)換后的單據(jù)做 一個(gè)對(duì)比,便可以很快定位問題。 系統(tǒng)默認(rèn)是勾選“導(dǎo)入過程是否記錄中間文件” 。5.4 外部系統(tǒng)默認(rèn)帳套將某個(gè)外系統(tǒng)數(shù)據(jù)文檔導(dǎo)入到哪個(gè)帳套是由 Servlet 的 URL 地址的 account 參數(shù)或者文檔根屬性account決定的

42、,但是如果這兩個(gè)地方都沒有申明這個(gè)值, 那么系統(tǒng)就將外部數(shù)據(jù)導(dǎo)入至這個(gè)參數(shù)設(shè)置的帳套中。 系統(tǒng)默認(rèn)沒有設(shè)置這個(gè)屬 性,但打開對(duì)話框就會(huì)顯示當(dāng)前系統(tǒng)所有帳套編碼。5.5 設(shè)置客戶端 IP 范圍這個(gè)參數(shù)屬于外部交換平臺(tái)安全性方面的設(shè)置。我們?cè)谶@里設(shè)置允許向 NC 系統(tǒng)發(fā)送數(shù)據(jù)文件的地址范圍, 這樣我們可以確保與合法的外部系統(tǒng)進(jìn)行數(shù)據(jù)集 成。如,假設(shè)目前我們只允許地址為 55和 33兩個(gè) IP 地址的客戶 端發(fā)送數(shù)據(jù),那么我們就啟用這個(gè)屬性設(shè)置,并將這兩個(gè) IP 地址輸入至其輸入 框中,中間使用;號(hào)隔開。設(shè)置完這個(gè)屬性之后,我們?cè)偃ダ眠@兩個(gè) IP 地址第 16 頁上

43、的客戶端發(fā)送外系統(tǒng)數(shù)據(jù)的話,回執(zhí)文件就會(huì)提示“發(fā)送方地址不合法! ”。5.6 接收公司匹配規(guī)則接收公司匹配規(guī)則是指在導(dǎo)入過程中如何對(duì)接收方參數(shù)中指定的公司值進(jìn) 行翻譯,有兩個(gè)可選值:按編碼或者按 PK系統(tǒng)默認(rèn)值是“按編碼”。比如用戶 現(xiàn)在要將外部數(shù)據(jù)發(fā)送到編碼為“ yk”,PK為“1046”的公司,如果用戶將其 設(shè)置成“按編碼”,那么在Servlet的URL參數(shù)或者待導(dǎo)入文檔根屬性的地方寫 上:receiver=yk,如果用戶將其設(shè)置成“按PK,那么相應(yīng)寫的是receiver=1046 這方面的內(nèi)容可以參考 2.2 節(jié)。5.7 回執(zhí)文件后臺(tái)備份對(duì)于導(dǎo)入的每一張單據(jù), 外部交換平臺(tái)都會(huì)給客戶端或

44、者發(fā)送方一個(gè)回執(zhí)信 息即一個(gè) XML 格式的回執(zhí)文檔。如果您使用的數(shù)據(jù)發(fā)送方式是手動(dòng)界面發(fā)送或 者后臺(tái)預(yù)警發(fā)送的話, 回執(zhí)信息都會(huì)以文件的形式保存到指定目錄下, 但是如果 通過自定義程序?qū)崟r(shí)發(fā)送數(shù)據(jù)的話, 當(dāng)出現(xiàn)傳輸異常時(shí)就需要在后臺(tái)備份一下單 據(jù)的每個(gè)回執(zhí)文件, 目的就是檢查返回給發(fā)送方的數(shù)據(jù)是否正確。 回執(zhí)文件后臺(tái) 備份這個(gè)參數(shù)就是用于控制是否后臺(tái)備份這個(gè)文件,系統(tǒng)默認(rèn)不進(jìn)行備份。5.8 回執(zhí)和導(dǎo)出文件編碼格式這也是一個(gè)便利工具,目的就是使得外部交換平臺(tái)導(dǎo)出的 XML 數(shù)據(jù)文件或者 單據(jù)回執(zhí)文件的編碼格式可配置。如果與NC系統(tǒng)交互的第三方系統(tǒng)只能處理gb2312 編碼格式的文件,經(jīng)過配置之

45、后就可以相當(dāng)方便的達(dá)到目的,只是此時(shí) 如果回執(zhí)信息包含非gb2312編碼字符,則可能顯示不正常。系統(tǒng)默認(rèn)回執(zhí)和導(dǎo) 出文件的編碼格式是UTF-8,外部交換平臺(tái)同時(shí)支持 UTF-8和gb2312格式文件 的導(dǎo)入。6. 單據(jù)流水號(hào)和單據(jù)并發(fā)控制6.1 單據(jù)流水號(hào)的概念和作用單據(jù)流水號(hào)在外部交換平臺(tái)中是一個(gè)相當(dāng)重要的概念, 可以將其看作一張單 據(jù)在外部交換平臺(tái)中的標(biāo)識(shí)。 一般情況下, 需要為待導(dǎo)入的每張單據(jù)定義一個(gè)流 水號(hào),如果未定義的話, 系統(tǒng)會(huì)自動(dòng)為導(dǎo)入的每張單據(jù)生成一個(gè)獨(dú)一無二的流水 號(hào)。外部交換平臺(tái)將同一單據(jù)類型并具有相同流水號(hào)的單據(jù)看作是同一張單據(jù), 如果重復(fù)往同一接收方發(fā)送具有相同流水號(hào)的

46、單據(jù)時(shí), 第一次會(huì)在 NC 系統(tǒng)新增 該單據(jù),其后均更新已導(dǎo)入單據(jù)。 但如果往不同接收方導(dǎo)入具有相同流水號(hào)的單 據(jù),第一次同樣是新增該單據(jù), 其后也是新增且是往不同接收方新增, 但往往會(huì) 發(fā)生編碼名稱重復(fù)等錯(cuò)誤, 取決于不同的檔案或者單據(jù)在不同組織內(nèi)是否控制編碼或者名稱重復(fù)。我們可以將數(shù)據(jù)導(dǎo)入與界面錄入做一比較:往某個(gè)接收方如A公司發(fā)送某種單據(jù)類型的數(shù)據(jù),就相當(dāng)于 A公司某個(gè)用戶登陸并打開相應(yīng)單據(jù)界面進(jìn)行制 單。第一次往A公司發(fā)送某個(gè)流水號(hào)的單據(jù),就相當(dāng)于在界面新增一個(gè)單據(jù); 再一次往A公司發(fā)送具有相同流水號(hào)的單據(jù),就相當(dāng)于在界面上修改原來新增 的單據(jù)一樣。這個(gè)時(shí)候如果將具有相同流水號(hào)的單據(jù)發(fā)

47、送至B公司的話,就相當(dāng)于以B公司某個(gè)用戶登陸系統(tǒng),在相應(yīng)單據(jù)界面上新增一張與原來在A公司新增的單據(jù)在數(shù)據(jù)上一模一樣的單據(jù)。如果根據(jù)業(yè)務(wù)這在很多系統(tǒng)中是不允許 的,外部交換平臺(tái)跟前臺(tái)界面操作一樣,同樣會(huì)報(bào)錯(cuò)。6.2單據(jù)并發(fā)控制點(diǎn)擊:客戶化-二次開發(fā)工具-交換平臺(tái)設(shè)置-交換單據(jù)設(shè)置,打開業(yè)務(wù) 插件配置界面如下。單罪息子表名單花醞識(shí)單尋換茫柚煒驅(qū)S蘇圖2.5.2為業(yè)務(wù)單據(jù)設(shè)置并發(fā)級(jí)別系統(tǒng)為每種單據(jù)類型的數(shù)據(jù)內(nèi)置了四個(gè)并發(fā)加鎖級(jí)別, 由低到高分別是:?jiǎn)?據(jù)類型、單據(jù)類型+公司(賬簿)、單據(jù)類型+流水號(hào)、單據(jù)類型+公司(賬簿)+ 流水號(hào)。第三章單據(jù)交換規(guī)則定義本章介紹在“交換規(guī)則定義”界面上如何為在外部

48、交換平臺(tái)中注冊(cè)的單據(jù)進(jìn) 行外系統(tǒng)與NC系統(tǒng)之間交換規(guī)則的定義。外部交換平臺(tái)除了支持內(nèi)置單據(jù)的標(biāo) 準(zhǔn)外系統(tǒng)數(shù)據(jù)以及U8系統(tǒng)數(shù)據(jù)的集成之外,利用單據(jù)交換規(guī)則定義擴(kuò)展對(duì)其他 外部系統(tǒng)(Sibeil,SAP等等)的第三方數(shù)據(jù)的集成的支持。關(guān)于單據(jù)交換規(guī)則 的定義,我們分兩部分來介紹,基礎(chǔ)部分介紹如何完整地為一張單據(jù)配置交換規(guī) 則,高級(jí)部分介紹單據(jù)交換規(guī)則中復(fù)雜字段及其對(duì)應(yīng)結(jié)構(gòu)的配置。1.基礎(chǔ)篇一簡(jiǎn)單單據(jù)配置簡(jiǎn)單單據(jù)是指沒有復(fù)雜字段的單子表、主子表單據(jù)。單子表只需要在交換規(guī) 則中定義一個(gè)表頭記錄。主子表則需要同時(shí)分別定義表頭和表體記錄。我們結(jié)合一個(gè)主子類型的測(cè)試單據(jù)的交換規(guī)則的配置,來介紹配置外部交換平

49、臺(tái)交換規(guī)則文件的一般知識(shí)。關(guān)于針對(duì)包含復(fù)雜字段的單據(jù)交換規(guī)則文件的配 置,需要參考本文的高級(jí)篇。我們建立了一個(gè)簡(jiǎn)單的主子表測(cè)試單據(jù),單據(jù)類型是“ Test6。在NC系統(tǒng) 里為之建立名為 pfxx.example6.CustomerVO 的表頭 V0 類,名為 pfxx.example6.PersonVO的表體V0類,類圖如下所示:Custom erVO street : String city : String + paren俺怕t亡:String ip : String 1 iphone : StringAgg reg ate dV a lueObject - 一 一fPersonVOan

50、ustomerNumber : St ring rstName : String lastName : String圖3.1.1主子單據(jù)數(shù)據(jù)結(jié)構(gòu)類圖借助于我們的交換規(guī)則自動(dòng)生成工具,可以直接將VO結(jié)構(gòu)映射為XML的交換規(guī)則。圖3.1.2就是根據(jù)該單據(jù)類型注冊(cè)的 VO信息和表信息自動(dòng)生成的交 換規(guī)則。但由于外系統(tǒng)數(shù)據(jù)與 NC標(biāo)準(zhǔn)數(shù)據(jù)之間在名稱、結(jié)構(gòu)和語義上的差異, 需要通過手工配置來修改自動(dòng)生成的單據(jù)交換規(guī)則,以保證內(nèi)外系統(tǒng)交換時(shí)數(shù)據(jù)的完整性和有效性?,F(xiàn)在假設(shè)有一外部的XML數(shù)據(jù)樣本文件,如圖1.2所示。我們將單據(jù)根標(biāo)簽billdata定義的元素稱為單據(jù)數(shù)據(jù)元素,一個(gè)外系統(tǒng)數(shù)據(jù) 文檔可以包含多張

51、單據(jù),也就是說可以有多個(gè)根標(biāo)簽打頭的單據(jù)數(shù)據(jù)元素。由單據(jù)表頭標(biāo)簽customer_EX定義的元素稱為表頭記錄元素,一個(gè)單據(jù)數(shù)據(jù)元素只 包含一個(gè)單據(jù)表頭元素。由單據(jù)表體標(biāo)簽 person_EX定義的元素稱為表體記錄 元素,每個(gè)單據(jù)數(shù)據(jù)元素也只有一個(gè)單據(jù)表體元素,但每個(gè)單據(jù)表體元素包含多 個(gè)表體分錄元素,表示單據(jù)表頭元素對(duì)應(yīng)表頭數(shù)據(jù)項(xiàng)的多個(gè)表體數(shù)據(jù)項(xiàng)。在圖 3.1.3中所示的數(shù)據(jù)文件中表體分錄元素的標(biāo)簽是entry。ufinterface lbilltype=Test6 replace=Y receiver=yk sender=.1101 isaxchange=Y filaest6.xmH pnf

52、lt=-!-里據(jù) - 撫“單據(jù)頭 12345 Happy Ln/street? Pkmk states WA SfiD59BBB ”555 ”1234 -umntrv!勢(shì)丟體分錄標(biāo)籃 1234/0 AlarK/firt-nrne last -nameMu rlhi c/antr/-56?8 firs t- nam b?JdIiii Sniithyiast -n圖3.1.3外部XML數(shù)據(jù)文件樣本由于外系統(tǒng)數(shù)據(jù)文件的單據(jù)根標(biāo)簽為billdata,我們首先需要將該交換文檔 的根標(biāo)簽屬性值設(shè)置為billdata。如圖3.1.4所示。第 20 頁女碾規(guī)則定笑創(chuàng)亡jblll伽1根雄billdala田已刖|帥址生圖3.1.4修改交換文檔根標(biāo)簽接下來,就需要分別配置表頭和表體記錄定義了1.1表頭記錄的配置表頭記錄定義了 NC系統(tǒng)里單據(jù)表頭V0的信息及與外系統(tǒng)文件相應(yīng)單據(jù)表 頭元素的對(duì)照關(guān)系。由于

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論