NCV6X-信息交換平臺技術(shù)紅皮書_第1頁
NCV6X-信息交換平臺技術(shù)紅皮書_第2頁
NCV6X-信息交換平臺技術(shù)紅皮書_第3頁
NCV6X-信息交換平臺技術(shù)紅皮書_第4頁
NCV6X-信息交換平臺技術(shù)紅皮書_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息交換平臺信息交換平臺實施技術(shù)紅皮書實施技術(shù)紅皮書NC-UAP 6.0用友 NC-UAP2021-11-11第 2 頁目目 錄錄第一章第一章總體概述總體概述.11.信息交換平臺總體結(jié)構(gòu).12.信息交換平臺功能特點.13.信息交換平臺 V50 版新增功能.24.信息交換平臺 V55 版新增功能.35.信息交換平臺 V60 版新增功能.3第二章第二章實施簡介及相關(guān)注意點實施簡介及相關(guān)注意點.41.實施方法簡介.4外系統(tǒng)數(shù)據(jù)導(dǎo)入的一般步驟.4信息交換平臺服務(wù)器端文件目錄結(jié)構(gòu).52.Servlet 的 URL 地址參數(shù)與 XML 交換文檔頭屬性的關(guān)系.63.向 NC 系統(tǒng)發(fā)送數(shù)據(jù)方式.7手動界面發(fā)送

2、.7后臺預(yù)警發(fā)送.8自定義程序發(fā)送.114.回執(zhí)及異常出錯信息.12回執(zhí)格式.12異常和錯誤編碼.14查詢及回執(zhí)格式樣例.145.信息交換平臺總體參數(shù)設(shè)置.23外部系統(tǒng)默認帳套.24單篇最大傳輸上限.24導(dǎo)入過程是否記錄中間文件.25回執(zhí)文件后臺備份.25回執(zhí)和導(dǎo)出文件編碼格式.25單據(jù)導(dǎo)入規(guī)則設(shè)置.26設(shè)置客戶端IP范圍.266.單據(jù)流水號和單據(jù)并發(fā)控制.26單據(jù)流水號的概念和作用.26單據(jù)并發(fā)控制.277.日志查看.278.翻譯器配置.30第三章第三章單據(jù)交換規(guī)則定義單據(jù)交換規(guī)則定義.321.校驗文件全局配置.322.表記錄的配置.343.字段屬性項的配置.34第 3 頁第四章第四章基于信

3、息交換平臺的單據(jù)集成開發(fā)基于信息交換平臺的單據(jù)集成開發(fā).441.注冊單據(jù)相關(guān)信息.442.生成配置交換規(guī)則定義文件.453.輔助信息項設(shè)置.484.插件代碼維護.49第五章第五章 單據(jù)集成示例單據(jù)集成示例.511.問題描述.512.設(shè)計.513.具體開發(fā)指導(dǎo).513.1單據(jù)插件信息注冊.513.2單據(jù)轉(zhuǎn)換規(guī)則定義.513.3插件代碼編寫和部署.523.4修改單據(jù)轉(zhuǎn)換規(guī)則.523.5手動加載測試.53第六章第六章 安全安全.541.加密類編寫.542.加密類注冊.56第七章第七章 擴展擴展.57第八章第八章 JMS 及大文件傳輸模式及大文件傳輸模式.591 信息交換平臺異步通信解決方案 .591

4、.1信息交換平臺現(xiàn)狀及存在的問題.591.2需求分析.591.3 JMS簡介.601.3JMS Client消息交互圖.621.5解決方案.622.JMS 傳輸模式.643. JMS Client For NC6.0.654 大文件傳輸模式 .85附錄附錄.861 發(fā)送結(jié)果錯誤碼 .862K 系統(tǒng)自定義項目檔案樣本 defdoc.xml.89常見問題常見問題.90第 1 頁第一章第一章 總體概述總體概述1. 信息交換平臺總體結(jié)構(gòu)信息交換平臺總體結(jié)構(gòu)外部交換平臺外系統(tǒng)自動發(fā)送數(shù)據(jù)手動加載數(shù)據(jù)自動加載代理NC基礎(chǔ)數(shù)據(jù)模塊Servlet接收外系統(tǒng)的文檔XML處理器解析數(shù)據(jù)并翻譯轉(zhuǎn)換NC財務(wù)業(yè)務(wù)模塊N

5、C供應(yīng)鏈業(yè)務(wù)模塊日志和中間文件整理服務(wù)基礎(chǔ)數(shù)據(jù)對照表外部系統(tǒng)注冊外系統(tǒng)接收代理XML數(shù)據(jù)包XML數(shù)據(jù)包XML數(shù)據(jù)包XML數(shù)據(jù)包數(shù)據(jù)高速緩存NC業(yè)務(wù)模塊適配器輔助信息配置轉(zhuǎn)換規(guī)則定義圖 1.1.1 信息交換平臺總體結(jié)構(gòu)圖信息交換平臺主要用于外部系統(tǒng)和 NC 系統(tǒng)進行集成。利用信息交換平臺,可以將外系統(tǒng)的基本檔案和業(yè)務(wù)數(shù)據(jù)發(fā)送到 NC 系統(tǒng)中,并進行相關(guān)的業(yè)務(wù)操作,如審批、棄審,也可以通過發(fā)送 XML 格式的查詢條件導(dǎo)出 NC 系統(tǒng)的數(shù)據(jù)(需業(yè)務(wù)插件支持) ,導(dǎo)出的數(shù)據(jù)可以附著在回執(zhí)文件中,也可以直接向外部系統(tǒng)回發(fā) HTTP 請求。2. 信息交換平臺功能特點信息交換平臺功能特點采用 XML 格式作

6、為統(tǒng)一的數(shù)據(jù)交換標(biāo)準(zhǔn),為數(shù)據(jù)訪問提供簡便、 統(tǒng)一的模式。XML 格式在數(shù)據(jù)表達和描述方面有著很大的優(yōu)勢,逐漸成為業(yè)界的標(biāo)準(zhǔn),采用 XML 格式作為交換標(biāo)準(zhǔn)格式可以很好的保護企業(yè)投資。面向服務(wù)的架構(gòu)。這使得第三方系統(tǒng)可以隨時隨地向 NC 系統(tǒng)發(fā)送相關(guān)的業(yè)務(wù)數(shù)據(jù),NC 內(nèi)部的預(yù)警服務(wù)及工作流引擎使得 NC 系統(tǒng)可以在合適的時候向第三方系統(tǒng)傳送需要的數(shù)據(jù),并且滿足第三方系統(tǒng)的格式規(guī)第 2 頁范。靈活配置。數(shù)據(jù)轉(zhuǎn)換的規(guī)則可靈活定義,獨立于應(yīng)用集成和業(yè)務(wù)邏輯,也就是說根據(jù)不同的外部數(shù)據(jù)結(jié)構(gòu),直接通過修改交換規(guī)則文件的定義,即可達到各種異構(gòu)數(shù)據(jù)無縫集成的目的。自由擴充。對于標(biāo)準(zhǔn)產(chǎn)品不支持的業(yè)務(wù)單據(jù),如果有

