專利名稱:從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)處理技術(shù),特別是涉及一種從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù) 的方法及系統(tǒng)。
背景技術(shù):
在業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)處理過(guò)程中,常常需要從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)來(lái)進(jìn) 行處理。例如在財(cái)務(wù)應(yīng)用方面,很多業(yè)務(wù)單據(jù)都需要進(jìn)行預(yù)算控制,預(yù)算控制 系統(tǒng)就是通過(guò)處理單據(jù)的預(yù)算數(shù)據(jù)來(lái)實(shí)現(xiàn)預(yù)算控制功能。預(yù)算控制系統(tǒng)中根據(jù) 業(yè)務(wù)情況定義了預(yù)算控制時(shí)需要的預(yù)算控制參數(shù),分別對(duì)應(yīng)業(yè)務(wù)單據(jù)的一些屬 性信息,當(dāng)執(zhí)行預(yù)算處理時(shí),需要從業(yè)務(wù)單據(jù)中獲取對(duì)應(yīng)預(yù)算控制參數(shù)的屬性 信息,組成預(yù)算控制參數(shù),進(jìn)行預(yù)算控制處理。例如所述預(yù)算控制參數(shù)包括預(yù)算組織、預(yù)算項(xiàng)目、預(yù)算要素、預(yù)算期間、幣別,分別對(duì)應(yīng)單據(jù)所屬的組織、業(yè)務(wù)項(xiàng)目、預(yù)算的種類(lèi)、業(yè)務(wù)發(fā)生日期、幣種信息。當(dāng)對(duì)該單據(jù)進(jìn)行預(yù)算控制時(shí),預(yù)算控制系統(tǒng)根據(jù)這種映射關(guān)系查找單據(jù)中對(duì)應(yīng)的預(yù)算數(shù)據(jù),再根據(jù)一定的規(guī)則來(lái)控制該單據(jù)的特定操作(比如付款)是否滿足發(fā)生的條件,從而做出相應(yīng)的決策,比如預(yù)算充足則扣減預(yù)算,單據(jù)進(jìn) 入下一個(gè)業(yè)務(wù)處理環(huán)節(jié),如果預(yù)算不足則返回進(jìn)行人工決策等。在上述預(yù)算控制的示例中,業(yè)務(wù)單據(jù)作為數(shù)據(jù)源用于向預(yù)算控制系統(tǒng)^是供 預(yù)算數(shù)據(jù),其中,單據(jù)的各種屬性信息都可作為預(yù)算控制參數(shù)的數(shù)據(jù)源。如果 單據(jù)需要參與預(yù)算控制,現(xiàn)有的實(shí)現(xiàn)方式是采用代碼方式實(shí)現(xiàn),通過(guò)在單據(jù)所 在的業(yè)務(wù)系統(tǒng)中加入查找預(yù)算數(shù)據(jù)的功能實(shí)現(xiàn),即由各個(gè)業(yè)務(wù)單據(jù)開(kāi)發(fā)團(tuán)隊(duì)各 自完成業(yè)務(wù)單據(jù)查找預(yù)算的全過(guò)程。這種在程序中通過(guò)固定代碼獲取單據(jù)上的 屬性來(lái)組成預(yù)算控制參數(shù)的方式,是一種被動(dòng)的"推"的方式,存在以下幾個(gè)缺點(diǎn)其一,預(yù)算控制的可變性很差,無(wú)法適應(yīng)需求的變化,因?yàn)榭刂七壿嫻潭?在代碼里。例如在憑證單據(jù)中,組成預(yù)算項(xiàng)目的來(lái)源可能有科目、科目+物 料、科目+組織等等很多不同形式,如果通過(guò)代碼來(lái)完成這些組合將非常困難,因?yàn)榇a中不能一一進(jìn)行窮舉,組合相對(duì)固定, 一旦用戶需要的組合不在代碼編寫(xiě)的組合之中,就得重新修改代碼,維護(hù)代價(jià)很大;其二,開(kāi)發(fā)工作量大,即所有啟用預(yù)算控制的模塊都要各自編寫(xiě)和預(yù)算控 制相關(guān)代碼;其三,對(duì)各個(gè)業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)人員的預(yù)算業(yè)務(wù)知識(shí)要求很高,他們必須清 楚了解很多預(yù)算模塊的細(xì)節(jié),否則開(kāi)發(fā)無(wú)法進(jìn)行;其四,各個(gè)業(yè)務(wù)系統(tǒng)和預(yù)算控制系統(tǒng)的代碼耦合性很強(qiáng),導(dǎo)致預(yù)算系統(tǒng)進(jìn) 行重構(gòu)非常困難。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是提供從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法及系統(tǒng), 以解決目前采用固定代碼獲取數(shù)據(jù)的方式所存在的問(wèn)題。為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開(kāi)了以下技術(shù)方案從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法,包括 獲取實(shí)體文件;從實(shí)體文件獲取實(shí)體的所有屬性,其中所述實(shí)體屬性稱為數(shù)據(jù)源; 解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),并顯示;查詢所述實(shí)體結(jié)構(gòu)樹(shù),從選中的數(shù)據(jù)源獲取實(shí)體屬性值。 其中,按照以下步驟解析實(shí)體預(yù)定義訪問(wèn)實(shí)體的規(guī)則;根據(jù)所述規(guī)則分 析實(shí)體屬性性質(zhì);根據(jù)所述屬性性質(zhì)構(gòu)建實(shí)體結(jié)構(gòu)樹(shù);并根據(jù)所述規(guī)則保存解析好的實(shí)體信息。其中,按照以下步驟從選中的數(shù)據(jù)源獲取實(shí)體屬性值選擇實(shí)體屬性建立 與業(yè)務(wù)參數(shù)的映射關(guān)系;當(dāng)執(zhí)行所述業(yè)務(wù)參數(shù)時(shí),根據(jù)所述映射關(guān)系獲取對(duì)應(yīng) 的實(shí)體屬性值。從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng),包括實(shí)體解析單元,用于獲取實(shí)體文件;從實(shí)體文件獲取實(shí)體的所有屬性,其 中所述實(shí)體屬性稱為數(shù)據(jù)源;解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù);交互單元,用于顯示所述實(shí)體結(jié)構(gòu)樹(shù),并提供查詢實(shí)體結(jié)構(gòu)樹(shù)的功能; 數(shù)據(jù)獲取單元,用于從選中的數(shù)據(jù)源獲取實(shí)體屬性值。
所述系統(tǒng)還包括通用接口,用于預(yù)定義訪問(wèn)實(shí)體的規(guī)則。其中,所述通用接口可擴(kuò)展。其中,所述實(shí)體解析單元根據(jù)通用接口定義的規(guī)則分析實(shí)體屬性性質(zhì),根 據(jù)屬性性質(zhì)構(gòu)建實(shí)體結(jié)構(gòu)樹(shù),并根據(jù)所述規(guī)則將解析好的實(shí)體信息保存。 其中,所述交互單元在"R供查詢功能時(shí),建立選中的實(shí)體屬性與業(yè)務(wù)參數(shù)的映射關(guān)系;當(dāng)執(zhí)行該業(yè)務(wù)參數(shù)時(shí),數(shù)據(jù)獲取單元根據(jù)所述映射關(guān)系從相應(yīng)數(shù) 據(jù)源獲取實(shí)體屬性值。從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng),包括客戶端和服務(wù)器,所述客戶端用于 向服務(wù)器發(fā)起數(shù)據(jù)獲取請(qǐng)求,所述服務(wù)器用于從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)并返回; 其中所述服務(wù)器端包括實(shí)體解析引擎,用于獲取實(shí)體文件并從中獲取實(shí)體的所 有屬性,解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),其中所述實(shí)體屬性稱為數(shù)據(jù)源; 所述客戶端通過(guò)用戶界面將所述實(shí)體結(jié)構(gòu)樹(shù)顯示;還包括解析器,用于根據(jù)客 戶端請(qǐng)求調(diào)用服務(wù)器端的實(shí)體解析引擎解析實(shí)體,并根據(jù)用戶在實(shí)體結(jié)構(gòu)樹(shù)中 選擇的實(shí)體屬性從服務(wù)器端獲取相應(yīng)的屬性值。從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng),包括客戶端和服務(wù)器,所述客戶端用于 向服務(wù)器發(fā)起數(shù)據(jù)獲取請(qǐng)求,所述服務(wù)器通過(guò)組件從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)并返 回給客戶端;其中,所述組件包括實(shí)體解析引擎,用于獲取實(shí)體文件并從中獲取實(shí)體的 所有屬性,解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),其中所述實(shí)體屬性稱為數(shù)據(jù)源; 客戶端界面,負(fù)責(zé)與用戶交互,并將所述實(shí)體結(jié)構(gòu)樹(shù)顯示給用戶;解析器,用 于根據(jù)客戶端請(qǐng)求調(diào)用所述實(shí)體解析引擎解析實(shí)體,并根據(jù)用戶在實(shí)體結(jié)構(gòu)樹(shù)中選擇的實(shí)體屬性從服務(wù)器端獲取相應(yīng)的屬性值。根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開(kāi)了以下技術(shù)效果 首先,獲取實(shí)體文件并取得實(shí)體的所有屬性,其中所述實(shí)體屬性稱為數(shù)據(jù) 源,然后解析所述實(shí)體屬性構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù)并顯示給用戶,用戶可以才艮據(jù)需 求靈活定義實(shí)體屬性(如單據(jù)屬性)與業(yè)務(wù)參數(shù)(如預(yù)算控制參數(shù))的對(duì)應(yīng)關(guān) 系;在運(yùn)行所述業(yè)務(wù)參it時(shí)才艮據(jù)定義的對(duì)應(yīng)關(guān)系,通過(guò)一種"拉"的主動(dòng)方式 從實(shí)體(如單據(jù))中抽取對(duì)應(yīng)的屬性值,組成業(yè)務(wù)參數(shù)(預(yù)算控制參數(shù)),從 而無(wú)需通過(guò)固定編碼就實(shí)現(xiàn)了預(yù)算控制的可變性。 其次,大大減少了代碼量,代碼維護(hù)小。再次,由于為用戶提供了靈活設(shè)定單據(jù)屬性與預(yù)算控制參數(shù)的界面,所以 預(yù)算控制系統(tǒng)從單據(jù)獲取數(shù)據(jù)的功能從原來(lái)的各個(gè)業(yè)務(wù)系統(tǒng)分離出來(lái),提供了 統(tǒng)一的平臺(tái),開(kāi)發(fā)人員無(wú)需再了解相關(guān)的預(yù)算業(yè)務(wù)知識(shí),因此降低了對(duì)開(kāi)發(fā)人 員的要求。最后,由于提供了一個(gè)統(tǒng)一的數(shù)據(jù)獲取平臺(tái),所以極大地降低了各個(gè)業(yè)務(wù) 系統(tǒng)與預(yù)算控制系統(tǒng)的代碼耦合性,提供了預(yù)算控制系統(tǒng)的重構(gòu)性。
圖1是本發(fā)明實(shí)施例所述從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法流程圖;圖2是本發(fā)明實(shí)施例中預(yù)算控制系統(tǒng)的配置界面示意圖;圖3是本發(fā)明實(shí)施例中憑證單據(jù)的實(shí)體結(jié)構(gòu)樹(shù)示意圖;圖4是本發(fā)明實(shí)施例所述從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。本發(fā)明實(shí)施例提供了 一種從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法,通過(guò)MDA模型驅(qū) 動(dòng),定義了實(shí)體屬性(即數(shù)據(jù)源)與業(yè)務(wù)參數(shù)的對(duì)應(yīng)關(guān)系,在執(zhí)行所述業(yè)務(wù)參 數(shù)時(shí)動(dòng)態(tài)根據(jù)定義的對(duì)應(yīng)關(guān)系,通過(guò)一種"拉"的方式主動(dòng)從實(shí)體中抽取對(duì)應(yīng) 的屬性值,組成業(yè)務(wù)參數(shù)并進(jìn)行后續(xù)處理,從而無(wú)需通過(guò)固定編碼就實(shí)現(xiàn)了預(yù) 算控制的可變性,從根本上改變了預(yù)算控制可變性,大大減少了代碼量。其中,上述MDA (Model Driven Architecture)是模型驅(qū)動(dòng)架構(gòu),它是由 0MG( Object Management Gro叩,對(duì)象管理組織)定義的一個(gè)軟件開(kāi)發(fā)框架,把 系統(tǒng)才喿作的規(guī)范從系統(tǒng)利用底層平臺(tái)能力的方式細(xì)節(jié)中分離出來(lái)的思想,MDA 提供了一種途徑(通過(guò)相關(guān)的工具)來(lái)規(guī)范化一個(gè)平臺(tái)獨(dú)立的系統(tǒng)、規(guī)范化平 臺(tái)、為系統(tǒng)選擇一個(gè)特定的實(shí)現(xiàn)平臺(tái),并且把系統(tǒng)規(guī)范轉(zhuǎn)換到特定的實(shí)現(xiàn)平臺(tái)。 MDA的三個(gè)主要目標(biāo)是通過(guò)架構(gòu)性的分離來(lái)實(shí)現(xiàn)輕便性、互操作性和可重用 性。本發(fā)明實(shí)施例所述方法即以模型驅(qū)動(dòng)的思想為基礎(chǔ),下面將仍以預(yù)算控制 為例進(jìn)行說(shuō)明。
為便于理解本發(fā)明的技術(shù)方案,首先介紹預(yù)算控制的處理方式。在進(jìn)行預(yù)算控制時(shí),如果單據(jù)要參與預(yù)算,則通過(guò)MDA模型驅(qū)動(dòng),用戶需要在系統(tǒng)提供 的定義界面里選出進(jìn)行預(yù)算控制的是哪個(gè)系統(tǒng)的哪種單據(jù),然后選出預(yù)算控制 參數(shù)一一預(yù)算組織、預(yù)算項(xiàng)目、幣別、時(shí)間、業(yè)務(wù)申請(qǐng)值等分別對(duì)應(yīng)單據(jù)的哪 些字段。預(yù)算控制系統(tǒng)會(huì)根據(jù)用戶的配置從相應(yīng)單據(jù)中抽取信息,組裝成預(yù)算 控制參數(shù),進(jìn)行預(yù)算控制。在這個(gè)過(guò)程中,本發(fā)明與現(xiàn)有技術(shù)的根本區(qū)別在于 設(shè)置預(yù)算控制參數(shù)與單據(jù)屬性對(duì)應(yīng)關(guān)系的方式不同,現(xiàn)有技術(shù)是通過(guò)固定編碼 方式實(shí)現(xiàn),而本發(fā)明是將這項(xiàng)配置功能在客戶端前臺(tái)實(shí)現(xiàn),用戶可以根據(jù)需要 靈活進(jìn)行配置。下面將詳細(xì)說(shuō)明如何將配置功能面向用戶實(shí)現(xiàn)。參照?qǐng)D1,是所述>^人多個(gè) 數(shù)據(jù)源獲取數(shù)據(jù)的方法流程圖。本發(fā)明實(shí)施例中,預(yù)算控制系統(tǒng)的應(yīng)用環(huán)境包 括客戶端和服務(wù)器端,在客戶端提供了預(yù)算控制參數(shù)的配置界面,當(dāng)用戶需要 選擇單據(jù)參與預(yù)算控制時(shí),進(jìn)入配置界面通it^戶端向服務(wù)器發(fā)起請(qǐng)求,服務(wù)器端將執(zhí)行以下步驟步驟IOI,根據(jù)請(qǐng)求獲取實(shí)體文件。在基于MDA模型驅(qū)動(dòng)的系統(tǒng)中,單據(jù)即為實(shí)體數(shù)據(jù),實(shí)體數(shù)據(jù)以文件形式 存儲(chǔ), 一般以".entity"為擴(kuò)展名稱,對(duì)應(yīng)一個(gè)業(yè)務(wù)單據(jù)實(shí)體。用戶會(huì)在配 置界面首先設(shè)置需要從哪個(gè)系統(tǒng)的哪個(gè)單據(jù)進(jìn)行預(yù)算控制,服務(wù)器端根據(jù)用戶 設(shè)置從相應(yīng)的業(yè)務(wù)系統(tǒng)獲糾目應(yīng)的實(shí)體文件。配置界面可參照?qǐng)D2所示,用戶進(jìn)入界面選擇的業(yè)務(wù)系統(tǒng)為"管理會(huì)計(jì)", 業(yè)務(wù)單據(jù)為"差旅費(fèi)用報(bào)銷(xiāo)單",這兩個(gè)選項(xiàng)在預(yù)算控制系統(tǒng)中對(duì)應(yīng)的控制參 數(shù)為預(yù)算組織。步驟102,從實(shí)體文件中獲取實(shí)體的所有屬性。例如在單據(jù)實(shí)體中,包含 多個(gè)屬性信息,如科目、物料等,這些屬性信息構(gòu)成預(yù)算控制參數(shù)的it據(jù)源。 根據(jù)預(yù)算控制需求,預(yù)算控制系統(tǒng)需要從多個(gè)數(shù)據(jù)源,即多個(gè)實(shí)體屬性中抽取 數(shù)據(jù)來(lái)組成控制參數(shù)。步驟103,解析得到的實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),并在客戶端顯示。 所述實(shí)體結(jié)構(gòu)樹(shù)按照實(shí)體在業(yè)務(wù)系統(tǒng)中的結(jié)構(gòu),以可視化的窗口展現(xiàn)給用 戶。參照?qǐng)D3所示,是一個(gè)憑證單據(jù)的實(shí)體結(jié)構(gòu)樹(shù)示意圖,該憑證單據(jù)包括"過(guò)
賬"、"出納"、"分錄"等子屬性,而每個(gè)子屬性又包含若干個(gè)屬性,以層級(jí)目 錄的方式顯示。
本實(shí)施例提供了一種根據(jù)實(shí)體屬性構(gòu)建實(shí)體結(jié)構(gòu)樹(shù)的方法,預(yù)先定義訪問(wèn) 實(shí)體的通用規(guī)則,該規(guī)則定義了如何獲取實(shí)體屬性中的字段名稱、字^殳類(lèi)型、 判斷是否具有字段別名、是否含有葉結(jié)點(diǎn)等方法,然后根據(jù)所述規(guī)則解析實(shí)體
屬性,從而構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù)。具體步驟包括首先構(gòu)建根結(jié)點(diǎn),然后根據(jù)步 驟102解析實(shí)體文件取得的所有屬性,分析屬性性質(zhì),如果當(dāng)前屬性無(wú)孩子, 則加入實(shí)體對(duì)象內(nèi);如果當(dāng)前屬性有孩子,則說(shuō)明該孩子是這個(gè)屬性的一個(gè)關(guān) 聯(lián)屬性(如圖3中"分錄"屬性即為"憑證"實(shí)體的一個(gè)關(guān)聯(lián)屬性),首先在 實(shí)體對(duì)象內(nèi)加入一個(gè)虛結(jié)點(diǎn),然后根據(jù)關(guān)聯(lián)關(guān)系取得孩子實(shí)體繼續(xù)分析,如此 遞歸下去,構(gòu)建出一棵實(shí)體結(jié)構(gòu)樹(shù)。其中,所述實(shí)體對(duì)象用于按照上述規(guī)則存 放解析好的實(shí)體信息(如字段名稱等信息)。當(dāng)然,也可以采用其他方法解析 實(shí)體并構(gòu)建實(shí)體結(jié)構(gòu)樹(shù)。
步驟104,查詢所述實(shí)體結(jié)構(gòu)樹(shù),從選中的數(shù)據(jù)源獲取實(shí)體屬性值。 參照?qǐng)D3所示的實(shí)體結(jié)構(gòu)樹(shù),用戶可以在彈出的"源單據(jù)屬性選擇,,窗口 中選擇憑證單據(jù)的各個(gè)屬性來(lái)對(duì)應(yīng)預(yù)算控制系統(tǒng)的預(yù)算項(xiàng)目、幣別、時(shí)間等控 制參數(shù)。例如,選擇其中的"分錄"屬性對(duì)應(yīng)預(yù)算項(xiàng)目,或者選擇"出納+過(guò) 賬"屬性對(duì)應(yīng)預(yù)算項(xiàng)目,這樣用戶的設(shè)置就非常靈活。當(dāng)用戶配置好單據(jù)屬性
與預(yù)算控制參數(shù)的對(duì)應(yīng)關(guān)系后,服務(wù)器端會(huì)根據(jù)所述對(duì)應(yīng)關(guān)系到實(shí)體對(duì)象內(nèi)抽 取真實(shí)數(shù)據(jù)。
參照?qǐng)D3舉例說(shuō)明整個(gè)過(guò)程,在控制策略內(nèi),選擇"責(zé)任中心來(lái)源",系 統(tǒng)會(huì)彈出屬性來(lái)源窗口,選擇單據(jù)屬性,系統(tǒng)彈出解析好的實(shí)體結(jié)構(gòu)樹(shù),該樹(shù) 為憑證實(shí)體的真實(shí)結(jié)構(gòu),用戶可以選擇憑證實(shí)體上面的"公司"屬性,該屬性 在憑證實(shí)體的關(guān)鍵字為company, id,該關(guān)鍵字被存入數(shù)據(jù)庫(kù)。當(dāng)憑證審批的 時(shí)候,預(yù)算控制系統(tǒng)會(huì)到憑證抽取company, id的真實(shí)數(shù)值,然后使用該id 去查找預(yù)算組織,然后在該組織按照一定規(guī)則查找預(yù)算數(shù)據(jù)(究竟會(huì)找到哪個(gè) 預(yù)算這依賴于控制信息的來(lái)源)。
通過(guò)上述方法,用戶可以靈活進(jìn)4亍預(yù)算控制配置,其他業(yè)務(wù)系統(tǒng)人員也不 必編寫(xiě)與預(yù)算控制系統(tǒng)相關(guān)的代碼,大大降低了工作量。本發(fā)明實(shí)施例還提供了從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng),作為預(yù)算控制系統(tǒng) 的一部分,可從數(shù)據(jù)源所在的業(yè)務(wù)系統(tǒng)中抽取出預(yù)算數(shù)據(jù)進(jìn)行預(yù)算控制。參照
圖4,是所述系統(tǒng)的結(jié)構(gòu)框圖。所述系統(tǒng)主要包括實(shí)體解析單元401、交互單 元402和數(shù)據(jù)獲取單元403。
所述實(shí)體解析單元401用于獲取實(shí)體文件,從實(shí)體文件獲取實(shí)體的所有屬 性,并解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù);所述交互單元402負(fù)責(zé)與用戶交互, 用于提供配置界面,顯示所述實(shí)體結(jié)構(gòu)樹(shù),并提供查詢實(shí)體結(jié)構(gòu)樹(shù)的功能,用 戶可設(shè)置實(shí)體屬性與預(yù)算控制參數(shù)的對(duì)應(yīng)關(guān)系;所述數(shù)據(jù)獲取單元403用于從 選中的數(shù)據(jù)源獲取實(shí)體屬性值。其中,實(shí)體解析單元401在解析實(shí)體時(shí),根據(jù) 通用接口 404定義的實(shí)體訪問(wèn)規(guī)則分析實(shí)體屬性性質(zhì),根據(jù)屬性性質(zhì)構(gòu)建實(shí)體 結(jié)構(gòu)樹(shù),并根據(jù)所述規(guī)則將解析好的實(shí)體信息保存到實(shí)體對(duì)象中。所述通用接 口 404用于預(yù)定義訪問(wèn)實(shí)體的規(guī)則,并提供了擴(kuò)展功能,用戶可根據(jù)接口定義 的通用訪問(wèn)規(guī)則進(jìn)一步擴(kuò)展。
才艮據(jù)實(shí)際應(yīng)用,本發(fā)明還提供了另一系統(tǒng)實(shí)施例,該系統(tǒng)包括客戶端和服 務(wù)器,所述客戶端用于向服務(wù)器發(fā)起數(shù)據(jù)獲取請(qǐng)求,所述服務(wù)器用于從多個(gè)數(shù) 據(jù)源所在的業(yè)務(wù)系統(tǒng)獲取數(shù)據(jù)并返回;其中所述服務(wù)器端包括實(shí)體解析引擎, 用于獲取實(shí)體文件并從中獲取實(shí)體的所有屬性,解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié) 構(gòu)樹(shù);所述客戶端通過(guò)客戶端UI (User Interface,用戶界面)將所述實(shí)體 結(jié)構(gòu)樹(shù)顯示;還包括解析器,用于根據(jù)客戶端請(qǐng)求調(diào)用服務(wù)器端的實(shí)體解析引 擎解析實(shí)體,并根據(jù)用戶在實(shí)體結(jié)構(gòu)樹(shù)中選擇的實(shí)體屬性從服務(wù)器端獲取相應(yīng) 的屬性值。
優(yōu)選的,在應(yīng)用組件的系統(tǒng)環(huán)境中,可以通過(guò)創(chuàng)建組件來(lái)實(shí)現(xiàn),服務(wù)器通 過(guò)組件從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)并返回給客戶端。該組件包括實(shí)體解析引擎,用 于獲取實(shí)體文件并從中獲取實(shí)體的所有屬性,解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)
樹(shù);客戶端UI,負(fù)責(zé)與用戶交互,并調(diào)用服務(wù)器端功能將所述實(shí)體結(jié)構(gòu)樹(shù)顯 示給用戶;解析器,用于根據(jù)客戶端請(qǐng)求調(diào)用所述實(shí)體解析引擎解析實(shí)體,并 根據(jù)用戶在實(shí)體結(jié)構(gòu)樹(shù)中選擇的實(shí)體屬性從服務(wù)器端獲取相應(yīng)的屬性值;實(shí)體 對(duì)象,用于存儲(chǔ)解析好的實(shí)體信息,如字段名稱等信息。
需要說(shuō)明的是,在本發(fā)明中,"組件,,的概念指應(yīng)用于計(jì)算機(jī)的相關(guān)實(shí)體,
如硬件、硬件和軟件的組合、軟件或執(zhí)行中的軟件等。詳細(xì)地說(shuō),例如, 組件可以、但不限于是運(yùn)行于處理器的過(guò)程、處理器、對(duì)象、可執(zhí)行組件、 執(zhí)行線程、程序和/或計(jì)算機(jī)。還有,運(yùn)行于服務(wù)器上的應(yīng)用程序或腳本程 序、服務(wù)器都可以是組件。 一個(gè)或多個(gè)組件可在執(zhí)行的過(guò)程和/或線程中, 并且組件可以在一臺(tái)計(jì)算機(jī)上本地化和/或分布在兩臺(tái)或多臺(tái)計(jì)算機(jī)之間, 并可以由各種計(jì)算機(jī)可讀介質(zhì)運(yùn)行。組件還可以根據(jù)具有一個(gè)或多個(gè)數(shù)據(jù) 包的信號(hào),例如,來(lái)自一個(gè)與本地系統(tǒng)、分布式系統(tǒng)中另一組件交互的, 和/或在因特網(wǎng)的網(wǎng)絡(luò)通過(guò)信號(hào)與其它系統(tǒng)交互的數(shù)據(jù)的信號(hào)通過(guò)本地和/ 或遠(yuǎn)程過(guò)程來(lái)進(jìn)行通信。
圖4所示系統(tǒng)中未詳述的部分可以參見(jiàn)圖1所示方法的相關(guān)部分,為了篇 幅考慮,在此不再詳述。
以上對(duì)本發(fā)明所提供的從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法及系統(tǒng),進(jìn)行了詳細(xì)
施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域 的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改 變之處。綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、 從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法,其特征在于,包括 獲取實(shí)體文件;從實(shí)體文件獲取實(shí)體的所有屬性,其中所述實(shí)體屬性稱為數(shù)據(jù)源; 解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),并顯示;查詢所述實(shí)體結(jié)構(gòu)樹(shù),從選中的數(shù)據(jù)源獲取實(shí)體屬性值。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,按照以下步驟解析實(shí)體 預(yù)定義訪問(wèn)實(shí)體的規(guī)則;根據(jù)所述規(guī)則分析實(shí)體屬性性質(zhì); 根據(jù)所述屬性性質(zhì)構(gòu)建實(shí)體結(jié)構(gòu)樹(shù); 并根據(jù)所述規(guī)則保存解析好的實(shí)體信息。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,按照以下步驟從選中的數(shù)據(jù)源獲取實(shí)體屬性值選擇實(shí)體屬性建立與業(yè)務(wù)參數(shù)的映射關(guān)系;當(dāng)執(zhí)行所述業(yè)務(wù)參數(shù)時(shí),根據(jù)所述映射關(guān)系獲取對(duì)應(yīng)的實(shí)體屬性值。
4、 從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng),其特征在于,包括 實(shí)體解析單元,用于獲取實(shí)體文件;從實(shí)體文件獲取實(shí)體的所有屬性,其中所述實(shí)體屬性稱為數(shù)據(jù)源;解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù);交互單元,用于顯示所述實(shí)體結(jié)構(gòu)樹(shù),并提供查詢實(shí)體結(jié)構(gòu)樹(shù)的功能; 數(shù)據(jù)獲取單元,用于從選中的數(shù)據(jù)源獲取實(shí)體屬性值。
5、 根據(jù)權(quán)利要求4述的系統(tǒng),其特征在于,還包括通用接口,用于預(yù) 定義訪問(wèn)實(shí)體的規(guī)則。
6、 根據(jù)權(quán)利要求5述的系統(tǒng),其特征在于所述通用接口可擴(kuò)展。
7、 根據(jù)權(quán)利要求5述的系統(tǒng),其特征在于所述實(shí)體解析單元根據(jù)通用 接口定義的規(guī)則分析實(shí)體屬性性質(zhì),根據(jù)屬性性質(zhì)構(gòu)建實(shí)體結(jié)構(gòu)樹(shù),并根據(jù)所 述規(guī)則將解析好的實(shí)體信息保存。
8、 根據(jù)權(quán)利要求4述的系統(tǒng),其特征在于所述交互單元在提供查詢功 能時(shí),建立選中的實(shí)體屬性與業(yè)務(wù)參數(shù)的映射關(guān)系;當(dāng)執(zhí)行該業(yè)務(wù)參數(shù)時(shí),數(shù) 據(jù)獲取單元根據(jù)所述映射關(guān)系從相應(yīng)數(shù)據(jù)源獲取實(shí)體屬性值。
9、 從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng),其特征在于,包括客戶端和服務(wù)器, 所述客戶端用于向服務(wù)器發(fā)起數(shù)據(jù)獲取請(qǐng)求,所述服務(wù)器用于從多個(gè)數(shù)據(jù)源獲 取數(shù)據(jù)并返回;其中所述服務(wù)器端包括實(shí)體解析引擎,用于獲取實(shí)體文件并從 中獲取實(shí)體的所有屬性,解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),其中所述實(shí)體屬 性稱為數(shù)據(jù)源;所述客戶端通過(guò)用戶界面將所述實(shí)體結(jié)構(gòu)樹(shù)顯示;還包括解析器,用于根據(jù)客戶端請(qǐng)求調(diào)用服務(wù)器端的實(shí)體解析引擎解析實(shí)體,并根據(jù)用戶 在實(shí)體結(jié)構(gòu)樹(shù)中選擇的實(shí)體屬性從服務(wù)器端獲取相應(yīng)的屬性值。
10、 從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的系統(tǒng),其特征在于,包括客戶端和服務(wù)器, 所述客戶端用于向服務(wù)器發(fā)起數(shù)據(jù)獲取請(qǐng)求,所述服務(wù)器通過(guò)組件從多個(gè)數(shù)據(jù) 源獲取數(shù)據(jù)并返回給客戶端;其中,所述組件包括實(shí)體解析引擎,用于獲取實(shí)體文件并從中獲取實(shí)體的 所有屬性,解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),其中所述實(shí)體屬性稱為數(shù)據(jù)源; 客戶端界面,負(fù)責(zé)與用戶交互,并將所述實(shí)體結(jié)構(gòu)樹(shù)顯示給用戶;解析器,用 于根據(jù)客戶端請(qǐng)求調(diào)用所述實(shí)體解析引擎解析實(shí)體,并根據(jù)用戶在實(shí)體結(jié)構(gòu)樹(shù) 中選擇的實(shí)體屬性從服務(wù)器端獲取相應(yīng)的屬性值。
全文摘要
本發(fā)明公開(kāi)了一種從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)的方法及系統(tǒng),解決目前采用固定代碼獲取數(shù)據(jù)的方式存在靈活性差的問(wèn)題。所述方法包括獲取實(shí)體文件;從實(shí)體文件獲取實(shí)體的所有屬性,其中所述實(shí)體屬性稱為數(shù)據(jù)源;解析實(shí)體屬性,構(gòu)建出實(shí)體結(jié)構(gòu)樹(shù),并顯示;查詢所述實(shí)體結(jié)構(gòu)樹(shù),從選中的數(shù)據(jù)源獲取實(shí)體屬性值。通過(guò)本發(fā)明,用戶可以根據(jù)需求靈活定義實(shí)體屬性與業(yè)務(wù)參數(shù)的對(duì)應(yīng)關(guān)系,在運(yùn)行所述業(yè)務(wù)參數(shù)時(shí)根據(jù)定義的對(duì)應(yīng)關(guān)系,通過(guò)一種“拉”的主動(dòng)方式從實(shí)體中抽取對(duì)應(yīng)的屬性值,組成業(yè)務(wù)參數(shù),從而無(wú)需通過(guò)固定編碼就實(shí)現(xiàn)了業(yè)務(wù)控制的可變性。
文檔編號(hào)G06F17/30GK101145163SQ20071016603
公開(kāi)日2008年3月19日 申請(qǐng)日期2007年10月30日 優(yōu)先權(quán)日2007年10月30日
發(fā)明者冰 李 申請(qǐng)人:金蝶軟件(中國(guó))有限公司