批量處理的最優(yōu)值計算裝置和方法
【專利說明】批量處理的最優(yōu)值計算裝置和方法
[0001]
技術領域
[0002]本發(fā)明涉及數(shù)據(jù)處理領域,具體地,涉及一種批量處理的最優(yōu)值計算裝置和方法。
【背景技術】
[0003]目前,在大型企業(yè)的ERP系統(tǒng)中,經(jīng)常可以見到基于優(yōu)先關系順序的最優(yōu)值計算的需求,在計算對象數(shù)據(jù)量龐大,且取值來源很多的情況下,最優(yōu)值的計算面臨性能上的嚴峻考驗。
[0004]以ERP系統(tǒng)中的物料價格庫為例,在其中維護了用于某種用途的一組物料的價格,這些價格來源于不同的外部系統(tǒng),如來源于采購系統(tǒng)的最新采購價、最近三筆采購訂單的平均單價,來源于存貨核算系統(tǒng)的最新結存價、加權平均價,來源于財務系統(tǒng)的計劃價、參考成本價,來源于成本系統(tǒng)的卷積成本等。在使用時,企業(yè)可以依據(jù)不同的用途對這些價格來源進行優(yōu)先級的排序,并依次按照順序進行取價,一旦高優(yōu)先級的價格來源取到價后,就不再向下計算。如在為產(chǎn)品定價提供依據(jù)的價格庫中設置時,價格來源依次為最近三筆采購訂單的平均單價、最新采購價、加權平均價、計劃價,取價時按照這個順序進行計算。同時,不同物料的價格來源的優(yōu)先級順序也是不同的,價格庫中種類繁多的物料與各自的價格來源的優(yōu)先級設置構成了一組繁雜無序的數(shù)據(jù)集合。
[0005]根據(jù)以上實例,可以總結出這類求最優(yōu)值問題的特征:
1、最優(yōu)值的求解基于預設的取值順序;
2、不同計算對象的預設順序不同;
3、計算對象的數(shù)據(jù)量龐大,取值來源數(shù)量多;
4、需要依賴外部系統(tǒng)接口進行取值計算。
[0006]對于計算對象的數(shù)據(jù)量龐大,每一個計算對象又設置了帶有優(yōu)先級關系的取值來源,在一次性批量按優(yōu)先級做取值時,現(xiàn)有按優(yōu)先級順序方式取值會導致計算對象的取值來源在不同的優(yōu)先級分組中存在多次重復,產(chǎn)生多次重復調用計算邏輯或外部接口問題,大量調用計算邏輯或接口產(chǎn)生性能問題,且無法收集未取到值得原因。
【發(fā)明內容】
[0007]本發(fā)明的目的在于,針對上述問題,提出一種批量處理的最優(yōu)值計算裝置和方法,以實現(xiàn)提尚計算效率的優(yōu)點。
[0008]為實現(xiàn)上述目的,本發(fā)明采用的技術方案是:
一種批量處理的最優(yōu)值計算裝置,包括取值來源分組處理單元、取值來源計算單元、優(yōu)先級處理單元和記錄錯誤信息單元;
所述取值來源分組處理單元:負責將輸入的帶有優(yōu)先級的計算對象按取值來源分組成多個帶有優(yōu)先級的計算單元組; 所述取值來源計算單元:構建上述多個帶有優(yōu)先級的計算單元組取值來源順序;所述優(yōu)先級處理單元:根據(jù)上述構建的取值來源順序構建一個優(yōu)先級緩存用來存儲計算對象、優(yōu)先級和計算結果值;
所述記錄錯誤信息單元:將未取到計算結果的計算對象收集起來,存儲到數(shù)據(jù)庫中,便于用戶查找計算對象獲取不到計算結果的原因。
[0009]優(yōu)選的,所述構建來源順序的原則為:將取值來源對應算法執(zhí)行效率高的取值來源放置在前。
[0010]優(yōu)選的,所述取值來源計算單元構建來源順序具體為:
循環(huán)取值來源取出每組待計算的計算對象,通過取值來源在取值來源與計算接口映射關系中找到具體接口,調用接口計算出帶有優(yōu)先級關系的計算結果。
[0011]優(yōu)選的,所述取值來源計算單元中,對于未取到值的或計算結果為null的計算對象,則將未取到值原因與解決方案記錄到記錄錯誤信息單元。
[0012]優(yōu)選的,所述優(yōu)先級處理單元構建優(yōu)先級緩存具體為:
循環(huán)取值來源計算出的計算結果,與當前計算對象的計算結果對比優(yōu)先級,如果優(yōu)先級高則替換掉優(yōu)先級緩存中的計算結果,優(yōu)先級低則不處理,如果當前計算對象的值為null則跳過當前計算對象。
[0013]同時本發(fā)明技術方案公開一種批量處理的最優(yōu)值計算方法,包括:
輸入帶優(yōu)先級的計算對象的步驟;
遍歷輸入數(shù)據(jù)按取值來源進行分組的步驟;
按指定的取值來源順序對已經(jīng)分組的計算對象做取值計算,得到計算對象的優(yōu)先級及計算結果的步驟;
根據(jù)得到的計算結果對計算對象做優(yōu)先級比對處理,并對未取到值的計算對象記錄錯誤信息的步驟。
[0014]優(yōu)選的,所述按指定的取值來源順序對已經(jīng)分組的計算對象做取值計算,得到計算對象的優(yōu)先級及計算結果的步驟,具體為:
循環(huán)取值來源取出每組待計算的計算對象,通過取值來源在取值來源與計算接口映射關系中找到具體接口,調用接口計算出帶有優(yōu)先級關系的計算結果。
[0015]優(yōu)選的,所述根據(jù)得到的計算結果對計算對象做優(yōu)先級比對處理的步驟,具體為:
循環(huán)計算出的計算結果,與當前計算對象的計算結果對比優(yōu)先級,如果優(yōu)先級高則替換掉優(yōu)先級緩存中的計算結果,優(yōu)先級低則不處理,如果當前計算對象的值為null則跳過當前計算對象。
[0016]本發(fā)明的技術方案具有以下有益效果:
本發(fā)明的技術方案,可以有效降低調用復雜算法或遠程調用次數(shù),從而可以大幅提高計算效率。此外,本發(fā)明技術方案在計算過程中還應該具備良好的交互能力,讓外部了解到計算過程中的細節(jié),比如:取值失敗的原因等。
[0017]下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
【附圖說明】
[0018]圖1為本發(fā)明實施例所述的批量處理的最優(yōu)值計算裝置的原理框圖;
圖2為本發(fā)明實施例所述的批量處理的最優(yōu)值計算方法的流程圖;
圖3為本發(fā)明實施例所述的取值來源分組處理單元處理數(shù)據(jù)的示意圖;
圖4為本發(fā)明實施例所述的取值來源計算單元處理數(shù)據(jù)的示意圖;
圖5為本發(fā)明實施例所述的優(yōu)先級處理單元處理數(shù)據(jù)的示意圖;
圖6為本發(fā)明實施例所述的記錄錯誤信息單元記錄數(shù)據(jù)的示意圖。
【具體實施方式】
[0019]以下結合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]如圖1所示,一種批量處理的最優(yōu)值計算裝置,包括取值來源分組處理單元、取值來源計算單元、優(yōu)先級處理單元和記錄錯誤信息單元;
取值來源分組處理單元:此單元負責把輸入的帶有優(yōu)先級的計算對象按取值來源進行分組成為帶有優(yōu)先級的計算單元組。如圖3所示。
[0021]取值來源計算單元:構建取值來源順序,