7、集成需求,信息交換平臺提供了向?qū)降亩伍_發(fā)工具,集成了所有與二次開發(fā)相關(guān)的功能及配置,支持動態(tài)部署,可以在用戶環(huán)境上進行快速有效的開發(fā)。3. 信息交換平臺信息交換平臺 V50 版新增功能版新增功能與信息交換平臺 V3 序列產(chǎn)品相比,V50 版信息交換平臺在功能上得到了進一步的完善,在易用性上也有了很大改進。1)單據(jù)交換規(guī)則的定義更加豐富和靈活。可以為某一單據(jù)模型中的某一字段定義路徑,也可以為一個集合中的實體元素定義路徑,甚至可以為某個字段定義 XML 結(jié)構(gòu)查詢的公式。這些都得益于對 XPath 功能的模擬,使得 XML 文件間結(jié)構(gòu)轉(zhuǎn)換的能力更強,但這個交換規(guī)則的學(xué)習(xí)成本可能比較大,后續(xù)版本需

8、要圖形化和簡潔化。2)為基于信息交換平臺的自定義單據(jù)的集成提供了一個快速開發(fā)工具。這個工具以向?qū)Х绞綄⒓梢粋€自定義單據(jù)所要做的工作貫穿起來,包括:單據(jù)信息注冊、校驗文件生成、樣本數(shù)據(jù)導(dǎo)出、輔助信息格式配置、業(yè)務(wù)插件類代碼生成和編寫,甚至還包括業(yè)務(wù)插件類代碼的實時編譯和部署,樣本數(shù)據(jù)的導(dǎo)入測試和結(jié)果展示等。3)啟用 NCV50 新緩存機制。這不但使得外部系統(tǒng)設(shè)置、輔助信息設(shè)置和基礎(chǔ)數(shù)據(jù)對照表的設(shè)置能夠?qū)崟r地作用于外部數(shù)據(jù)導(dǎo)入過程中,而且對于基本檔案數(shù)據(jù)的訪問也實現(xiàn)了實時性,效率得到了更高的優(yōu)化。4)基礎(chǔ)數(shù)據(jù)對照導(dǎo)入功能更加豐富。基礎(chǔ)數(shù)據(jù)對照在 V35 版根據(jù)基本檔案自動增加的基礎(chǔ)上,新增了基礎(chǔ)

9、數(shù)據(jù)對照的 XML 文件增加和EXCEL 文件增加的功能。5)信息交換平臺總體參數(shù)配置功能更加豐富和完整。這部分配置主要包括單據(jù)導(dǎo)入方式、接收公司匹配規(guī)則、導(dǎo)入過程是否記錄中間文件、回執(zhí)和導(dǎo)出文件編碼格式、設(shè)置客戶端 IP 范圍等,這些功能的可配置性極大地提高了信息交換平臺的靈活性和可擴展性。6)對單據(jù)導(dǎo)入過程中的并發(fā)程度進行控制。對于某一單據(jù)類型,一共給出了四種并發(fā)控制程度,實施人員可根據(jù)具體情況設(shè)置合理的并發(fā)控制級別,避免單據(jù)并發(fā)導(dǎo)入引發(fā)的錯誤。7)外系統(tǒng)數(shù)據(jù)實現(xiàn)后臺異步發(fā)送。借助預(yù)警平臺的定時觸發(fā)功能,系統(tǒng)可以自動將保存在服務(wù)端某個目錄下的外系統(tǒng)數(shù)據(jù)導(dǎo)入 NC 系統(tǒng)中,實現(xiàn)了異步駐留的數(shù)

10、據(jù)發(fā)送方式。8)對數(shù)據(jù)導(dǎo)入過程中的異常進行了重新劃分,對于錯誤信息進行了編碼。前者帶來的好處就是錯誤提示信息更加明確化,后者主要用于第三方系統(tǒng)程序內(nèi)部識別導(dǎo)入過程中是否出現(xiàn)錯誤以及具體的錯誤信息。第 3 頁9)進一步約束信息交換平臺導(dǎo)入單據(jù)的語義。對每個單據(jù)需要定義一個組織字段,用于確保往某個接收方,比如說 A 公司做加載數(shù)據(jù)時,導(dǎo)入的數(shù)據(jù)能真正進入 A 公司,這個組織字段一般是公司或者主體賬簿。為單據(jù)定義組織字段之后,如果數(shù)據(jù)里相應(yīng)組織字段的值不為空,則要求其值與接受方保持一致,如果數(shù)據(jù)里相應(yīng)組織字段的值為空,則取接受方的內(nèi)容為組織字段的值。10) 易用性改進。 【手動加載界面】對文件目錄、

11、回執(zhí)目錄、目標(biāo) URL 地址、加載成功轉(zhuǎn)移目錄的配置增加記憶功能,就是說以相同公司相同用戶登陸時,上述各項的配置內(nèi)容默認顯示為最后一次用戶設(shè)置的值,避免用戶每次都需要重新設(shè)置。 【交換規(guī)則定義】增加了查找、定位字段的功能,單據(jù)交換規(guī)則樹上的右擊菜單也更加簡練明確,同時為字段的導(dǎo)入導(dǎo)出公式定義增加新版本的公式編輯器,定義公式更加方便簡潔。上述功能我們在接下來的內(nèi)容中會具體提到。4. 信息交換平臺信息交換平臺 V55 版新增功能版新增功能1)最大傳輸上限界面最大 20M2)業(yè)務(wù)插件擴展功能 見第七章 擴展3)基礎(chǔ)數(shù)據(jù)對照界面 EXCEL 內(nèi)外對照數(shù)據(jù)導(dǎo)入分為兩列,其中第一列為外系統(tǒng)值,第二列為 N

