本發(fā)明涉及一種計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體地說(shuō)是一種通過(guò)配置沖突矩陣解決管理軟件內(nèi)部功能操作沖突的方法。
背景技術(shù):
在管理軟件中,往往不同的功能之間,或者同一個(gè)功能的不同操作之間會(huì)有一定的約束沖突關(guān)系,比如財(cái)務(wù)月結(jié)和憑證制單,如果系統(tǒng)正在進(jìn)行某個(gè)月份的月結(jié),而此時(shí)另外一個(gè)用戶登錄系統(tǒng)并制作了一張?jiān)陆Y(jié)月份的憑證;再比如一個(gè)操作員正在修改一個(gè)單據(jù)編號(hào)為001的報(bào)銷單,而此時(shí)另一個(gè)操作員登錄系統(tǒng)并審批通過(guò)這張編號(hào)為001的報(bào)銷單,這樣可能的結(jié)果是審批人看到的報(bào)銷金額和修改后的有出入,本來(lái)不能通過(guò)審批的報(bào)銷通過(guò)了或者本來(lái)能夠報(bào)銷的單據(jù)被否決,等等這些都會(huì)導(dǎo)致系統(tǒng)最后數(shù)據(jù)計(jì)算結(jié)果有差異或者是業(yè)務(wù)邏輯控制不嚴(yán)密而產(chǎn)生業(yè)務(wù)錯(cuò)誤。為了控制這些,很多軟件都是依賴于數(shù)據(jù)庫(kù)自身的數(shù)據(jù)鎖機(jī)制進(jìn)行控制,但是通過(guò)這種方式有兩個(gè)比較嚴(yán)重的弊端,其一是有時(shí)一個(gè)操作可能需要鎖多個(gè)表和數(shù)據(jù),不但加鎖麻煩而且有些數(shù)據(jù)表是一表多用,會(huì)限制其它業(yè)務(wù)單據(jù)無(wú)法進(jìn)行一些操作;其二是當(dāng)發(fā)生沖突時(shí)提示不友好,可能是直接來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)鎖信息,比如上面的第二個(gè)報(bào)銷單審批的例子,通過(guò)本技術(shù)方案的處理,第二個(gè)操作員進(jìn)入審批時(shí)就可以提示類似這樣的信息:“XX正在進(jìn)行修改當(dāng)前單據(jù),現(xiàn)在您只能查看而不能審批本張單據(jù)”,這樣在避免差錯(cuò)的同時(shí),提示友好易懂。正是基于以上原因,我們提出了該項(xiàng)通過(guò)沖突矩陣的方式解決此類問(wèn)題的技術(shù)方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種通過(guò)配置沖突矩陣解決管理軟件內(nèi)部功能操作沖突的方法。
本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,包括下列步驟和內(nèi)容:
A、將軟件單個(gè)功能的各類操作或者不同功能之間以二維矩陣的方式存儲(chǔ)其對(duì)照約束關(guān)系;其中:
單個(gè)功能是指管理軟件中包含的軟件功能基本單元,包括入庫(kù)單,出庫(kù)單,庫(kù)存單據(jù)記賬;操作是指對(duì)于單個(gè)功能用戶進(jìn)行的操作行為,包括單據(jù)新增,刪除,修改;
二維矩陣的方式存儲(chǔ)其對(duì)照約束關(guān)系包括以下內(nèi)容:
(1)以二維矩陣的方式描述沖突對(duì)應(yīng)關(guān)系,其中關(guān)系對(duì)象包括功能之間,包括庫(kù)存記賬,入庫(kù)單制單;以及相同功能的不同操作之間,包括入庫(kù)單的修改功能和參照采購(gòu)到貨單功能;
(2)二維矩陣中記錄沖突類型,包括獨(dú)立運(yùn)行,功能沖突,數(shù)據(jù)沖突;
(3)二維矩陣中記錄檢查到有沖突功能存在時(shí)的提示信息并且提示信息中包換值變量供運(yùn)行期根據(jù)實(shí)際值進(jìn)行替換;
(4)二維矩陣中記錄沖突發(fā)生的條件公式,在運(yùn)行期解析引擎解析條件公式并判斷是否產(chǎn)生實(shí)際沖突;
B、在軟件運(yùn)行期間根據(jù)需要配置步驟A中所描述的約束關(guān)系;包括以下內(nèi)容:
(1)軟件在運(yùn)行期根據(jù)需要調(diào)整沖突矩陣中的任何內(nèi)容;
(2)沖突矩陣中的內(nèi)容被調(diào)整后,能夠自動(dòng)根據(jù)當(dāng)前運(yùn)行的客戶端及其功能和操作進(jìn)行自動(dòng)同步,使調(diào)整既能立即生效同時(shí)又不影響正在運(yùn)行的程序;
C、對(duì)于在存在約束關(guān)系的操作或者功能,在程序運(yùn)行時(shí)能夠根據(jù)沖突矩陣自動(dòng)檢查并根據(jù)沖突類型有效處理來(lái)自其他登錄用戶的操作或者功能產(chǎn)生的沖突;包括以下內(nèi)容:
(1)系統(tǒng)中存在沖突功能和操作的運(yùn)行記錄表;
(2)在沖突矩陣中存在的功能或者功能操作在執(zhí)行時(shí)結(jié)合沖突條件檢查運(yùn)行記錄表中是否有沖突功能或者沖突數(shù)據(jù)存在;
(3)沖突的提示信息根據(jù)沖突矩陣中獲取,并對(duì)其中的值變量進(jìn)行替換后提醒操作者;
(4)支持同一個(gè)操作員ID同時(shí)從不同的客戶端登錄,沖突記錄ID中包含登錄用戶名以及登錄電腦的IP信息。
D、設(shè)置一個(gè)沖突矩陣配置表,其結(jié)構(gòu)如下所示:
1)在運(yùn)行期,存在于沖突矩陣中的功能在執(zhí)行時(shí),需要利用沖突功能運(yùn)行記錄表進(jìn)行沖突功能記錄,其結(jié)構(gòu)如下所示:
2)矩陣配置功能的實(shí)現(xiàn),通過(guò)圖形界面的方式提供各個(gè)功能及功能操作的配置關(guān)系的查看,修改,保存以及生效功能;
3)運(yùn)行期的檢查注冊(cè)功能如下:
沖突注冊(cè):用于向沖突功能運(yùn)行記錄表中注冊(cè)正準(zhǔn)備運(yùn)行的功能或者正準(zhǔn)備進(jìn)行的操作,在正式注冊(cè)前需要調(diào)用沖突檢查功能,先檢查是否有沖突功能存在;
取消沖突注冊(cè):刪除指定的沖突項(xiàng)目在沖突功能運(yùn)行記錄表中的記錄,一般在一個(gè)沖突功能操作完成后進(jìn)行,包括庫(kù)存入庫(kù)單已經(jīng)保存,這時(shí)需要清除這張單據(jù)的修改沖突注冊(cè);
清除沖突注冊(cè):清除某個(gè)用戶下的某個(gè)功能或者全部沖突項(xiàng)目的注冊(cè),包括當(dāng)用戶退出系統(tǒng)時(shí),需要清除所有該用戶下的沖突記錄;
沖突檢查:檢查指定的沖突項(xiàng)目是否存在,包括打開(kāi)一個(gè)出庫(kù)單,點(diǎn)擊“修改”,在進(jìn)行沖突注冊(cè)前,根據(jù)沖突功能運(yùn)行記錄表中的記錄檢查是否存在沖突功能;
4)異常沖突注冊(cè)清除,有時(shí)由于其它異常原因,包括突然斷電導(dǎo)致沖突功能運(yùn)行記錄表中存在的注冊(cè)記錄未被清除,這些記錄繼續(xù)留著會(huì)影響后續(xù)的一些功能操作,這時(shí)通過(guò)這個(gè)功能進(jìn)行定點(diǎn)清除。
本發(fā)明的優(yōu)異效果:幫助操作員如何通過(guò)沖突矩陣有效解決管理軟件中的不同功能之間或者同種功能的不同操作之間由于業(yè)務(wù)原因而產(chǎn)生的沖突,從而避免由于沖突而導(dǎo)致功能或者操作之間的相互干擾而引起的數(shù)據(jù)不一致,計(jì)算結(jié)果有差異等情況的發(fā)生,使管理軟件自身的業(yè)務(wù)嚴(yán)密,數(shù)據(jù)準(zhǔn)確。
具體實(shí)施方式
實(shí)施例:
1、首先設(shè)置一個(gè)沖突矩陣配置表,其結(jié)構(gòu)如下所示:
從上面的表格中,可以看出沖突矩陣的配置項(xiàng)目。
2、在運(yùn)行期,存在于沖突矩陣中的功能在執(zhí)行時(shí),需要利用沖突功能運(yùn)行記錄表進(jìn)行沖突功能記錄,其結(jié)構(gòu)如下所示:
3、矩陣配置功能的實(shí)現(xiàn)。通過(guò)圖形界面的方式提供各個(gè)功能及功能操作的配置關(guān)系的查看,修改,保存以及生效功能。
4、運(yùn)行期的檢查注冊(cè)功能主要如下:
沖突注冊(cè):用于向沖突功能運(yùn)行記錄表中注冊(cè)正準(zhǔn)備運(yùn)行的功能或者正準(zhǔn)備進(jìn)行的操作,在正式注冊(cè)前需要調(diào)用沖突檢查功能,先檢查是否有沖突功能存在。
取消沖突注冊(cè):刪除指定的沖突項(xiàng)目在沖突功能運(yùn)行記錄表中的記錄。般在一個(gè)沖突功能操作完成后進(jìn)行,比如庫(kù)存入庫(kù)單已經(jīng)保存,這時(shí)需要清除這張單據(jù)的修改沖突注冊(cè)。
清除沖突注冊(cè):清除某個(gè)用戶下的某個(gè)功能或者全部沖突項(xiàng)目的注冊(cè)。比如當(dāng)用戶退出系統(tǒng)時(shí),需要清除所有該用戶下的沖突記錄。
沖突檢查:檢查指定的沖突項(xiàng)目是否存在。比如打開(kāi)一個(gè)出庫(kù)單,點(diǎn)擊“修改”,在進(jìn)行沖突注冊(cè)前,根據(jù)沖突功能運(yùn)行記錄表中的記錄檢查是否存在沖突功能。
5、異常沖突注冊(cè)清除。有時(shí)由于其它異常原因,比如突然斷電等,導(dǎo)致沖突功能運(yùn)行記錄表中存在的注冊(cè)記錄未被清除,這些記錄繼續(xù)留著會(huì)影響后續(xù)的一些功能操作,這時(shí)可以通過(guò)這個(gè)功能進(jìn)行定點(diǎn)清除。