專利名稱:引用檢查系統(tǒng)和引用檢查方法
技術領域:
本發(fā)明涉及計算機技術領域,具體而言,涉及一種引用檢查系統(tǒng)和一種引用檢查系方法。
背景技術:
在軟件開發(fā)中,特別在分模塊、分層次開發(fā)中,引用其他模塊的情況很多,對數(shù)據(jù)的修改,勢必影響其他模塊的使用。所以引用檢查工作非常必要。通常的方法采用硬編碼來實現(xiàn),檢查邏輯分散在各個模塊中,針對不同的引用,需要編寫不同的檢測代碼,增加了模塊間的耦合性,不便于管理和擴展。在相關技術中,通過建立數(shù)據(jù)表,存儲簡單的引用信息,生成SQL語句,然后進行數(shù)據(jù)庫查詢,獲得引用數(shù)據(jù)。這種方式有一定局限性,對于復雜的SQL語句、復雜邏輯以及一些沒有采用數(shù)據(jù)庫存儲的系統(tǒng)不適用。隨著規(guī)模的擴大,開發(fā)人員難以了解和控制其他模塊對數(shù)據(jù)的引用,但是引用的檢查是必須的,尋找一種通用的 檢查方法,迫在眉睫。具體地,相關技術中的硬編碼技術如圖3所示,在引用方提供方法,被引用方(圖中的基礎數(shù)據(jù))調用該方法進行檢查。這種硬編碼的方式,比較直接,但是,引用方與基礎數(shù)據(jù)之間的代碼融在一起,系統(tǒng)耦合性很高,如果引用方檢查方法改變,勢必影響基礎數(shù)據(jù)的檢查調用,而且,如果有多個引用方,需要寫多份檢查邏輯,基礎數(shù)據(jù)模塊也要做相應修改。極大限制了模塊化發(fā)展。還有一種方法,通過定義簡單的數(shù)據(jù)結構,然后根據(jù)屬性值生成SQL語句,通過數(shù)據(jù)查詢檢查引用。這種方案,對于簡單的數(shù)據(jù)引用還是不錯的解決方案,但是對于復雜查詢,或者復雜邏輯,或者存儲介質并非數(shù)據(jù)庫,例如文件、格式化串、對象等,這種方案的局限性就會顯露出來。因此,本發(fā)明提供了一種新的引用檢查技術,可以降低引用方、被引用方等之間的耦合,并且既能滿足簡單的引用判斷,又能處理復雜的檢查邏輯。
發(fā)明內容
本發(fā)明正是基于上述問題,提出了一種新的引用檢查技術,可以降低引用方、被引用方等之間的耦合,并且既能滿足簡單的引用判斷,又能處理復雜的檢查邏輯。有鑒于此,本發(fā)明提出了一種引用檢查系統(tǒng),包括數(shù)據(jù)生成單元,用于引用方生成對應于引用關系的引用查詢數(shù)據(jù);數(shù)據(jù)存儲單元,用于所述引用方將所述引用查詢數(shù)據(jù)存儲至所述引用檢查系統(tǒng)預設的引用信息表中;數(shù)據(jù)獲取單元,用于被引用方在進行引用檢查時,獲取所述引用信息表中存儲的所述引用查詢數(shù)據(jù);處理單元,所述被引用方根據(jù)所述引用查詢數(shù)據(jù)獲得對應的引用數(shù)據(jù)。在該技術方案中,將進行引用檢查的功能部分獨立開來,減少了大量引用代碼的編寫,減輕了開發(fā)人員負擔,降低了成本,而且便于對引用進行控制和管理;同時,被引用方,在對數(shù)據(jù)進行修改、刪除操作時,只需調用檢查服務進行檢查即可,不用關心哪個模塊在引用,有多少個模塊引用,檢查系統(tǒng)會自動遍歷針對該類型數(shù)據(jù)的所有引用配置項,降低引用方與被引用方之間的耦合。在上述技術方案中,優(yōu)選地,所述數(shù)據(jù)生成單元生成的所述引用查詢數(shù)據(jù)包括配置數(shù)據(jù)、預置SQL語句或存儲過程;所述處理單元用于根據(jù)所述配置數(shù)據(jù)生成并執(zhí)行對應的SQL語句、執(zhí)行所述預置SQL語句或執(zhí)行所述存儲過程,以獲得所述引用數(shù)據(jù)。在上述技術方案中,優(yōu)選地,所述數(shù)據(jù)生成單元生成的所述引用查詢數(shù)據(jù)包括月艮務組件;所述處理單元用于根據(jù)所述引用檢查系統(tǒng)提供的接口建立對應的服務組件,以實現(xiàn)查詢服務,從而獲得所述引用數(shù)據(jù)。在該技術方案中,大多數(shù)情況,可以通過簡單配置項、預置SQL語句或存儲過程來實現(xiàn),如果檢查邏輯很復雜,難以用查詢語句、存儲過程來實現(xiàn),或者用戶存儲數(shù)據(jù)的介質為文件或者其他,這就需要通過服務的方式來實現(xiàn)。
在上述技術方案中,優(yōu)選地,還包括邏輯設置單元,用于預設檢查結果邏輯;結果展示單元,用于展示每個檢查到的引用數(shù)據(jù)的檢查結果和/或總的檢查結果。在該技術方案中,檢查結果邏輯可以由用戶自定義,比如存在引用項為true,不存在為false,從而定義每個引用數(shù)據(jù)的檢查結果;可以定義若所有的均為true,則總結果為true,否則總結果為false。在上述技術方案中,優(yōu)選地,還包括數(shù)據(jù)展示單元,用于對所述處理單元檢查到的引用數(shù)據(jù)進行展示。在該技術方案中,通過對引用數(shù)據(jù)進行展示,使得結果更為直觀,便于進行進一步處理。在上述技術方案中,優(yōu)選地,還包括關系獲取單元,用于通過設置引用簡表,以自動獲取所述引用方和所述被引用方之間的引用關系。在該技術方案中,通過設置該引用簡表,可以對引用關系進行自動獲取。根據(jù)本發(fā)明的又一方面,還提出了一種引用檢查方法,包括步驟202,引用方生成對應于引用關系的引用查詢數(shù)據(jù),并存儲至預設的引用信息表中;步驟204,被引用方在進行引用檢查時,獲取所述引用信息表中存儲的所述引用查詢數(shù)據(jù),利用所述引用查詢數(shù)據(jù)進行查詢操作以獲得對應的引用數(shù)據(jù)。在該技術方案中,將進行引用檢查的功能部分獨立開來,減少了大量引用代碼的編寫,減輕了開發(fā)人員負擔,降低了成本,而且便于對引用進行控制和管理;同時,被引用方,在對數(shù)據(jù)進行修改、刪除操作時,只需調用檢查服務進行檢查即可,不用關心哪個模塊在引用,有多少個模塊引用,檢查系統(tǒng)會自動遍歷針對該類型數(shù)據(jù)的所有引用配置項,降低引用方與被引用方之間的耦合。在上述技術方案中,優(yōu)選地,所述引用查詢數(shù)據(jù)包括配置數(shù)據(jù)、預置SQL語句或存儲過程,在所述步驟204包括所述被引用方在進行引用檢查時,根據(jù)所述配置數(shù)據(jù)生成并執(zhí)行對應的SQL語句、執(zhí)行所述預置SQL語句或執(zhí)行所述存儲過程,以獲得所述引用數(shù)據(jù)。在上述技術方案中,優(yōu)選地,所述引用查詢數(shù)據(jù)包括服務組件,則所述步驟204包括所述被引用方在進行引用檢查時,根據(jù)預設的接口建立對應的服務組件,以實現(xiàn)對應的查詢服務,從而獲得所述引用數(shù)據(jù)。在該技術方案中,大多數(shù)情況,可以通過簡單配置項、預置SQL語句或存儲過程來實現(xiàn),如果檢查邏輯很復雜,難以用查詢語句、存儲過程來實現(xiàn),或者用戶存儲數(shù)據(jù)的介質為文件或者其他,這就需要通過服務的方式來實現(xiàn)。在上述技術方案中,優(yōu)選地,在實現(xiàn)所述查詢服務時,還包括預設檢查結果邏輯;展示每個檢查到的引用數(shù)據(jù)的檢查結果和/或總的檢查結果。在該技術方案中,檢查結果邏輯可以由用戶自定義,比如存在引用項為true,不存在為false,從而定義每個引用數(shù)據(jù)的檢查結果;可以定義若所有的均為true,則總結果為true,否則總結果為false。在上述技術方案中,優(yōu)選地,還包括展示檢查到的引用數(shù)據(jù)。在該技術方案中,通過對引用數(shù)據(jù)進行展示,使得結果更為直觀,便于進行進一步處理。在上述技術方案中,優(yōu)選地,還包括設置引用簡表,以自動獲取所述引用方和所述被引用方之間的引用關系。在該技術方案中,通過設置該引用簡表,可以對引用關系進行自動獲取。通過以上技術方案,可以降低引用方、被引用方等之間的耦合,并且既能滿足簡單 的引用判斷,又能處理復雜的檢查邏輯。
圖I示出了根據(jù)本發(fā)明的實施例的引用檢查系統(tǒng)的框圖;圖2示出了根據(jù)本發(fā)明的實施例的引用檢查方法的流程圖;圖3示出了相關技術的引用檢查系統(tǒng)的結構示意圖;圖4示出了根據(jù)本發(fā)明的實施例的引用檢查系統(tǒng)的結構示意圖;圖5示出了根據(jù)本發(fā)明的實施例的通過服務接口實現(xiàn)引用檢查的流程圖;圖6示出了根據(jù)本發(fā)明的實施例的通過預置配置項實現(xiàn)引用檢查的流程圖;圖7示出了根據(jù)本發(fā)明的實施例的通過服務接口實現(xiàn)引用檢查的具體流程圖;圖8示出了根據(jù)本發(fā)明的實施例的多方引用的情況下進行引用檢查的原理圖;圖9示出了根據(jù)本發(fā)明的實施例的表決器的原理圖;圖10示出了根據(jù)本發(fā)明的實施例的單據(jù)結構圖;圖11示出了根據(jù)本發(fā)明的實施例的單據(jù)與部門之間引用關系示意圖;圖12示出了根據(jù)本發(fā)明的實施例的維度查詢設計器的原理圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結合附圖和具體實施方式
對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護范圍并不受下面公開的具體實施例的限制。圖I示出了根據(jù)本發(fā)明的實施例的引用檢查系統(tǒng)的框圖。如圖I所示,根據(jù)本發(fā)明的實施例的引用檢查系統(tǒng),包括數(shù)據(jù)生成單元101,用于引用方生成對應于引用關系的引用查詢數(shù)據(jù);數(shù)據(jù)存儲單元102,用于引用方將引用查詢數(shù)據(jù)存儲至引用檢查系統(tǒng)預設的引用信息表中;數(shù)據(jù)獲取單元104,用于被引用方在進行引用檢查時,獲取引用信息表中存儲的引用查詢數(shù)據(jù);處理單元106,被引用方根據(jù)引用查詢數(shù)據(jù)獲得對應的引用數(shù)據(jù)。在該技術方案中,將進行引用檢查的功能部分獨立開來,減少了大量引用代碼的編寫,減輕了開發(fā)人員負擔,降低了成本,而且便于對引用進行控制和管理;同時,被引用方,在對數(shù)據(jù)進行修改、刪除操作時,只需調用檢查服務進行檢查即可,不用關心哪個模塊在引用,有多少個模塊引用,檢查系統(tǒng)會自動遍歷針對該類型數(shù)據(jù)的所有引用配置項,降低引用方與被引用方之間的耦合。在上述技術方案中,優(yōu)選地,數(shù)據(jù)生成單元101生成的引用查詢數(shù)據(jù)包括配置數(shù)據(jù)、預置SQL語句或存儲過程;處理單元106用于根據(jù)配置數(shù) 據(jù)生成并執(zhí)行對應的SQL語句、執(zhí)行預置SQL語句或執(zhí)行存儲過程,以獲得引用數(shù)據(jù)。在上述技術方案中,優(yōu)選地,數(shù)據(jù)生成單元101生成的引用查詢數(shù)據(jù)包括服務組件;處理單元106用于根據(jù)引用檢查系統(tǒng)100提供的接口建立對應的服務組件,以實現(xiàn)查詢服務,從而獲得引用數(shù)據(jù)。在該技術方案中,大多數(shù)情況,可以通過簡單配置項、預置SQL語句或存儲過程來實現(xiàn),如果檢查邏輯很復雜,難以用查詢語句、存儲過程來實現(xiàn),或者用戶存儲數(shù)據(jù)的介質為文件或者其他,這就需要通過服務的方式來實現(xiàn)。在上述技術方案中,優(yōu)選地,還包括邏輯設置單元108,用于預設檢查結果邏輯;結果展示單元110,用于展示每個檢查到的引用數(shù)據(jù)的檢查結果和/或總的檢查結果。在該技術方案中,檢查結果邏輯可以由用戶自定義,比如存在引用項為true,不存在為false,從而定義每個引用數(shù)據(jù)的檢查結果;可以定義若所有的均為true,則總結果為true,否則總結果為false。在上述技術方案中,優(yōu)選地,還包括數(shù)據(jù)展示單元112,用于對處理單元106檢查到的引用數(shù)據(jù)進行展示。在該技術方案中,通過對引用數(shù)據(jù)進行展示,使得結果更為直觀,便于進行進一步處理。在上述技術方案中,優(yōu)選地,還包括關系獲取單元114,用于通過設置引用簡表,以自動獲取引用方和被引用方之間的引用關系。在該技術方案中,通過設置該引用簡表,可以對引用關系進行自動獲取。圖2示出了根據(jù)本發(fā)明的實施例的引用檢查方法的流程圖。如圖2所示,根據(jù)本發(fā)明的實施例的引用檢查方法,包括步驟202,引用方生成對應于引用關系的引用查詢數(shù)據(jù),并存儲至預設的引用信息表中;步驟204,被引用方在進行引用檢查時,獲取引用信息表中存儲的引用查詢數(shù)據(jù),利用引用查詢數(shù)據(jù)進行查詢操作以獲得對應的引用數(shù)據(jù)。在該技術方案中,將進行引用檢查的功能部分獨立開來,減少了大量引用代碼的編寫,減輕了開發(fā)人員負擔,降低了成本,而且便于對引用進行控制和管理;同時,被引用方,在對數(shù)據(jù)進行修改、刪除操作時,只需調用檢查服務進行檢查即可,不用關心哪個模塊在引用,有多少個模塊引用,檢查系統(tǒng)會自動遍歷針對該類型數(shù)據(jù)的所有引用配置項,降低引用方與被引用方之間的耦合。在上述技術方案中,優(yōu)選地,引用查詢數(shù)據(jù)包括配置數(shù)據(jù)、預置SQL語句或存儲過程,在步驟204包括被引用方在進行引用檢查時,根據(jù)配置數(shù)據(jù)生成并執(zhí)行對應的SQL語句、執(zhí)行預置SQL語句或執(zhí)行存儲過程,以獲得引用數(shù)據(jù)。在上述技術方案中,優(yōu)選地,引用查詢數(shù)據(jù)包括服務組件,則步驟204包括被引用方在進行引用檢查時,根據(jù)預設的接口建立對應的服務組件,以實現(xiàn)對應的查詢服務,從而獲得引用數(shù)據(jù)。在該技術方案中,大多數(shù)情況,可以通過簡單配置項、預置SQL語句或存儲過程來實現(xiàn),如果檢查邏輯很 復雜,難以用查詢語句、存儲過程來實現(xiàn),或者用戶存儲數(shù)據(jù)的介質為文件或者其他,這就需要通過服務的方式來實現(xiàn)。在上述技術方案中,優(yōu)選地,在實現(xiàn)查詢服務時,還包括預設檢查結果邏輯;展示每個檢查到的引用數(shù)據(jù)的檢查結果和/或總的檢查結果。在該技術方案中,檢查結果邏輯可以由用戶自定義,比如存在引用項為true,不存在為false,從而定義每個引用數(shù)據(jù)的檢查結果;可以定義若所有的均為true,則總結果為true,否則總結果為false。在上述技術方案中,優(yōu)選地,還包括展示檢查到的引用數(shù)據(jù)。在該技術方案中,通過對引用數(shù)據(jù)進行展示,使得結果更為直觀,便于進行進一步處理。在上述技術方案中,優(yōu)選地,還包括設置引用簡表,以自動獲取引用方和被引用方之間的引用關系。在該技術方案中,通過設置該引用簡表,可以對引用關系進行自動獲取。圖4示出了根據(jù)本發(fā)明的實施例的引用檢查系統(tǒng)的結構示意圖。如圖4所示,在根據(jù)本發(fā)明的實施例的引用檢查系統(tǒng)中,將檢查邏輯從系統(tǒng)中分離出來,成為獨立的模塊。可以通過SQL語句、存儲過程和服務來進行檢查。對于引用方,如果需要加約束限制,只需預置數(shù)據(jù)到檢查系統(tǒng),對于比較復雜的引用檢查,需要首先實現(xiàn)檢查服務提供的服務接口。對于被引用方,在進行數(shù)據(jù)修改或刪除時,只需調用該系統(tǒng)的檢查服務即可。整個檢查系統(tǒng),獨立于各個模塊之外。大多數(shù)情況,可以通過簡單配置項、預置SQL語句或存儲過程來實現(xiàn),從而減少了大量引用代碼的編寫,減輕了開發(fā)人員負擔,降低了成本,而且便于對引用進行控制和管理。對于比較復雜的引用檢查,還提供了服務接口,具有很強的適用性和擴展性。被引用方,在對數(shù)據(jù)進行修改、刪除操作時,只需調用檢查服務進行檢查即可,不用關心哪個模塊在引用,有多少個模塊引用,檢查系統(tǒng)會自動遍歷針對該類型數(shù)據(jù)的所有引用配置項。在本發(fā)明的技術方案中,分為多個步驟(一)首先需要對系統(tǒng)的數(shù)據(jù)結構進行設計,具體地,下面對該引用檢查系統(tǒng)的數(shù)據(jù)結構的一些結構和屬性進行介紹。I)引用簡表,如表I所示,可以自動根據(jù)外鍵抽取引用關系,以根據(jù)此表進行。此表預置的表信息包括哪些表需要檢查,哪些表需要排除,排除的表不記入引用檢查。當然,引用簡表在該系統(tǒng)中并不是必要的。
權利要求
1.一種引用檢查系統(tǒng),其特征在于,包括 數(shù)據(jù)生成單元,用于引用方生成對應于引用關系的引用查詢數(shù)據(jù); 數(shù)據(jù)存儲單元,用于所述引用方將所述引用查詢數(shù)據(jù)存儲至所述引用檢查系統(tǒng)預設的引用信息表中; 數(shù)據(jù)獲取單元,用于被引用方在進行引用檢查時,獲取所述引用信息表中存儲的所述引用查詢數(shù)據(jù); 處理單元,所述被引用方根據(jù)所述引用查詢數(shù)據(jù)獲得對應的引用數(shù)據(jù)。
2.根據(jù)權利要求I所述的引用檢查系統(tǒng),其特征在于, 所述數(shù)據(jù)生成單元生成的所述引用查詢數(shù)據(jù)包括配置數(shù)據(jù)、預置SQL語句或存儲過程; 所述處理單元用于根據(jù)所述配置數(shù)據(jù)生成并執(zhí)行對應的SQL語句、執(zhí)行所述預置SQL語句或執(zhí)行所述存儲過程,以獲得所述引用數(shù)據(jù)。
3.根據(jù)權利要求I所述的引用檢查系統(tǒng),其特征在于,所述數(shù)據(jù)生成單元生成的所述引用查詢數(shù)據(jù)包括服務組件; 所述處理單元用于根據(jù)所述引用檢查系統(tǒng)提供的接口建立對應的服務組件,以實現(xiàn)查詢服務,從而獲得所述引用數(shù)據(jù)。
4.根據(jù)權利要求I至3中任一項所述的引用檢查系統(tǒng),其特征在于,還包括 邏輯設置單元,用于預設檢查結果邏輯; 結果展示單元,用于展示每個檢查到的引用數(shù)據(jù)的檢查結果和/或總的檢查結果。
5.根據(jù)權利要求I至3中任一項所述的引用檢查系統(tǒng),其特征在于,還包括 關系獲取單元,用于通過設置引用簡表,以自動獲取所述引用方和所述被引用方之間的引用關系。
6.—種引用檢查方法,其特征在于,包括 步驟202,引用方生成對應于引用關系的引用查詢數(shù)據(jù),并存儲至預設的引用信息表中; 步驟204,被引用方在進行引用檢查時,獲取所述引用信息表中存儲的所述引用查詢數(shù)據(jù),利用所述引用查詢數(shù)據(jù)進行查詢操作以獲得對應的引用數(shù)據(jù)。
7.根據(jù)權利要求6所述的引用檢查方法,其特征在于, 所述引用查詢數(shù)據(jù)包括配置數(shù)據(jù)、預置SQL語句或存儲過程,在所述步驟204包括所述被引用方在進行引用檢查時,根據(jù)所述配置數(shù)據(jù)生成并執(zhí)行對應的SQL語句、執(zhí)行所述預置SQL語句或執(zhí)行所述存儲過程,以獲得所述引用數(shù)據(jù)。
8.根據(jù)權利要求6所述的引用檢查方法,其特征在于,所述引用查詢數(shù)據(jù)包括服務組件,則所述步驟204包括 所述被引用方在進行引用檢查時,根據(jù)預設的接口建立對應的服務組件,以實現(xiàn)對應的查詢服務,從而獲得所述引用數(shù)據(jù)。
9.根據(jù)權利要求6至8中任一項所述的引用檢查方法,其特征在于,在實現(xiàn)所述查詢服務時,還包括 預設檢查結果邏輯; 展示每個檢查到的引用數(shù)據(jù)的檢查結果和/或總的檢查結果。
10.根據(jù)權利要求6至8中任一項所述的引用檢查方法,其特征在于,還包括設置引用簡表,以自動獲取所述引用方和所述被引用方之間的引用關系。
全文摘要
本發(fā)明提供了一種引用檢查系統(tǒng),包括數(shù)據(jù)生成單元,用于引用方生成對應于引用關系的引用查詢數(shù)據(jù);數(shù)據(jù)存儲單元,用于所述引用方將所述引用查詢數(shù)據(jù)存儲至所述引用檢查系統(tǒng)預設的引用信息表中;數(shù)據(jù)獲取單元,用于被引用方在進行引用檢查時,獲取所述引用信息表中存儲的所述引用查詢數(shù)據(jù);處理單元,所述被引用方根據(jù)所述引用查詢數(shù)據(jù)獲得對應的引用數(shù)據(jù)。相應地,本發(fā)明還提出了一種引用檢查系方法。通過本發(fā)明的技術方案,可以降低引用方、被引用方等之間的耦合,并且既能滿足簡單的引用判斷,又能處理復雜的檢查邏輯。
文檔編號G06F11/36GK102779092SQ20121021838
公開日2012年11月14日 申請日期2012年6月27日 優(yōu)先權日2012年6月27日
發(fā)明者顏刊 申請人:用友軟件股份有限公司