12、C 所對應(yīng)值,系統(tǒng)會自動檢查 NC 值的合法性,不合法則置空。4)交換規(guī)則增加合并功能5)Ufinterfacevo 填充 NC 操作員信息6)增加日志統(tǒng)計和輸入流監(jiān)控,便于進行日志分析,定位網(wǎng)絡(luò)錯誤5. 信息交換平臺信息交換平臺 V60 版新增功能版新增功能1)信息交換平臺全面支持 NCV60 元數(shù)據(jù)進行數(shù)據(jù)處理。2)增加自定義翻譯器注冊界面,可以建立自定義的翻譯器。3)插件開發(fā)向?qū)еС滞ㄟ^元數(shù)據(jù)和 VO 類生產(chǎn)交換規(guī)則。4)對枚舉類型數(shù)據(jù)的自動轉(zhuǎn)換。第 4 頁第二章第二章 實施簡介及相關(guān)注意點實施簡介及相關(guān)注意點NC 信息交換平臺的主要功能就是將不同外系統(tǒng)的數(shù)據(jù)導(dǎo)入 NC 系統(tǒng)。由于不同系

13、統(tǒng)之間對于相同單據(jù)的數(shù)據(jù)在表示上千差萬別,需要信息交換平臺對單據(jù)的 XML 格式的外系統(tǒng)數(shù)據(jù)進行格式轉(zhuǎn)換和數(shù)值翻譯,然后將轉(zhuǎn)換后生成的XML 格式的 NC 標(biāo)準(zhǔn)數(shù)據(jù)實例化為 NC 系統(tǒng)對應(yīng)單據(jù)的數(shù)據(jù)對象,并調(diào)用業(yè)務(wù)模塊的接口(服務(wù))進行保存或者更新。NC 系統(tǒng)在后臺有一個 Servlet 伺候服務(wù),等待并處理客戶端的 POST 方法請求(信息交換平臺提供界面客戶端和預(yù)警客戶端,對于同步集成方式,外系統(tǒng)可以自定義發(fā)送客戶端) 。客戶端往根據(jù) Servlet 的 URL 建立的連接的輸出流中寫待發(fā)送數(shù)據(jù)文件的內(nèi)容,而后臺服務(wù)端則從請求的輸入流中讀取數(shù)據(jù)文件內(nèi)容,然后再進行后續(xù)處理。關(guān)于客戶端發(fā)送數(shù)

14、據(jù)的具體內(nèi)容請參考 2.3 節(jié)。2.1 節(jié)介紹了要將某個外系統(tǒng)的某種單據(jù)類型的數(shù)據(jù)文件導(dǎo)入至 NC 系統(tǒng)的最簡單方法。其余小節(jié)介紹了在實施數(shù)據(jù)導(dǎo)入過程中容易混淆而需要注意的地方,或者是一些常用的工具等。1. 實施方法簡介實施方法簡介外系統(tǒng)數(shù)據(jù)導(dǎo)入的一般步驟外系統(tǒng)根據(jù)單據(jù)類型將相同單據(jù)類型的數(shù)據(jù)組織在一個 XML 文件中,然后將其發(fā)送到 NC 系統(tǒng)的某個賬套下的某個組織中。一般來說,如果需要發(fā)送某種單據(jù)類型的數(shù)據(jù)至 NC 系統(tǒng)中,需要如下幾步:一、注冊外部系統(tǒng)。如果不存在可用的外系統(tǒng)的話,請在“外部系統(tǒng)信息設(shè)置”界面中注冊一個外部系統(tǒng)。 二、準(zhǔn)備外系統(tǒng)數(shù)據(jù)。這份數(shù)據(jù)可能是外系統(tǒng)直接輸出的,也可能

15、是二次開發(fā)人員通過寫程序從第三方系統(tǒng)數(shù)據(jù)庫中抓出來的,或者由 Excel 格式或其他格式文件轉(zhuǎn)換過來的。寫這份數(shù)據(jù)時,可以參考 NC 安裝盤附帶的 XML 模板,XML 文件頭或者說文檔頭的屬性項請參照 2.2 節(jié)詳細說明。三、配置輔助信息(可選) 。如果要導(dǎo)入的單據(jù)數(shù)據(jù)需要輔助信息配置,在“輔助信息配置”界面根據(jù)外部系統(tǒng)、單據(jù)類型、接收組織為此次文件發(fā)送配置輔助信息。四、設(shè)置基礎(chǔ)數(shù)據(jù)對照(可選) 。如果要導(dǎo)入的單據(jù)數(shù)據(jù)需要作基礎(chǔ)數(shù)據(jù)對照(對于需要參照基本檔案的字段,如果其值不能按名稱或者編碼自動翻譯過來的話,在導(dǎo)入過程中系統(tǒng)會自動提示必須為該值做基礎(chǔ)數(shù)據(jù)對照) ,在“基礎(chǔ)數(shù)據(jù)對照”界面根據(jù)需

16、要參照的外部系統(tǒng)、需要參照的基本檔案、組織為需要第 5 頁對照的值做基礎(chǔ)數(shù)據(jù)對照。六、配置 Servlet 的 URL 地址。將要發(fā)送至的帳套編碼作為 account 屬性值寫入要發(fā)送到的 Servlet 的 URL 中(或者寫入 XML 文件的頭中) ;將接收集團編碼作為 groupcode 屬性寫入要發(fā)送到的 Servlet 的 URL 中(或者寫入 XML 文件的頭中) ;將接收組織的代碼作為 orgcode 屬性寫入要發(fā)送到的 Servlet 的URL 中(或者 XML 文件的頭中) 。詳細說明請參見 2.2 節(jié)。最后,就可以利用客戶端觸發(fā)該單據(jù)類型的數(shù)據(jù)文件的發(fā)送了。NC 信息交換平

17、臺內(nèi)置了常用單據(jù)類型數(shù)據(jù)的導(dǎo)入功能,對于這些單據(jù)類型, 如果外系統(tǒng)數(shù)據(jù)遵照了這些單據(jù)類型的交換規(guī)則定義(即如果外系統(tǒng)的數(shù)據(jù)嚴(yán)格按照 NC 安裝盤附帶的相應(yīng)單據(jù)的 XML 模板生成),那么按上述步驟相對比較簡單地就可以導(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)入。對于非系統(tǒng)內(nèi)置或者自定義的單據(jù)的導(dǎo)入,需要基于信息交換平臺做二次開發(fā),這部分內(nèi)容可參見第四章。信息交

18、換平臺服務(wù)器端文件目錄結(jié)構(gòu)信息交換平臺服務(wù)端的目錄結(jié)構(gòu)安排如圖 2.1.1 所示,其中 NC_COMMON為安裝盤根目錄,也是中間件的工作目錄。從上圖可以看出,信息交換平臺配置文件目錄 pfxx 與 webapps 一樣同在安裝盤根路徑下,其中:pfxxtemp 目錄,存貯信息交換平臺接受到的原始數(shù)據(jù)文件、轉(zhuǎn)換翻譯完畢的標(biāo)準(zhǔn) XML 文件、傳送失敗的文件。exportbills 目錄,存放信息交換平臺發(fā)送給外系統(tǒng)的數(shù)據(jù)文件。billdefine 目錄,存放所有需要交換的檔案和單據(jù)的交換規(guī)則文件。auxiregister 目錄,每個模塊在這個目錄下注冊一個文件,文件的內(nèi)容是模塊所涉及單據(jù)的輔助信

