專利名稱:單據(jù)額度控制方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種單據(jù)額度控制方法和裝置。
技術(shù)背景
單據(jù)額度控制是指在單據(jù)的狀態(tài)發(fā)生改變之前,對單據(jù)上的一些項目進行檢查, 只有在滿足一定的要求時,才會允許該改變,常見的如單據(jù)審核時控制商品折扣不能低于 某個折扣。
一般的單據(jù)額度控制方法常常是對單據(jù)上的某一個具體字段進行控制,如數(shù)量、 單價、金額等,這種方式是直接以單據(jù)上的字段作為檢查項或者數(shù)據(jù)項和一個目標值進行 比較,然后得出是否超額的判斷。
在一般的單據(jù)額度控制方法,一般具備以下幾個要素
1.比較操作符包含大于、小于、等于;
2.比較項位于操作符左側(cè),一般為單據(jù)實體對象上的某一項,或者是和當前單 據(jù)實體對象有關(guān)的動態(tài)數(shù)據(jù);
3.目標值或者數(shù)據(jù)項位于操作符右側(cè),一般為一個具體的數(shù)值,也可以是個數(shù) 值公式。
比較操作符、比較項、目標值或者數(shù)據(jù)項三者之間的關(guān)系如圖1所示。
根據(jù)圖1的一個示例,對一般的單據(jù)額度控制方法的描述舉例如下
1.控制單據(jù)總金額小于[1000元
2.控制零售單價大于商品價格*88折
3.控制客戶信用余額大于0
根據(jù)以上示例,定義若干個元數(shù)據(jù)用來描述以上信息
1. MetaDatal 描述要控制的單據(jù)字段,引用單據(jù)實體對應的物理表和字段名;
2. MetaData2 描述比較操作符,不同的單據(jù)的比較操作符有可能也會不同;
3. MetaData3 描述數(shù)據(jù)項,可以為數(shù)值或者數(shù)值公式。
通過這些元數(shù)據(jù)描述,可以實現(xiàn)一個一般的單據(jù)額度控制方法,可以入圖2所示。
根據(jù)圖2,可以首先從單據(jù)中取出MetaDatal中定義的字段的值作為比較項,再取 出MetaDatU中定義的值或者公式進行運算得到目標值,通過MetaDatd中定義的比較操 作符將比較項和目標值進行比較,得到最終結(jié)果為檢查通過或者不通過。
該方法的關(guān)鍵在于MetaDatal的定義是指向單據(jù)實體,而問題在于,MetaDatal元 數(shù)據(jù)中定義的數(shù)據(jù)字段來源于單據(jù)實體,所以單據(jù)額度檢查時也只能檢索單據(jù)實體中 的字段和數(shù)據(jù),也就是說單據(jù)額度檢查直接依賴于單據(jù)實體,存在的缺陷主要有
1.單據(jù)實體的字段屬性相對比較固定,是描述單據(jù)的信息的集合,不便于擴充, 如果單據(jù)額度檢查需要用到其它的項目,則沒有很好的辦法解決,除非擴充單據(jù)實體中 的字段屬性;
2.單據(jù)上的數(shù)據(jù)未經(jīng)過進一步加工,一般很難滿足稍微復雜一點的單據(jù)額度檢查要求;
3.單據(jù)額度檢查的程序設計和開發(fā)人員,會經(jīng)常因為一些特殊的邏輯去修改算 法,導致該算法不穩(wěn)定,每次修改都要進行大量測試;
4.業(yè)務單據(jù)開發(fā)員,在單據(jù)實體上增加為了進行單據(jù)額度檢查要求的字段后, 有可能需要修改單據(jù)的邏輯。
基于上述方法,如果要實現(xiàn)對動態(tài)數(shù)據(jù)如客戶信用余額的控制,一般做法為首先 要在單據(jù)實體對象上增加一列,為客戶信用余額,其次在單據(jù)保存或者審核時即時計算信 用余額的值并將其存放到單據(jù)實體對象的信用余額字段??梢姡绻黾右粋€對動態(tài)數(shù)據(jù) 的控制,會增加相當?shù)膹碗s度,而且至少要修改單據(jù)實體對象,帶來了一定的不穩(wěn)定性。
因此,需要一種新的單據(jù)額度控制方式,能夠靈活地對動態(tài)數(shù)據(jù)進行額度控制控 制,且不需要對單據(jù)進行改動。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種新的單據(jù)額度控制方式,能夠靈活地 對動態(tài)數(shù)據(jù)進行額度控制控制,且不需要對單據(jù)進行改動。
有鑒于此,本發(fā)明提供一種單據(jù)額度控制方法,包括步驟302,根據(jù)預定義的規(guī) 則,從單據(jù)中提取中間數(shù)據(jù);步驟304,根據(jù)中間數(shù)據(jù),獲取額度控制要求中的比較項的數(shù) 值;步驟306,根據(jù)額度控制要求中的比較條件,將比較項的數(shù)值與額度控制要求中的數(shù)據(jù) 項的數(shù)值進行比較,以確定單據(jù)是否超出了預定的額度。在該技術(shù)方案中,對單據(jù)處理得到 中間數(shù)據(jù),再在中間數(shù)據(jù)中查找出比較項的數(shù)值,可以不需要對單據(jù)本身進行改動,只需根 據(jù)單據(jù)類型靈活制定規(guī)則即可。
在上述技術(shù)方案中,優(yōu)選地,在步驟302中,還將中間數(shù)據(jù)存儲在中間表中。
在上述技術(shù)方案中,優(yōu)選地,中間表中具有唯一標識碼。
在上述技術(shù)方案中,優(yōu)選地,在步驟304中,還根據(jù)額度控制要求和中間數(shù)據(jù)獲取 數(shù)據(jù)項的數(shù)值。
在上述技術(shù)方案中,優(yōu)選地,規(guī)則根據(jù)單據(jù)的類型進行預定義。
本發(fā)明還提供一種單據(jù)額度控制裝置,包括數(shù)據(jù)準備模塊,根據(jù)預定義的規(guī)則, 從單據(jù)中提取中間數(shù)據(jù);數(shù)據(jù)獲取模塊,根據(jù)中間數(shù)據(jù),獲取額度控制要求中的比較項的數(shù) 值;額度控制模塊,根據(jù)額度控制要求中的比較條件,將比較項的數(shù)值與額度控制要求中的 數(shù)據(jù)項的數(shù)值進行比較,以確定單據(jù)是否超出了額度控制。在該技術(shù)方案中,對單據(jù)處理得 到中間數(shù)據(jù),再在中間數(shù)據(jù)中查找出比較項的數(shù)值,可以不需要對單據(jù)本身進行改動,只需 根據(jù)單據(jù)類型靈活制定規(guī)則即可。
在上述技術(shù)方案中,優(yōu)選地,數(shù)據(jù)準備模塊將中間數(shù)據(jù)存儲在中間表中。
在上述技術(shù)方案中,優(yōu)選地,中間表中具有唯一標識碼。
在上述技術(shù)方案中,優(yōu)選地,數(shù)據(jù)獲取模塊根據(jù)額度控制要求和中間數(shù)據(jù)獲取數(shù) 據(jù)項的數(shù)值。
在上述技術(shù)方案中,優(yōu)選地,還包括規(guī)則定義模塊,根據(jù)單據(jù)的類型預定義規(guī)則。
根據(jù)上述技術(shù)方案,可以實現(xiàn)一種單據(jù)額度控制方法和裝置,可以在不需要對單 據(jù)本身進行改動的前提下,通過靈活地提取中間數(shù)據(jù),來實現(xiàn)對動態(tài)數(shù)據(jù)的額度控制。
圖1是額度控制方法中的比較項、比較操作符、數(shù)據(jù)項之間的關(guān)系示意圖。
圖2是一般的額度控制方法的原理示意圖3是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制方法的流程圖4是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制裝置的框圖5是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制裝置的原理示意圖6是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制裝置的數(shù)據(jù)準備模塊的工作示 意圖;圖7是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制裝置的數(shù)據(jù)獲取模塊從額度檢查中 間表中取得所需數(shù)據(jù)的示意圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實 施方式對本發(fā)明進行進一步的詳細描述。
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實 施例的限制。
圖1是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制方法的流程圖。
如圖1所示,本發(fā)明提供一種單據(jù)額度控制方法,包括步驟302,根據(jù)預定義的規(guī) 則,從單據(jù)中提取中間數(shù)據(jù);步驟304,根據(jù)中間數(shù)據(jù),獲取額度控制要求中的比較項的數(shù) 值;步驟306,根據(jù)額度控制要求中的比較條件,將比較項的數(shù)值與額度控制要求中的數(shù)據(jù) 項的數(shù)值進行比較,以確定單據(jù)是否超出了預定的額度。在該技術(shù)方案中,對單據(jù)處理得到 中間數(shù)據(jù),再在中間數(shù)據(jù)中查找出比較項的數(shù)值,可以不需要對單據(jù)本身進行改動,只需根 據(jù)單據(jù)類型靈活制定規(guī)則即可。
在上述技術(shù)方案中,在步驟302中,還將中間數(shù)據(jù)存儲在中間表中。
在上述技術(shù)方案中,中間表中具有唯一標識碼。
在上述技術(shù)方案中,在步驟304中,還根據(jù)額度控制要求和中間數(shù)據(jù)獲取數(shù)據(jù)項 的數(shù)值。
在上述技術(shù)方案中,規(guī)則根據(jù)單據(jù)的類型進行預定義。
圖2是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制裝置的框如圖2所示,本發(fā)明還提供一種單據(jù)額度控制裝置400,包括數(shù)據(jù)準備模塊402, 根據(jù)預定義的規(guī)則,從單據(jù)中提取中間數(shù)據(jù);數(shù)據(jù)獲取模塊404,根據(jù)中間數(shù)據(jù),獲取額度 控制要求中的比較項的數(shù)值;額度控制模塊406,根據(jù)額度控制要求中的比較條件,將比較 項的數(shù)值與額度控制要求中的數(shù)據(jù)項的數(shù)值進行比較,以確定單據(jù)是否超出了額度控制。 在該技術(shù)方案中,對單據(jù)處理得到中間數(shù)據(jù),再在中間數(shù)據(jù)中查找出比較項的數(shù)值,可以不 需要對單據(jù)本身進行改動,只需根據(jù)單據(jù)類型靈活制定規(guī)則即可。
在上述技術(shù)方案中,數(shù)據(jù)準備模塊402將中間數(shù)據(jù)存儲在中間表中。
在上述技術(shù)方案中,中間表中具有唯一標識碼。
在上述技術(shù)方案中,數(shù)據(jù)獲取模塊404根據(jù)額度控制要求和中間數(shù)據(jù)獲取數(shù)據(jù)項的數(shù)值。
在上述技術(shù)方案中,還包括規(guī)則定義模塊408,根據(jù)單據(jù)的類型預定義規(guī)則。
圖5是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制裝置的原理示意圖。
如圖5所示,相對于一般的單據(jù)額度控制技術(shù)方案,本實施例中,添加了步驟502, 進行數(shù)據(jù)準備,即按照一定規(guī)則從單據(jù)實體中提取中間數(shù)據(jù),以及步驟504,在中間數(shù)據(jù)中 找到對應MetaDatal (比較項)、MetaData3 (數(shù)據(jù)項)的對應數(shù)據(jù),以根據(jù)MetaData2 (比較 操作符)進行比較來實現(xiàn)額度控制。
圖6是根據(jù)本發(fā)明的一個實施例的單據(jù)額度控制裝置的數(shù)據(jù)準備模塊的工作示 意圖。
如圖6所示,數(shù)據(jù)準備模塊402引用單據(jù)實體對象,針對不同的單據(jù)類型,通過調(diào) 用相應的方法(包括COM+組件方法、多種存儲過程)通過映射,將單據(jù)實體上的信息或經(jīng) 過計算的信息存儲到額度檢查中間表,還可以由開發(fā)人員為不同的單據(jù)類型的單據(jù)定制不 同的數(shù)據(jù)準備模塊402,一般來說,一種類型的單據(jù)實體會對應一個數(shù)據(jù)準備模塊402。
額度檢查中間表為供數(shù)據(jù)準備模塊402存儲中間數(shù)據(jù)的存儲裝置,目的是供數(shù)據(jù) 獲取模塊404使用,該表設計為與業(yè)務無關(guān),具體字段設計如下
a) ID:主鍵字段;
b)Iteml-4 存儲和計算相關(guān)的文本字段,主要用于條件判斷;
c)BigIteml-4 存儲和計算相關(guān)的長文本字段,主要用于條件判斷;
d) Exprl-10 存儲和計算相關(guān)的數(shù)值字段;
e)Resultl 存儲上限目標值或者數(shù)值公式計算的結(jié)果;
f)Result2 存儲下限目標值或者數(shù)值公式計算的結(jié)果;
gKoncurrentID:唯一標識本次額度檢查的操作,用于區(qū)別同時并發(fā)的其他額度 檢查操作。
數(shù)據(jù)獲取模塊404從該額度檢查中間表中取得所需的數(shù)據(jù),如圖7所示。對于 MetaDatal元數(shù)據(jù)該元數(shù)據(jù)描述比較項,數(shù)據(jù)獲取模塊404引用額度檢查中間表字段,并 使其具備業(yè)務含義。如“單價”對應額度檢查中間表的“Exprl”字段;對于MetaDatU元數(shù) 據(jù)該元數(shù)據(jù)描述數(shù)據(jù)項字段,用于計算公式的定義,同樣也會引用額度檢查中間表字段。 如想判斷單據(jù)明細商品的折扣價不能小于零售價格的88折,此處可以定義“零售價格”,對 應額度檢查中間表的“Expr2”字段;還可以描述其他非數(shù)值型項目,用于進行邏輯條件的 判斷等。數(shù)據(jù)獲取模塊404分別取得比較項以及數(shù)據(jù)項的值(可能包括上限和下限),由額 度控制模塊406比較兩者的值,最后得出結(jié)論。
根據(jù)以上技術(shù)方案,可以實現(xiàn)一種單據(jù)額度控制方法和裝置,其優(yōu)點在于,通過額 度檢查中間表以及數(shù)據(jù)準備操作,即取得中間數(shù)據(jù),切斷了業(yè)務單據(jù)實體和MetaDatal的 直接依賴關(guān)系,使得MetaDatal、MetaData2、MetaData3、額度檢查中間表以及單據(jù)額度檢查 方法自成一個封閉的、與業(yè)務無關(guān)的、自描述的一個系統(tǒng),主要取得了以下幾個效果
1.單據(jù)額度檢查過程穩(wěn)定,不依賴于外界對象(單據(jù)實體對象、數(shù)據(jù)準備裝置), 額度檢查的具體算法設計完成后無需經(jīng)常變動;
2.業(yè)務單據(jù)實體不再和額度檢查算法相關(guān),不用添加和額度檢查算法相關(guān)的字 段,業(yè)務邏輯上也不用再去維護這些字段,所以自身也相對比較穩(wěn)定;
3.數(shù)據(jù)準備操作可以按需要增減,而無需影響單據(jù)額度檢查的具體算法和業(yè)務單 據(jù)實體;
4.減少開發(fā)工作量。通過本發(fā)明的技術(shù)方案,實現(xiàn)對動態(tài)數(shù)據(jù)的額度控制與對單 據(jù)實體對象自身的屬性數(shù)據(jù)的額度控制具有相同的算法復雜度。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種單據(jù)額度控制方法,其特征在于,包括步驟302,根據(jù)預定義的規(guī)則,從單據(jù)中提取中間數(shù)據(jù);步驟304,根據(jù)所述中間數(shù)據(jù),獲取額度控制要求中的比較項的數(shù)值;步驟306,根據(jù)所述額度控制要求中的比較條件,將所述比較項的數(shù)值與所述額度控制 要求中的數(shù)據(jù)項的數(shù)值進行比較,以確定所述單據(jù)是否超出了預定的額度。
2.根據(jù)權(quán)利要求1所述的單據(jù)額度控制方法,其特征在于,在所述步驟302中,還將所 述中間數(shù)據(jù)存儲在中間表中。
3.根據(jù)權(quán)利要求2所述的單據(jù)額度控制方法,其特征在于,所述中間表中具有唯一標 識碼。
4.根據(jù)權(quán)利要求1所述的單據(jù)額度控制方法,其特征在于,在所述步驟304中,還根據(jù) 所述額度控制要求和所述中間數(shù)據(jù)獲取所述數(shù)據(jù)項的數(shù)值。
5.根據(jù)權(quán)利要求1至4中任一項所述的單據(jù)額度控制方法,其特征在于,所述規(guī)則根據(jù) 所述單據(jù)的類型進行預定義。
6.一種單據(jù)額度控制裝置,其特征在于,包括數(shù)據(jù)準備模塊,根據(jù)預定義的規(guī)則,從單據(jù)中提取中間數(shù)據(jù);數(shù)據(jù)獲取模塊,根據(jù)所述中間數(shù)據(jù),獲取額度控制要求中的比較項的數(shù)值;額度控制模塊,根據(jù)額度控制要求中的比較條件,將所述比較項的數(shù)值與所述額度控 制要求中的數(shù)據(jù)項的數(shù)值進行比較,以確定所述單據(jù)是否超出了額度控制。
7.根據(jù)權(quán)利要求6所述的單據(jù)額度控制裝置,其特征在于,所述數(shù)據(jù)準備模塊將所述 中間數(shù)據(jù)存儲在中間表中。
8.根據(jù)權(quán)利要求7所述的單據(jù)額度控制裝置,其特征在于,所述中間表中具有唯一標 識碼。
9.根據(jù)權(quán)利要求6所述的單據(jù)額度控制裝置,其特征在于,所述數(shù)據(jù)獲取模塊根據(jù)所 述額度控制要求和所述中間數(shù)據(jù)獲取所述數(shù)據(jù)項的數(shù)值。
10.根據(jù)權(quán)利要求6至9中任一項所述的單據(jù)額度控制裝置,其特征在于,還包括規(guī)則定義模塊,根據(jù)所述單據(jù)的類型預定義所述規(guī)則。
全文摘要
本發(fā)明提供一種單據(jù)額度控制方法,包括步驟302,根據(jù)預定義的規(guī)則,從單據(jù)中提取中間數(shù)據(jù);步驟304,根據(jù)中間數(shù)據(jù),獲取額度控制要求中的比較項的數(shù)值;步驟306,根據(jù)額度控制要求中的比較條件,將比較項的數(shù)值與額度控制要求中的數(shù)據(jù)項的數(shù)值進行比較,以確定單據(jù)是否超出了預定的額度。本發(fā)明還提供一種單據(jù)額度控制裝置。根據(jù)本發(fā)明可以不需要對單據(jù)本身進行改動,即可對單據(jù)的動態(tài)數(shù)據(jù)進行額度控制。
文檔編號G06F17/30GK102043860SQ20101060850
公開日2011年5月4日 申請日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者奚衛(wèi)平 申請人:用友軟件股份有限公司