[摘 要]會(huì)計(jì)信息系統(tǒng)利用動(dòng)態(tài)會(huì)計(jì)平臺(tái)來(lái)實(shí)現(xiàn)記賬憑證的自動(dòng)生成,以實(shí)現(xiàn)財(cái)務(wù)業(yè)務(wù)一體化的目標(biāo)。本文將ECA規(guī)則引入到動(dòng)態(tài)會(huì)計(jì)平臺(tái)的構(gòu)建中,探討了ECA規(guī)則在動(dòng)態(tài)會(huì)計(jì)平臺(tái)中的應(yīng)用,建立了基于ECA規(guī)則的動(dòng)態(tài)會(huì)計(jì)平臺(tái)的模型;分析了ECA規(guī)則表示賬務(wù)處理規(guī)則的方法,并結(jié)合存貨入庫(kù)賬務(wù)處理的實(shí)例說(shuō)明其實(shí)現(xiàn)的過(guò)程。
[關(guān)鍵詞]ECA規(guī)則;動(dòng)態(tài)會(huì)計(jì)平臺(tái);自動(dòng)生成
[中圖分類(lèi)號(hào)]F232
[文獻(xiàn)標(biāo)識(shí)碼]A
[文章編號(hào)]1673-0194(2006)12-0026-03
O引言
主動(dòng)數(shù)據(jù)庫(kù)中的ECA規(guī)則由于能靈活而有效地描述系統(tǒng)行為的一般規(guī)律。目前已廣泛地應(yīng)用于基于規(guī)則的網(wǎng)絡(luò)管理(PBNM)、電子商務(wù)、股票交易、采購(gòu)活動(dòng)、工作流建模、分布式環(huán)境下的應(yīng)用和模糊知識(shí)表示等眾多領(lǐng)域。
為了實(shí)現(xiàn)財(cái)務(wù)業(yè)務(wù)一體化的目標(biāo),提供實(shí)時(shí)信息,動(dòng)態(tài)會(huì)計(jì)平臺(tái)已在會(huì)計(jì)信息系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)中逐步被使用。利用ECA規(guī)則的主動(dòng)反應(yīng)特性所構(gòu)建的動(dòng)態(tài)會(huì)計(jì)平臺(tái),能夠?qū)?jīng)濟(jì)業(yè)務(wù)事件進(jìn)行主動(dòng)識(shí)別,根據(jù)相關(guān)會(huì)計(jì)規(guī)則調(diào)用不同類(lèi)型的記賬憑證模板,并將相關(guān)表單中的數(shù)據(jù)讀入該記賬憑證模板,完成記賬憑證的自動(dòng)生成。
1 ECA規(guī)則
ECA規(guī)則是指當(dāng)一個(gè)事件(Event)發(fā)生并且滿足一定的條件(Condition)時(shí)就執(zhí)行一定的動(dòng)作fAction),稱(chēng)為“事件一條件一動(dòng)作”(Event-Condition-Action)規(guī)則,簡(jiǎn)稱(chēng)ECA規(guī)則。其表示形式如下:
RULE<規(guī)則名>[(<參數(shù)>,…)]
WHEN<事件表達(dá)式>
IF<條件1>THEN<動(dòng)作1>
IF<條件n>THEN<動(dòng)作n>;(n≥1)
END RULE<規(guī)則名>
其中,<條件i>(i=1,2,…,n)是某種邏輯中任意的合法的邏輯表達(dá)式。在一般情況下,條件表達(dá)式可以是規(guī)則語(yǔ)言中的任何邏輯表達(dá)式,可以包含函數(shù)或過(guò)程調(diào)用,還可以是更復(fù)雜的表達(dá)式并且可以包括對(duì)數(shù)據(jù)庫(kù)的查詢,一般用來(lái)判斷輸入的數(shù)據(jù)值、對(duì)象的內(nèi)部狀態(tài)或他們和其他對(duì)象的關(guān)系等。
<動(dòng)作i>(i:1,2,…,n)可以是系統(tǒng)預(yù)先定義的一些標(biāo)準(zhǔn)動(dòng)作,也可以是用戶定義的一個(gè)動(dòng)作或動(dòng)作序列?;蚴怯媚撤N語(yǔ)言編寫(xiě)的一個(gè)過(guò)程,動(dòng)作可以是引發(fā)任一事件(包括規(guī)則本身中所包含的事件1的一個(gè)命令,也可以是引發(fā)執(zhí)行某一指定的規(guī)則的命令。規(guī)則名是全局名,使規(guī)則名在整個(gè)系統(tǒng)內(nèi)是唯一的標(biāo)識(shí)規(guī)則。
上述事件驅(qū)動(dòng)的“事件一條件一動(dòng)作”規(guī)則的語(yǔ)義是:“一旦<事件表達(dá)式>所表示的事件發(fā)生,計(jì)算機(jī)就主動(dòng)觸發(fā)執(zhí)行其后的IF-THEN規(guī)則。即如果<條件l>為真,則執(zhí)行其后的<動(dòng)作1>,并且接著逐個(gè)檢查下一個(gè)IF-THEN規(guī)則,直至執(zhí)行完為止。”
在一個(gè)主動(dòng)數(shù)據(jù)庫(kù)中,一方面包含了稱(chēng)為“被動(dòng)數(shù)據(jù)”的傳統(tǒng)數(shù)據(jù)庫(kù),另一方面包含了稱(chēng)為“規(guī)則庫(kù)”的一個(gè)能根據(jù)事件的發(fā)生主動(dòng)激活執(zhí)行的知識(shí)庫(kù)。這個(gè)規(guī)則庫(kù)受系統(tǒng)中一個(gè)“事件監(jiān)視器”的監(jiān)視控制。用戶可以通過(guò)設(shè)置(或編制)各種不同的事件驅(qū)動(dòng)的規(guī)則庫(kù),以一種統(tǒng)一的機(jī)制來(lái)實(shí)現(xiàn)多種主動(dòng)處理功能,滿足各種客觀需求。
2動(dòng)態(tài)會(huì)計(jì)平臺(tái)
動(dòng)態(tài)會(huì)計(jì)平臺(tái)是根據(jù)事先定義好的會(huì)計(jì)描述,包括入賬科目、影響因素、科目分類(lèi)對(duì)照表和憑證模板的定義,對(duì)各系統(tǒng)的原始單據(jù)與業(yè)務(wù)處理自動(dòng)生成實(shí)時(shí)憑證,并按照用戶的設(shè)置將實(shí)時(shí)憑證生成記賬憑證,傳到總賬系統(tǒng)。動(dòng)態(tài)會(huì)計(jì)平臺(tái)由事件接收器、各類(lèi)會(huì)計(jì)憑證模板、憑證生成器和各類(lèi)實(shí)時(shí)會(huì)計(jì)憑證組成。其結(jié)構(gòu)如圖1所示。
事件接收器是動(dòng)態(tài)會(huì)計(jì)平臺(tái)的開(kāi)始部件,它嵌入在各子系統(tǒng)的業(yè)務(wù)模塊中,用于接收事件信息。當(dāng)一項(xiàng)經(jīng)濟(jì)業(yè)務(wù)(事件:event)發(fā)生時(shí),事件接收器負(fù)責(zé)對(duì)信息進(jìn)行識(shí)別并驅(qū)動(dòng)會(huì)計(jì)動(dòng)態(tài)平臺(tái)中的相應(yīng)規(guī)則。
會(huì)計(jì)憑證模板是嚴(yán)格按照各種報(bào)告規(guī)則要求而設(shè)立的各經(jīng)濟(jì)業(yè)務(wù)所對(duì)應(yīng)的憑證結(jié)構(gòu)的模板,可以依據(jù)使用者的不同要求而有多種設(shè)置方式,既可以是財(cái)務(wù)會(huì)計(jì)憑證模板。也可以是管理會(huì)計(jì)憑證模板。計(jì)算機(jī)將結(jié)果保存在動(dòng)態(tài)會(huì)計(jì)平臺(tái)的會(huì)計(jì)憑證模板文件中,供生成實(shí)時(shí)會(huì)計(jì)憑證使用。憑證生成器是根據(jù)經(jīng)濟(jì)業(yè)務(wù)事件的信息和會(huì)計(jì)憑證模板,自動(dòng)生成實(shí)時(shí)憑證。所生成的實(shí)時(shí)憑證可以存放在臨時(shí)憑證文件中,以便于會(huì)計(jì)人員進(jìn)行審核和記賬處理。
實(shí)時(shí)憑證是登記賬簿和生成報(bào)表的依據(jù),它最突出的特點(diǎn)是實(shí)時(shí)性和強(qiáng)制性,即在一項(xiàng)經(jīng)濟(jì)業(yè)務(wù)發(fā)生的當(dāng)時(shí)就可產(chǎn)生正確的實(shí)時(shí)憑證;該實(shí)時(shí)憑證是由計(jì)算機(jī)自動(dòng)生成的,整個(gè)過(guò)程中沒(méi)有任何人工干預(yù)。
3基于ECA規(guī)則的動(dòng)態(tài)會(huì)計(jì)平臺(tái)
基于ECA規(guī)則的動(dòng)態(tài)會(huì)計(jì)平臺(tái)是以ECA規(guī)則為基礎(chǔ)構(gòu)建的能夠?qū)I(yè)務(wù)事件進(jìn)行主動(dòng)反應(yīng)并自動(dòng)生成相應(yīng)記賬憑證的會(huì)計(jì)平臺(tái)。該平臺(tái)可以監(jiān)視、接受系統(tǒng)外部或內(nèi)部傳遞來(lái)的業(yè)務(wù)信息,并由這些信息觸發(fā)執(zhí)行生成記賬憑證的動(dòng)作。該動(dòng)作的執(zhí)行是按照事先定義的ECA規(guī)則執(zhí)行的。ECA規(guī)則描述了會(huì)計(jì)處理過(guò)程,并存儲(chǔ)在規(guī)則庫(kù)中。當(dāng)經(jīng)濟(jì)業(yè)務(wù)發(fā)生時(shí),系統(tǒng)對(duì)接受到的事件信息進(jìn)行識(shí)別,搜索相關(guān)規(guī)則,根據(jù)規(guī)則調(diào)用記賬憑證模板,讀取、添加數(shù)據(jù)到記賬憑證模板并輸出,實(shí)現(xiàn)由業(yè)務(wù)單據(jù)到記賬憑證的自動(dòng)生成。其結(jié)構(gòu)如圖2所示。
基于ECA規(guī)則的動(dòng)態(tài)會(huì)計(jì)平臺(tái)中。事件是與會(huì)計(jì)記錄相關(guān)的經(jīng)濟(jì)業(yè)務(wù)事件。這些事件部分來(lái)自于動(dòng)態(tài)會(huì)計(jì)平臺(tái)與外部的接口(如人機(jī)交互接口);部分來(lái)自于會(huì)計(jì)信息系統(tǒng)中的其他模塊(如工資、固定資產(chǎn)模塊)。當(dāng)發(fā)生與會(huì)計(jì)記錄相關(guān)的數(shù)據(jù)錄入時(shí),系統(tǒng)將以事件的形式通知?jiǎng)討B(tài)會(huì)計(jì)平臺(tái),所有進(jìn)入動(dòng)態(tài)會(huì)計(jì)平臺(tái)的事件都是由事件接收器接受、甄別的。
ECA規(guī)則中的條件是指由經(jīng)濟(jì)業(yè)務(wù)事件的原始數(shù)據(jù)記錄(主要是各類(lèi)原始憑證)向記賬憑證轉(zhuǎn)換的會(huì)計(jì)處理規(guī)則的邏輯表達(dá)式。例如采購(gòu)發(fā)票所記錄的物資采購(gòu)方式、結(jié)算方式。將這些業(yè)務(wù)信息加以歸類(lèi)、總結(jié)并用邏輯表達(dá)式予以表示,作為對(duì)經(jīng)濟(jì)業(yè)務(wù)事件屬性判定的條件。
ECA規(guī)則中的動(dòng)作是指根據(jù)事件和條件,從記賬憑證模板庫(kù)中調(diào)用與之對(duì)應(yīng)的憑證模板,對(duì)其添加數(shù)據(jù),生成正確的記賬憑證同時(shí)將其輸出的過(guò)程。
動(dòng)態(tài)會(huì)計(jì)平臺(tái)中的事件監(jiān)視器在發(fā)現(xiàn)某一業(yè)務(wù)事件信息時(shí),觸發(fā)規(guī)則處理機(jī),對(duì)比事件數(shù)據(jù)庫(kù)中的事件,并從規(guī)則庫(kù)中提取相應(yīng)規(guī)則,根據(jù)該規(guī)則調(diào)用事件處理程序進(jìn)行即時(shí)處理,從而自動(dòng)生成記賬憑證。在動(dòng)態(tài)會(huì)計(jì)平臺(tái)的構(gòu)建中,最關(guān)鍵的是規(guī)則庫(kù)的建立,即如何利用ECA規(guī)則表示出業(yè)務(wù)事件的會(huì)計(jì)處理流程,這是實(shí)現(xiàn)記賬憑證自動(dòng)生成的基礎(chǔ)。
4實(shí)例
以工業(yè)企業(yè)的存貨(設(shè)為原材料)入庫(kù)的賬務(wù)處理為例來(lái)說(shuō)明基于ECA規(guī)則的動(dòng)態(tài)會(huì)計(jì)平臺(tái)的實(shí)現(xiàn)過(guò)程。設(shè)所有分錄均已按相應(yīng)憑證格式存儲(chǔ)于記賬憑證模板庫(kù)中。
設(shè)倉(cāng)庫(kù)的收貨記錄數(shù)目為S0采購(gòu)發(fā)票列示的存貨采購(gòu)數(shù)目為S0,存貨的計(jì)劃價(jià)格為P0,實(shí)際價(jià)格為P1,增稅率為T(mén),1211為原材料科目代碼,1202為物資采購(gòu)科目代碼。
存貨入庫(kù)時(shí)的入庫(kù)事件可分為短缺和非短缺兩類(lèi)子事件,將其作為ECA規(guī)則的事件,并編碼:110—無(wú)短缺(S0=S1)、111——短缺(S0>S1);將P0與P1間的差異作為ECA規(guī)則的條件,并編碼:00—P0=P1、01——P0
1(超支)、02—P0>P1(節(jié)約)。
存貨入庫(kù)時(shí),按入庫(kù)單上的實(shí)收存貨數(shù)量和計(jì)劃成本確認(rèn)存貨成本,對(duì)于超支或節(jié)約的部分同時(shí)結(jié)轉(zhuǎn)差異。針對(duì)不同的情況編制的分錄也不同。主要有:
正常入庫(kù),即S0=S1且P0=P1,會(huì)計(jì)分錄如下(編碼為11000):
借:原材料——XX材料P0×S1
貸:物資采購(gòu)——XX材料P0×S1
成本超支時(shí),即S0=S1且P1>P0,分錄如下(編碼為11001):
借:材料成本差異——XX材料 (P1-P0)×S,
貸:物資采購(gòu)——XX材料
(P1-P0)×S,
成本節(jié)約時(shí),即S0=S1且P1
0,分錄如下(編碼為11002):
借:物資采購(gòu)——XX材料
(P0-P1)×S,
貸:材料成本差異——XX材料
(P0-P1)×S,
發(fā)生合理?yè)p耗以外的短缺時(shí),即S0S1且P0=P1,分錄如下(編碼為11100):
借:待處理財(cái)產(chǎn)損益——待處理流動(dòng)資產(chǎn)損益P0x(S1-S0)
貸:應(yīng)交稅金——應(yīng)交增值稅(進(jìn)項(xiàng)稅額轉(zhuǎn)出)P0×(S1-S0)×T
物資采購(gòu)——XX材料P0×(S1-S0)×(1+T)
由上述分析可以得出存貨入庫(kù)記賬憑證的事件(Event)、條件(Condition)和動(dòng)作(Action)之間的對(duì)應(yīng)關(guān)系如下表所示:
Event一無(wú)短缺和短缺子事件;Condition——計(jì)劃價(jià)格與實(shí)際價(jià)格間的關(guān)系;Action——選擇相應(yīng)記賬模板。將數(shù)據(jù)讀入記賬憑證模板,并輸出該記賬憑證。
存貨入庫(kù)記賬憑證自動(dòng)生成的ECA規(guī)則可以表示為:
ON S0=S0IF P0=P1 THEN從記賬憑證模板庫(kù)中調(diào)用11000模板,將入庫(kù)單中的金額數(shù)(S1×P1)分別讀入借方和貸方
IF P0
1THEN從記賬憑證模板庫(kù)中調(diào)用11001模板,從入庫(kù)單中取P0、P1和S0,計(jì)算出(P1-P0)×S0,并將結(jié)果讀入借方和貸方
ELSE THEN從記賬憑證模板庫(kù)中調(diào)用11002模板,從入庫(kù)單中取P0、P1和S0,計(jì)算出(P0-P1)×S0,并將結(jié)果讀入借方和貸方
ON S0S1THEN將入庫(kù)單中的計(jì)劃單價(jià)與溢缺數(shù)的乘積,即P
ECA規(guī)則程序如下:
1.相關(guān)類(lèi)
Ilnv=class(Obiect)
Update fDebId:int;CreId:int;DebSum:float;CreSum:float);
…
end;
2.創(chuàng)建事件UpdateIInvEvent
Create Event UpdatelnvVouEvent After Ilnv,Update
3.創(chuàng)建規(guī)則UpdatelnvVouRule
CreateRuleUpdateInvVouRule (Sender:ResourcePointer;DebId:int;CreId:int;DebSum:string;CreSum:string)
On UpdateInvVouEvent
Mode:Immediate
Condition:
function idno_condition fSender:ResourcePointer;DebId:int;CreId:int;DebSum:string;CreSum:string)
Begin
…
result:=(SO=S1)and(PO=P1)
end;
Act'procedureidno_action(Sender:ResourcePointer;Debld:int;Creld:int;DebSum:string;CreSum:strin曲
Begin
Sender,Update(121 1;1202;P0xSl;POxSl);
end;
Modify:Always
系統(tǒng)執(zhí)行過(guò)程:當(dāng)用戶執(zhí)行Update方法后,產(chǎn)生UpdateIInvEvent事件,接著觸發(fā)規(guī)則UpdateInvVou—Rule,對(duì)條件進(jìn)行判斷,若條件為真,則執(zhí)行活動(dòng)部分,更新記賬憑證的內(nèi)容。
5結(jié)束語(yǔ)
ECA規(guī)則的應(yīng)用使得動(dòng)態(tài)會(huì)計(jì)平臺(tái)的各程序間可以沒(méi)有直接相互作用,所有的相互作用由規(guī)則的激活產(chǎn)生;對(duì)會(huì)計(jì)處理應(yīng)用程序行為的修改,可以修改會(huì)計(jì)處理規(guī)則而不必修改程序:應(yīng)用程序成為非常簡(jiǎn)單的服務(wù),高層邏輯被編碼在規(guī)則中而不是在應(yīng)用程序中,這使得應(yīng)用程序更加模塊化,更易改寫(xiě)。因而提高了動(dòng)態(tài)會(huì)計(jì)平臺(tái)的靈活性和即時(shí)響應(yīng)能力。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。