19、息格式。詳細情況參考 4.3 節(jié)輔助信息項設(shè)置。businessprocessor 目錄,每個模塊在這個目錄下注冊一個文件,文件的內(nèi)容是模塊所涉及單據(jù)在信息交換平臺的注冊信息,如單據(jù)類型、業(yè)務(wù)插件類名稱、元數(shù)據(jù) ID、單據(jù)加鎖級別等。詳細內(nèi)容參考 4.1 節(jié)注冊單據(jù)相關(guān)信息。globalset.xml 用于存放信息交換平臺的全局參數(shù),如默認帳套、單篇最大傳輸上限等。第 6 頁圖 2.1.1 信息交換平臺服務(wù)端文件目錄結(jié)構(gòu)2. Servlet 的的 URL 地址參數(shù)與地址參數(shù)與 XML 交換文檔頭屬性的關(guān)系交換文檔頭屬性的關(guān)系在外系統(tǒng)的單據(jù)數(shù)據(jù)的導(dǎo)入過程中需要用到一些初始化信息,如帳套、接收集團

20、、數(shù)據(jù)所屬外部系統(tǒng)(發(fā)送方) 、單據(jù)類型等。這部分?jǐn)?shù)據(jù)可以在 Servlet的 URL 地址的參數(shù)中指定,也可以在 XML 數(shù)據(jù)文件的文檔頭屬性中指定,但是在 Servlet 的 URL 地址的參數(shù)中指定的信息比在 XML 數(shù)據(jù)文件的文檔頭屬性中指定的信息有更高的優(yōu)先級別。比如在 Servlet 的 URL 地址參數(shù)中指定groupcode=yk,而在 XML 數(shù)據(jù)文件的文檔頭屬性中指定 groupcode=yy,則最終還是將數(shù)據(jù)發(fā)送到 yk 組織。下面我們依據(jù)實例來逐一介紹各個常用屬性。圖 2.2.1 是一個典型的 NC 服務(wù)器的 Servlet 的 URL 地址, “http:/10.7.

21、3.226:80/service/XChangeServlet”是后臺 Servlet 的服務(wù)名。 “?”號之后的“account=0001&groupcode=xx&orgcode=yy”就是設(shè)置的 URL 地址參數(shù),一般情況下這個地方只設(shè)置帳套編碼(account)、接收集團(groupcode),接收組織(orgcode)。至于這些屬性的含義下面會介紹到。圖 2.2.1 典型 Servlet 的 URL 地址圖 2.2.2 是一個典型的 XML 文檔頭,文檔頭的根標(biāo)簽名是 ufinterface,后面跟著就是各種初始化信息的設(shè)置。我們將這些屬性分為三類:必須設(shè)置的屬性、根

22、據(jù) Servlet 的 URL 參數(shù)設(shè)置決定是否必設(shè)的屬性和根據(jù)需要決定是否設(shè)置的屬性。圖 2.2.2 典型 XML 文檔頭【必須設(shè)置的屬性必須設(shè)置的屬性】:billtype 屬性,這個屬性值決定了這個 XML 文件(文檔)中所有單據(jù)的單據(jù)類型,信息交換平臺所有的處理都是圍繞單據(jù)類型的。sender 屬性,這個屬性值設(shè)置的是外系統(tǒng)編碼,指定的是數(shù)據(jù)的來源系統(tǒng),即習(xí)慣上所說的發(fā)送方?!靖鶕?jù)根據(jù) Servlet 的的 URL 參數(shù)設(shè)置決定是否必設(shè)的屬性參數(shù)設(shè)置決定是否必設(shè)的屬性】:這些屬性其實也是必設(shè)屬性,但如果 Servlet 的 URL 參數(shù)里面設(shè)置了這幾第 7 頁個屬性的話,XML 文檔頭里

23、面可以不設(shè)置這幾個屬性值,即使設(shè)置了也不會起作用。account 屬性,這個屬性指定要將數(shù)據(jù)導(dǎo)入至 NC 系統(tǒng)的哪個帳套。groupcode 屬性,這個屬性值指定接收集團的編碼。orgcode 屬性,這個屬性值指定接收組織的編碼?!靖鶕?jù)需要決定是否設(shè)置的屬性根據(jù)需要決定是否設(shè)置的屬性】:filename 屬性,在數(shù)據(jù)導(dǎo)入過程中,對于每張單據(jù)我們都可以記錄其原始數(shù)據(jù)、翻譯后數(shù)據(jù),對整個文檔我們也可以記錄其導(dǎo)入后的回執(zhí)信息,這個filename 屬性的值就是用于記錄上述數(shù)據(jù)文件時的文件名。當(dāng)然,如果您沒有設(shè)置的話,系統(tǒng)會為每個導(dǎo)入的文檔默認生成文件名。isexchange 屬性,這個屬性值決定了在

24、外系統(tǒng)的數(shù)據(jù)在導(dǎo)入 NC 系統(tǒng)的過程中,是否使用信息交換平臺提供的翻譯轉(zhuǎn)換和校驗功能。正常情況下應(yīng)將這個屬性設(shè)置為“Y” ,或者干脆不設(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è)置屬性為“N”和“n” ,可避免無謂的翻譯轉(zhuǎn)換。replace 屬性,這個屬性值決定是否允許將相同單據(jù)往同一個接收方重復(fù)導(dǎo)入。V50 版的插件一般允許相同單據(jù)重復(fù)導(dǎo)入,除了將第一次導(dǎo)入視作新增之外,其余導(dǎo)入視作更新。關(guān)于這方面的具體內(nèi)容請參見 2.6 節(jié)內(nèi)容。如果不允許相同單據(jù)的重復(fù)導(dǎo)入,那么將這個屬性值設(shè)置為“N”或

25、者“n” 。否則將其設(shè)置為“Y”或者干脆不設(shè)。operator 屬性, 這個屬性指定當(dāng)前發(fā)送方對應(yīng)的 nc 操作員 pk,在手工加載界面會自動使用當(dāng)前登陸用戶 pk,無需設(shè)置。對于外系統(tǒng)發(fā)送到 NC 系統(tǒng),需要在其發(fā)送 url 里加上對應(yīng)得 NC 操作員 pk總的來說,XML 文檔頭的【必須設(shè)置的屬性】和【根據(jù) Servlet 的 URL 參數(shù)設(shè)置決定是否必設(shè)的屬性】 ,均為在外系統(tǒng)交換文檔發(fā)送過程中必須得到的初始化信息,可以在 Servlet 的 URL 地址參數(shù)中設(shè)置,也可以在 XML 文檔頭屬性中設(shè)置,但必須進行設(shè)置。而對于 XML 文檔頭的【根據(jù)需要決定是否設(shè)置的屬性】 ,也可以在 S

26、ervlet 的 URL 地址的參數(shù)中設(shè)置,但一般不推薦這么做。3. 向向 NC 系統(tǒng)發(fā)送數(shù)據(jù)方式系統(tǒng)發(fā)送數(shù)據(jù)方式NC 信息交換平臺支持客戶端以同步和異步兩種方式發(fā)送(加載)外部數(shù)據(jù)。其中 NC 信息交換平臺為異步加載方式內(nèi)置了兩類客戶端:界面和預(yù)警,而對于同步加載方式,外系統(tǒng)需要編寫往 NC 后臺 Servlet 發(fā)送文件的代碼,下面分別介紹它們:手動界面發(fā)送 這是外部數(shù)據(jù)最簡單也最常用的一種客戶端發(fā)送方式,點擊:集成平臺-數(shù)據(jù)交換管理-手動加載界面,在打開的界面中選擇需要發(fā)送的文件,如有必要,修改目標(biāo) URL 地址的 groupcode 參數(shù)值,選擇“發(fā)送”菜單即可。詳細內(nèi)容請參考信息交換

27、平臺的用戶手冊。第 8 頁圖 2.3.1 手動加載界面后臺預(yù)警發(fā)送點擊:開發(fā)平臺開發(fā)配置工具后臺任務(wù)類型注冊 增加,在彈出的后臺任務(wù)類型注冊對話框中配置一個類型為“外部交換數(shù)據(jù)后臺發(fā)送”的后臺任務(wù)條目。第 9 頁圖 2.3.2 后臺任務(wù)類型注冊其預(yù)警條件的配置如圖 2.3.2 所示。在該預(yù)警條件標(biāo)簽頁中內(nèi)置了四個預(yù)警條件:待發(fā)送文件目錄該預(yù)警條件閾值用于設(shè)置用戶數(shù)據(jù)文件目錄(不能為空) ;回執(zhí)目錄該預(yù)警條件閾值用于設(shè)置存放單據(jù)導(dǎo)入之后的回執(zhí)信息的目錄,每張單據(jù)一個回執(zhí)文件,如果用戶不設(shè)置這個閾值,系統(tǒng)在待發(fā)送文件目錄下默認創(chuàng)建目錄/logdir 作為回執(zhí)目錄;發(fā)送后文件轉(zhuǎn)移目錄該預(yù)警條件閾值對

28、于想將能夠成功加載的文件備份走的用戶有用(一般不用設(shè)置) ;發(fā)送配置信息該預(yù)警條件閾值是一個可擴展的預(yù)警條件閾值,它用于配置將什么樣的文件發(fā)送到哪個 URL 地址(不能為空) 。這個配置值的格式如下:第一部分是單據(jù)類型:第二部分是外系統(tǒng)編碼:第三部分是目的 URL 地址:上面所列發(fā)送配置信息項取值的意思就是將單據(jù)類型是“Test1” , 外第 10 頁部系統(tǒng)編碼為“1101”的文件發(fā)送到 NC 外部數(shù)據(jù)接收的 Servlet 地址:urladdress=http:/localhost:80/service/XChangeServlet?account=0001&groupcode=zz

29、。這個地方如果我們將單據(jù)類型的取值設(shè)為“XX”或“xx”的話,表示任何單據(jù)類型的文件都可以往某個地址發(fā)送,相當(dāng)于通配符的意思,但對于外部系統(tǒng)編碼沒有通配符。后臺任務(wù)配置:企業(yè)建模平臺系統(tǒng)平臺后臺任務(wù)中心 后臺任務(wù)部署中點擊增加按鈕圖 2.3.3 任務(wù)條目部署發(fā)送配置信息是一個可擴展的預(yù)警條件閾值,其意思就是用戶可以在預(yù)警平臺的類型注冊對話框中修改名為“外部交換數(shù)據(jù)后臺發(fā)送”的預(yù)警第 11 頁類型定義,增加作為預(yù)警條件的發(fā)送配置信息項,以實現(xiàn)數(shù)據(jù)文件的多點發(fā)送。點擊:開發(fā)平臺開發(fā)配置工具后臺任務(wù)類型注冊選中“外部數(shù)據(jù)交換后臺發(fā)送”行修改,彈出“類型注冊”對話框,如圖2.3.4 所示,為其增加了一

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

31、據(jù):為簡單起見,以下代碼未處理異常,close 方法也未放入 finally 里,具體寫代碼時請修改。/ 獲取Servlet連接并設(shè)置請求的方法第 12 頁String url = 25:8080/service/XChangeServlet;URL realURL = new URL(url);HttpURLConnection connection = (HttpURLConnection)realURL.openConnection();connection.setDoOutput(true);connection.setRequestProperty(Con

32、tent-type, text/xml);connection.setRequestMethod(POST);/ 將Document對象寫入連接的輸出流中File file = new File(C:/samples/psndoc.xml);BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream();BufferedInputStream input = new BufferedInputStream(new FileInputStream(file);int length;byte buff

33、er = new byte1000;while (length = input.read(buffer, 0, 1000) != -1) out.write(buffer, 0, length);input.close();out.close();/ 從連接的輸入流中取得回執(zhí)信息InputStream inputStream = connection.getInputStream();Document resDoc = XMLUtil.getDocumentBuilder().parse(inputStream); / 解析為Doc對象/ 對回執(zhí)結(jié)果的后續(xù)處理也可以調(diào)用 nc.vo.pfxx.

34、pub.PostFile 來發(fā)送 public static int sendFile(File file, String url, String backdir, String movedir, boolean bcompress) / fileQueue 傳空即可 public static SendResult sendFileWithResults(File file, String url, String backdir, String movedir, boolean bcompress, FileQueue fileQueue) public static String send

35、Document(Document doc, String url,String outputEncoding, boolean bcompress) throws Exceptionpublic static String sendDocument (Document doc, String url, String outputEncoding) throws Exception 說明 關(guān)于 XML 操作可以用 XMLUtil 類,關(guān)于發(fā)送的 API,如果您的程序可以依賴 uap的 jar 包,也可以直接用 PostFile 類 第 13 頁4. 回執(zhí)及異常出錯信息回執(zhí)及異常出錯信息回執(zhí)格式

36、加載外部系統(tǒng)數(shù)據(jù)時,對于導(dǎo)入的數(shù)據(jù)文件中的每張單據(jù),都會給客戶端返回一個回執(zhí)信息,記錄單據(jù)導(dǎo)入成功與否,以及失敗的原因。回執(zhí)信息也是一個 XML 文件,其一般格式如下: 12315601022323 -31202 單據(jù)12315601022323開始處理.(1)單據(jù)翻譯轉(zhuǎn)換錯誤:根據(jù)基礎(chǔ)檔案部門檔案無法翻譯pk_deptdoc字段,待翻譯值:部門yk,翻譯方式:按名稱., 翻譯參照的公司:yk。(2)單據(jù)翻譯轉(zhuǎn)換錯誤:根據(jù)基礎(chǔ)檔案崗位檔案無法翻譯pk_om_job字段,待翻譯值:測試,翻譯方式:按名稱., 翻譯參照的公司:yk。(3)單據(jù)翻譯轉(zhuǎn)換錯誤:根據(jù)基礎(chǔ)檔案人員類別無法翻譯pk_psnc

37、l字段,待翻譯值:測試人員yk,翻譯方式:按名稱., 翻譯參照的公司:yk。單據(jù)12315601022323處理錯誤:單據(jù)翻譯轉(zhuǎn)換錯誤:單據(jù)校驗轉(zhuǎn)換失敗 部門yk 測試 測試人員yk 圖 2.4.1 回執(zhí)文檔的一般格式回執(zhí)信息中還可以嵌套單據(jù),這個時候可以將信息交換平臺看作簡單的信第 14 頁息中心,外系統(tǒng)發(fā)送過來一個消息,NC 系統(tǒng)回應(yīng)一個消息。如查詢類的單據(jù),外系統(tǒng)發(fā)送一個表示查詢條件的信息,NC 系統(tǒng)返回所有符合查詢條件的單據(jù),這些單據(jù)就是內(nèi)嵌在回執(zhí)信息中的。再如,用這個功能來實現(xiàn) NC 系統(tǒng)和外系統(tǒng)在某種程度上的流程集成,外系統(tǒng)發(fā)送一張走流程平臺的單據(jù),然后再由信息交換平臺返回流程平臺

38、處理后得到的單據(jù)。 異常和錯誤編碼異常信息對于使用信息交換平臺是極為重要的,有助于實施人員分析數(shù)據(jù)導(dǎo)入結(jié)果,查找數(shù)據(jù)導(dǎo)入失敗原因。信息交換平臺中的異常分類:環(huán)境初始化異常、單據(jù)轉(zhuǎn)換異常和業(yè)務(wù)插件處理異常。這個劃分是基于一個外系統(tǒng)某單據(jù)類型的 XML 交換文檔在導(dǎo)入 NC 系統(tǒng)過程中所需處理階段而給出的。如果單據(jù)導(dǎo)入失敗,那么在回執(zhí)信息的中會給出發(fā)生了什么異常以及出錯信息。如果需要更詳細的出錯信息,請檢查后臺日志,信息交換平臺對于導(dǎo)入數(shù)據(jù)過程中發(fā)生的異常,記錄在 nchome/nclogs/server/pfxx-log.log 日志文件中。錯誤編碼則直接定位于發(fā)生錯誤的分類:配置錯誤、數(shù)據(jù)錯誤

39、、系統(tǒng)錯誤,然后在某種錯誤下再進行細分。這些錯誤信息都通過錯誤編碼的方式在單據(jù)導(dǎo)入的回執(zhí)信息的中給出。這些錯誤編碼信息主要是給第三方系統(tǒng)程序內(nèi)部用于識別數(shù)據(jù)交換過程中是否出現(xiàn)問題,以及具體出了什么問題,便于程序內(nèi)進行控制。對于實施人員,如果拿到一份回執(zhí),只需要知道 1 表示正確傳送,其他的代表各種錯誤碼,一般均為負數(shù)。對于無法翻譯的文檔,在回執(zhí)中也有具體描述,其中段中部門 yk name 表示改文檔在外系統(tǒng)中對應(yīng)的文檔名稱(如果 nc 基本檔案資源列表里沒有,則為基礎(chǔ)數(shù)據(jù)對照表中對應(yīng)外系統(tǒng)檔案名稱),文本內(nèi)容為其代翻譯的值。查詢及回執(zhí)格式樣例注冊查詢單據(jù)類型第 15 頁生成交換規(guī)則生成樣本文件

40、并保存為文件第 16 頁修改樣例 a a a a a a 2011-07-13 11:37:17 2011-07-13 11:37:17 N第 17 頁 0 0 a a a a a N 0 a a 插件樣例package pfxx.example11;import mon.NCLocator;import nc.bs.logging.Logger;import nc.bs.pfxx.ISwapContext;import nc.itf.uap.bd.accsubj.IAccsubjDataQuery;import nc.itf.uap.pfxx.IPFxxEJBService;import n

41、c.vo.bd.b02.AccsubjVO;import nc.vo.pfxx.auxiliary.AggxsysregisterVO;import nc.vo.pfxx.exception.PfxxPluginException;import nc.vo.pfxx.util.PfxxPluginUtils;import nc.vo.pfxx.util.PfxxUtils;import nc.vo.pub.BusinessException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Nod

42、eList;第 18 頁/* * 在此處簡要描述此類的功能 * * * 在此處添加此類的描述信息 * * * Create on 2006-4-6 16:00:51 * * author ufsoft * version Your Project Ver5.0 since V5 */public class QueryPlugin extends nc.bs.pfxx.plugin.AbstractPfxxPlugin /* * 將由XML轉(zhuǎn)換過來的VO導(dǎo)入NC系統(tǒng)。業(yè)務(wù)插件實現(xiàn)此方法即可。 * 請注意,業(yè)務(wù)方法的校驗一定要充分 * * param vo * 轉(zhuǎn)換后的vo數(shù)據(jù),在NC系統(tǒng)中可能

43、為ValueObject,SuperVO,AggregatedValueObject,IExAggVO等 * 。 * param swapContext * 各種交換參數(shù),公司,帳簿,接受方,發(fā)送方,主體帳簿等等 * param aggvo * 輔助信息vo * return * throws BusinessException * date 2006-1-11 */protected Object processBill(Object vo, ISwapContext swapContext, AggxsysregisterVO aggvo) throws BusinessException

44、 / 1.得到轉(zhuǎn)換后的VO數(shù)據(jù),取決于向?qū)У谝徊阶缘腣O信息CommonQueryVO resvo = (CommonQueryVO) vo;KeyValueVO keyValueVOs = resvo.getConditions();int n = keyValueVOs.length;String keys = new Stringn;for (int i = 0; i n; i+) keysi = keyValueVOsi.getValue();/ 2.查詢此單據(jù)是否已經(jīng)被導(dǎo)入過,有三個方法,具體使用哪一個請參考方法說明javadoc第 19 頁/ 1) String vopk = P

45、fxxPluginUtils.queryBillPKBeforeSaveOrUpdate(ufvo);/ 2) String vopk =/ PfxxPluginUtils.queryBillPKBeforeSaveOrUpdate(ufvo,resvo.getPk_corp);/ 3) String vopk =/ PfxxPluginUtils.queryBillPKBeforeSaveOrUpdate(ufvo,resvo/ .getPk_corp(),resvo.getPk_glogBook();/ 3. 如果單據(jù)設(shè)置有輔助信息,xsysvo為用戶配置的具體輔助信息/ 4.如果此單據(jù)沒

46、有導(dǎo)入過,那么準(zhǔn)備保存新單據(jù),保存單據(jù)前請進行必要的數(shù)據(jù)檢查,并給出明確的業(yè)務(wù)異常./ TODO/L(如果此單據(jù)沒有導(dǎo)入過,保存新單據(jù).);/ 5.如果此單據(jù)已經(jīng)導(dǎo)入過,請調(diào)用PfxxPluginUtils.checkBillCanBeUpdate(UfinterfaceVO/ ufvo)檢查單據(jù)是否允許更新/ 如果不允許更新,此方法會拋出業(yè)務(wù)異常/ TODO/L(如果單據(jù)已經(jīng)導(dǎo)入過則進行單據(jù)更新.);/ !測試轉(zhuǎn)換后的單據(jù)數(shù)據(jù),正式代碼里請刪除/ Document doc = XMLUtil.getNewDocument();/ new com.tho

47、ughtworks.xstream.XStream().toXML(resvo,doc);/ try/ / FileUtils.writeDocToXMLFile(doc,/ PfxxServerSidePathVocabulary.EXPORTBILLS_PATH+/ test/nc/uap/pfxx/kjkm/QueryPlugin.xml);/ catch (java.io.IOException e)/ / e.printStackTrace();/ / !測試代碼結(jié)束/ !查詢NC數(shù)據(jù),通過回執(zhí)返回到外系統(tǒng)示例代碼開始Document resdoc = null;/* 獲取導(dǎo)出服務(wù)

48、*/IPFxxEJBService runner = PfxxUtils.lookUpPFxxEJBService();try /* 查詢需要導(dǎo)出的VO,這里查全部,實際應(yīng)用應(yīng)該通過XML傳遞條件過來進行查詢 */第 20 頁IAccsubjDataQuery queryService = NCLocator.getInstance().lookup(IAccsubjDataQuery.class);AccsubjVO vos = queryService.queryAccsubjVosByPks(keys);/ Collection col = (new/ nc.bs.dao.BaseDAO

49、().retrieveByClause(CommonQueryVO.class,1=1);/* 實例代碼僅演示ValueObject,如果是AGGVO請修改 */resdoc = runner.exportBills(vos, swapContext.getAccount(), bsaccsubj, swapContext.getOrgPk(), swapContext.getSender(), null);/get ids from document and insert to dbString docids = new Stringvos.length;NodeList basdocLis

50、t=resdoc.getDocumentElement().getElementsByTagName(basdoc);int total=basdocList.getLength();for(int i=0;itotal;i+)Element node=(Element)basdocList.item(i);docidsi=node.getAttribute(id);for (int i = 0; i docids.length; i+) PfxxPluginUtils.addDocIDVsPKContrast(bsaccsubj,docidsi, swapContext.getOrgPk()

51、, vosi.getPk_accsubj();/StringBuffer sbRet=new StringBuffer();/XMLUtil.writeXMLFormatString(sbRet, resdoc, 0);/System.out.println(); catch (Exception e) Logger.error(導(dǎo)出單據(jù)失敗, e);throw new PfxxPluginException(this.getClass().getName(), 導(dǎo)出單據(jù)失敗: + e.getMessage();/ !查詢NC數(shù)據(jù),通過回執(zhí)返回到外系統(tǒng)示例代碼結(jié)束/ 6.如果希望單據(jù)將來可以更

52、新,請調(diào)用下列接口插入文檔流水號與生成PK的對照關(guān)系/ 第2步查詢對照關(guān)系相對應(yīng),也有三個方法,具體請看javadoc/ 1)PfxxPluginUtils.addDocIDVsPKContrast(ufvo,pk);/ 2)PfxxPluginUtils.addDocIDVsPKContrast(ufvo,resvo.getPk_corp,pk);/ 3)PfxxPluginUtils.addDocIDVsPKContrast(ufvo,resvo.getPk_corp(),resvo.第 21 頁/ getPk_glogBook(),pk);/ 7.準(zhǔn)備返回值,此函數(shù)的返回值,最終會以字符

53、串的形式返回給外系統(tǒng),/ 對于普通單據(jù)可以返回NC系統(tǒng)生成的PK值,對于憑證可能返回憑證號,具體視單據(jù)而定/ 對于查詢插件要求返回org.w3c.dom.Node數(shù)組 或者org.w3c.dom.Nodereturn resdoc;回執(zhí)結(jié)果 CORPe40702bkjkmquery kjkm1e9a8164U860.xml 1 單據(jù)CORPe40702bkjkmquery開始處理.單據(jù)CORPe40702bkjkmquery處理完畢! N True 01 2007 Y 0 01 2007 0001 N N 人民幣 應(yīng)收利息 第 22 頁 N N N 000111100000000009RI 0

54、001 資產(chǎn) 第 23 頁 false 1132 應(yīng)收利息 false false false 客商輔助核算 true 1 1-0002 5. 信息交換平臺總體參數(shù)設(shè)置信息交換平臺總體參數(shù)設(shè)置點擊:集成平臺-數(shù)據(jù)交換管理-交換平臺日志-參數(shù)設(shè)置,在交換平臺日志界面打開參數(shù)設(shè)置對話框,如圖 2.5.1 所示。在這個對話框中,可以設(shè)置在外部數(shù)據(jù)導(dǎo)入過程中起到相當(dāng)作用的參數(shù),您可以根據(jù)需要對這些參數(shù)的設(shè)置進行改動。設(shè)置的參數(shù)值實時生效,不用重起后臺服務(wù)器。第 24 頁圖 2.5.1 總體參數(shù)設(shè)置下面我們來介紹這些參數(shù)的功能及需要注意的地方:外部系統(tǒng)默認帳套將某個外系統(tǒng)數(shù)據(jù)文檔導(dǎo)入到哪個帳套是由 Se

55、rvlet 的 URL 地址的 account參數(shù)或者文檔根屬性 account 決定的,但是如果這兩個地方都沒有申明這個值,那么系統(tǒng)就將外部數(shù)據(jù)導(dǎo)入至這個參數(shù)設(shè)置的帳套中。系統(tǒng)默認沒有設(shè)置這個屬性,但打開對話框就會顯示當(dāng)前系統(tǒng)所有帳套編碼。單篇最大傳輸上限對于要導(dǎo)入的單篇文檔或者單個文件來說,其大小是受服務(wù)器端系統(tǒng)性能影響的。系統(tǒng)默認單篇最大傳輸上限是 1024KB,這個大小一般系統(tǒng)的存儲器第 25 頁都能夠滿足。如果用戶導(dǎo)入的文件大于設(shè)置的值,回執(zhí)文件就會提示“文件長度超過設(shè)定長度”的錯誤。因此,用戶可以根據(jù)需要,如待導(dǎo)入文件的大小和機器性能調(diào)整這個值,目前在界面可設(shè)置最大值為 10M;該

56、值不建議設(shè)置過大,在 5000KB 以下,以便得到較好的傳輸性能。如確實需要傳輸超過 10M 文件,請自行在應(yīng)用服務(wù)器上修改 NCHOME/pfxx/globalset.xml 中 max-transfer-size 的值,并考慮 OutOfMemory 的風(fēng)險。導(dǎo)入過程是否記錄中間文件這個參數(shù)主要用于控制所導(dǎo)入文檔的每張單據(jù)是否在服務(wù)器本地做備份記錄,主要做兩次備份,分別是原始單據(jù)備份和轉(zhuǎn)換翻譯后單據(jù)的備份,前者備份至目錄 NC_HOME/pfxx/pfxxtemp/indocs/下,后者備份至目錄NC_HOME/pfxx/pfxxtemp/translated/下。這些信息在找錯排錯中是非

57、常有用的,比如發(fā)生找不到某個字段元素的錯誤,它可能是交換規(guī)則定義錯誤引起,也可能是外系統(tǒng)數(shù)據(jù)格式錯誤引起,這個時候?qū)浞莸膶?dǎo)入原始單據(jù)和轉(zhuǎn)換后的單據(jù)做一個對比,便可以很快定位問題。系統(tǒng)默認是勾選“導(dǎo)入過程是否記錄中間文件” 。回執(zhí)文件后臺備份對于導(dǎo)入的每一張單據(jù),信息交換平臺都會給客戶端或者發(fā)送方一個回執(zhí)信息即一個 XML 格式的回執(zhí)文檔。如果您使用的數(shù)據(jù)發(fā)送方式是手動界面發(fā)送或者后臺預(yù)警發(fā)送的話,回執(zhí)信息都會以文件的形式保存到指定目錄下,但是如果通過自定義程序?qū)崟r發(fā)送數(shù)據(jù)的話,當(dāng)出現(xiàn)傳輸異常時就需要在后臺備份一下單據(jù)的每個回執(zhí)文件,目的就是檢查返回給發(fā)送方的數(shù)據(jù)是否正確?;貓?zhí)文件后臺備份這個

58、參數(shù)就是用于控制是否后臺備份這個文件,系統(tǒng)默認不進行備份。回執(zhí)和導(dǎo)出文件編碼格式這也是一個便利工具,目的就是使得信息交換平臺導(dǎo)出的 XML 數(shù)據(jù)文件或者單據(jù)回執(zhí)文件的編碼格式可配置。如果與 NC 系統(tǒng)交互的第三方系統(tǒng)只能處理 gb2312 編碼格式的文件,經(jīng)過配置之后就可以相當(dāng)方便的達到目的,只是此時如果回執(zhí)信息包含非 gb2312 編碼字符,則可能顯示不正常。系統(tǒng)默認回執(zhí)和導(dǎo)出文件的編碼格式是 UTF-8,信息交換平臺同時支持 UTF-8 和 gb2312 格式文件的導(dǎo)入。第 26 頁單據(jù)導(dǎo)入規(guī)則設(shè)置 信息交換平臺以交換文檔中的單據(jù)為單位,支持非獨立事務(wù)和獨立事務(wù)兩種導(dǎo)入方式,即同一 XML

59、 文檔對象中的所有單據(jù)批量處理和同一 XML 文檔對象中的每張單據(jù)單獨處理。例如,一個憑證類型的 XML 文檔由一百張憑證組成,如果將交換平臺總體參數(shù)的單據(jù)導(dǎo)入規(guī)則設(shè)置為“同一文檔里的所有單據(jù)批量處理”的話,那么如果在導(dǎo)入這個文檔的過程中有任何一張憑證發(fā)生錯誤,將導(dǎo)致所有的這一百張憑證導(dǎo)入失敗,但是如果單據(jù)導(dǎo)入規(guī)則設(shè)置為“同一文檔里的每張單據(jù)獨立處理”的話,那么即使這一百張憑證里有些憑證在導(dǎo)入過程中失敗了,也不會影響到其余單據(jù)的成功導(dǎo)入。通俗一點的說話就是,非獨立事務(wù)就是文檔中的所有單據(jù)要么一塊兒成功,要么一塊兒失敗,而獨立事務(wù)就是文檔中的每張單據(jù)的成功導(dǎo)入與否不會受其他單據(jù)導(dǎo)入成功與否的影響

60、,當(dāng)然如果從文檔中導(dǎo)入的單據(jù)有先后順序的話,選擇獨立事務(wù)可能也就起不到作用了。系統(tǒng)默認的單據(jù)導(dǎo)入方式是“同一文檔里的所有單據(jù)批量處理” 。設(shè)置客戶端 IP 范圍這個參數(shù)屬于信息交換平臺安全性方面的設(shè)置。我們在這里設(shè)置允許向NC 系統(tǒng)發(fā)送數(shù)據(jù)文件的地址范圍,這樣我們可以確保與合法的外部系統(tǒng)進行數(shù)據(jù)集成。如,假設(shè)目前我們只允許地址為 55 和 33 兩個 IP 地址的客戶端發(fā)送數(shù)據(jù),那么我們就啟用這個屬性設(shè)置,并將這兩個 IP 地址輸入至其輸入框中,中間使用;號隔開。設(shè)置完這個屬性之后,我們再去利用這兩個之外的 IP 地址的客戶端發(fā)送外系統(tǒng)數(shù)據(jù)的話,回執(zhí)文件就會提示“發(fā)送方地址不合法!”

溫馨提示

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

評論

0/150

提交評論