工作流生成方法、工作流執(zhí)行方法以及工作流執(zhí)行系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例公開了一種工作流生成方法、工作流執(zhí)行方法以及工作流執(zhí)行系統(tǒng),該方法包括:獲取所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為以及節(jié)點(diǎn)類型;在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),獲取業(yè)務(wù)表單,形成所述節(jié)點(diǎn)對(duì)象,在所述節(jié)點(diǎn)類型為自由節(jié)點(diǎn)時(shí),所述業(yè)務(wù)表單以及所述節(jié)點(diǎn)類型形成所述節(jié)點(diǎn)對(duì)象;依據(jù)預(yù)先設(shè)定的業(yè)務(wù)處理流程以及所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為,獲得與所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由;依據(jù)所述路由與構(gòu)建的各個(gè)節(jié)點(diǎn)對(duì)象的對(duì)應(yīng)關(guān)系,組合所述各個(gè)節(jié)點(diǎn)對(duì)象以及所述路由,以完成所述工作流的構(gòu)建。采用本發(fā)明實(shí)施例提供的方法、裝置以及系統(tǒng)可以縮減工作流開發(fā)的時(shí)間、對(duì)工作流的更改不需要對(duì)程序代碼進(jìn)行更改以及內(nèi)存中程序代碼的冗余度低。
【專利說明】工作流生成方法、工作流執(zhí)行方法以及工作流執(zhí)行系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件【技術(shù)領(lǐng)域】,更具體的說,是涉及一種工作流生成方法、工作流執(zhí)行方法以及工作流執(zhí)行系統(tǒng)。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)軟件得到了越來越廣泛的應(yīng)用,早期的計(jì)算機(jī)軟件大都使用代碼編寫,導(dǎo)致軟件晦澀難懂,不便于維護(hù)和業(yè)務(wù)重構(gòu),運(yùn)營成本很高。因此工作流應(yīng)用而生。
[0003]工作流是指為實(shí)現(xiàn)某個(gè)業(yè)務(wù)目標(biāo),在多個(gè)參與者之間,利用計(jì)算機(jī),按某種預(yù)定規(guī)則自動(dòng)傳遞文檔、信息或者任務(wù)。工作流由節(jié)點(diǎn)對(duì)象以及各個(gè)節(jié)點(diǎn)對(duì)象之間的路由組成,節(jié)點(diǎn)對(duì)象由節(jié)點(diǎn)行為(預(yù)定規(guī)則)、節(jié)點(diǎn)類型以及業(yè)務(wù)表單(文檔、信息或者任務(wù))組成,節(jié)點(diǎn)行為包括:開始行為、結(jié)束行為、分發(fā)行為以及審批行為等等,節(jié)點(diǎn)類型包括:自由節(jié)點(diǎn)以及人工節(jié)點(diǎn),自由節(jié)點(diǎn)是指不需要人工操作的節(jié)點(diǎn),路由是指業(yè)務(wù)表單的傳遞路徑。
[0004]由于每一工作流對(duì)應(yīng)的代碼存儲(chǔ)于同一文檔中,導(dǎo)致工作流的開發(fā)時(shí)間較長,工作流的更改,需要對(duì)工作流對(duì)應(yīng)的程序代碼進(jìn)行相應(yīng)的更改以及內(nèi)存中存儲(chǔ)的代碼的冗余度較高。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供了 一種工作流生成方法、工作流執(zhí)行方法以及工作流執(zhí)行系統(tǒng),以克服現(xiàn)有技術(shù)中工作流的開發(fā)時(shí)間較長,工作流的更改,需要對(duì)工作流對(duì)應(yīng)的程序代碼進(jìn)行相應(yīng)的更改以及內(nèi)存中存儲(chǔ)的代碼的冗余度較高的問題。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0007]一種工作流生成方法,包括:
[0008]對(duì)于待構(gòu)建的工作流中每一節(jié)點(diǎn)對(duì)象執(zhí)行如下操作:
[0009]獲取所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為以及與所述節(jié)點(diǎn)行為對(duì)應(yīng)的節(jié)點(diǎn)類型,所述節(jié)點(diǎn)類型包括:人工節(jié)點(diǎn)以及自由節(jié)點(diǎn);
[0010]在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),獲取與所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單,所述業(yè)務(wù)表單、所述節(jié)點(diǎn)類型以及所述節(jié)點(diǎn)行為形成所述節(jié)點(diǎn)對(duì)象,在所述節(jié)點(diǎn)類型為自由節(jié)點(diǎn)時(shí),所述業(yè)務(wù)表單以及所述節(jié)點(diǎn)類型形成所述節(jié)點(diǎn)對(duì)象;
[0011]依據(jù)預(yù)先設(shè)定的業(yè)務(wù)處理流程以及所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為,獲得與所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由;
[0012]依據(jù)所述路由與構(gòu)建的各個(gè)節(jié)點(diǎn)對(duì)象的對(duì)應(yīng)關(guān)系,組合所述各個(gè)節(jié)點(diǎn)對(duì)象以及所述路由,以完成所述工作流的構(gòu)建,所述各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼位于不同的文檔中。
[0013]其中,所述獲取與所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單具體包括:
[0014]確定所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單;
[0015]將所述業(yè)務(wù)表單關(guān)聯(lián)至所述節(jié)點(diǎn)行為。[0016]其中,還包括:
[0017]在接收到完成所述工作流的構(gòu)建指示后,顯示構(gòu)建的所述工作流的流程ID對(duì)話框;
[0018]接收所述流程ID對(duì)話框中輸入的數(shù)據(jù),將所述數(shù)據(jù)作為所述工作流的流程ID。
[0019]其中,所述工作流中還包括一通用節(jié)點(diǎn)對(duì)象,所述通用節(jié)點(diǎn)對(duì)象與所述工作流中所有節(jié)點(diǎn)對(duì)象相關(guān)聯(lián)。
[0020]一種工作流執(zhí)行方法,所述工作流生成方法上述任一種所述生成方法,所述工作流執(zhí)行方法包括:
[0021]獲取所述工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象;
[0022]執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼;
[0023]在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則退出所述工作流,如果否,則依據(jù)所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由,獲取下一目標(biāo)節(jié)點(diǎn)對(duì)象。
[0024]其中,所述執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼具體包括:
[0025]判斷所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)類型;
[0026]在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),顯示所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的業(yè)務(wù)表單,并獲取所述業(yè)務(wù)表單中的數(shù)據(jù);
[0027]在所述節(jié)點(diǎn)為自由節(jié)點(diǎn)時(shí),執(zhí)行所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼的操作。
[0028]其中,所述節(jié)點(diǎn)類型還包括:會(huì)簽節(jié)點(diǎn),所述會(huì)簽節(jié)點(diǎn)屬于人為節(jié)點(diǎn),在所述獲取所述節(jié)點(diǎn)對(duì)象之后,執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼前還包括:
[0029]判斷所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)類型;
[0030]在所述節(jié)點(diǎn)類型為會(huì)簽節(jié)點(diǎn)時(shí),接收目標(biāo)會(huì)簽值;
[0031]創(chuàng)建與所述目標(biāo)會(huì)簽值對(duì)應(yīng)數(shù)目的任務(wù),各個(gè)所述任務(wù)的狀態(tài)為未完成狀態(tài),將完成狀態(tài)任務(wù)參數(shù)設(shè)置為零;
[0032]在接收到處理一所述任務(wù)的請(qǐng)求時(shí),執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼的操作;
[0033]相應(yīng)的,在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示之前還包括:
[0034]在檢測(cè)到某一所述任務(wù)被完成時(shí),將所述任務(wù)的狀態(tài)更改為完成狀態(tài),并將所述完成狀態(tài)任務(wù)參數(shù)加I ;
[0035]當(dāng)所述完成狀態(tài)任務(wù)參數(shù)的值與所述目標(biāo)會(huì)簽值相等時(shí),產(chǎn)生所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示。
[0036]其中,在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為之前還包括:
[0037]判斷是否接收到跳轉(zhuǎn)至第一預(yù)設(shè)節(jié)點(diǎn)對(duì)象的指令,如果是,則跳轉(zhuǎn)至所述第一預(yù)設(shè)節(jié)點(diǎn)對(duì)象;
[0038]和/ 或,
[0039]判斷是否接收到返回至第二預(yù)設(shè)節(jié)點(diǎn)對(duì)象的指令,如果是,則返回至所述第二預(yù)設(shè)節(jié)點(diǎn)對(duì)象;[0040]和/ 或,
[0041]判斷是否接收到撤銷指令,如果是,則撤回當(dāng)前執(zhí)行的操作;
[0042]在上述判斷結(jié)果均為否的情況下,執(zhí)行判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為的操作。
[0043]一種工作流執(zhí)行系統(tǒng),包括:
[0044]工作流命令存儲(chǔ)器,用于存儲(chǔ)構(gòu)建的各個(gè)工作流,且每一工作流具有一流程ID ;
[0045]工作流命令執(zhí)行器,用于在接收到操作指令時(shí),根據(jù)所述操作指令對(duì)應(yīng)的流程ID,從所述工作流命令存儲(chǔ)器中得到所述操作指令對(duì)應(yīng)的工作流,所述操作指令包括跳轉(zhuǎn)指令、返回指令、撤銷指令以及順序執(zhí)行指令;
[0046]工作流引擎,用于獲取所述工作流命令執(zhí)行器得到的工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象,調(diào)用所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼,以顯示所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的業(yè)務(wù)表單,并執(zhí)行與所述程序代碼相應(yīng)的操作;在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則退出所述流程,如果否,則產(chǎn)生新的操作指令,并將所述操作指令發(fā)送至所述工作流命令執(zhí)行器。
[0047]優(yōu)選地,還包括:
[0048]工作流監(jiān)控服務(wù)器,用于監(jiān)控各個(gè)節(jié)點(diǎn)對(duì)象的運(yùn)行時(shí)間。
[0049]經(jīng)由上述的技術(shù)方案可知,采用本發(fā)明實(shí)施例提供的方法,各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼是相互獨(dú)立的,由各個(gè)程序代碼相互獨(dú)立的節(jié)點(diǎn)行為構(gòu)建的工作流,在開發(fā)時(shí),可以為每一節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼分配一開發(fā)人員,從而提高工作流開發(fā)的速度,當(dāng)工作流中某一節(jié)點(diǎn)對(duì)象需要?jiǎng)h除時(shí),只需要?jiǎng)h除該節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的程序代碼即可,不需要專業(yè)人員進(jìn)行更改,操作方便,包括同一節(jié)點(diǎn)行為的不同工作流中該節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼可以為同一個(gè),從而降低了內(nèi)存中存儲(chǔ)的代碼的冗余度。
【專利附圖】
【附圖說明】
[0050]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0051]圖1為本發(fā)明實(shí)施例公開的第一種工作流生成方法的流程圖;
[0052]圖2為本發(fā)明實(shí)施例提供的第二種工作流生成方法的流程圖;
[0053]圖3為本發(fā)明實(shí)施例提供的第一種工作流執(zhí)行方法的流程圖;
[0054]圖4為本發(fā)明實(shí)施例提供的第二種工作流執(zhí)行方法的流程圖;
[0055]圖5為本發(fā)明實(shí)施例提供的第三種工作流執(zhí)行方法的流程圖;
[0056]圖6為本發(fā)明實(shí)施例提供的一種串行工作流的示意圖;
[0057]圖7為在圖6中建立的返回線701的示意圖;
[0058]圖8為本發(fā)明實(shí)施例提供的一種較為復(fù)雜的工作流流程圖;
[0059]圖9為本發(fā)明實(shí)施例提供的一種工作流執(zhí)行系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】[0060]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0061]現(xiàn)有技術(shù)中的每一工作流對(duì)應(yīng)的程序代碼存儲(chǔ)域同一文檔中,且每一工作流中各個(gè)節(jié)點(diǎn)對(duì)象的代碼具有一定的關(guān)聯(lián),所以在進(jìn)行工作流開發(fā)時(shí),需要較少的開發(fā)人員,導(dǎo)致工作流的開發(fā)時(shí)間較長。當(dāng)需要將工作流中某一節(jié)點(diǎn)對(duì)象刪除時(shí),需要將程序代碼中對(duì)應(yīng)的代碼進(jìn)行刪除,需要專業(yè)人員進(jìn)行更改,操作不方便。不同的工作流中包含的節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為可能相同,由于每一工作流程的代碼存儲(chǔ)于同一文檔中,程序代碼非常復(fù)雜,各個(gè)工作流對(duì)應(yīng)的程序代碼之間不能相互引用,所以需要重復(fù)編寫節(jié)點(diǎn)行為對(duì)應(yīng)的代碼,導(dǎo)致內(nèi)存中存儲(chǔ)的代碼的冗余度較高。
[0062]實(shí)施例一
[0063]請(qǐng)參閱附圖1,為本發(fā)明實(shí)施例公開的第一種工作流生成方法的流程圖,該方法中對(duì)于待構(gòu)建的工作流中每一節(jié)點(diǎn)對(duì)象執(zhí)行如下操作:
[0064]步驟SlOl:獲取節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為以及與所述節(jié)點(diǎn)行為對(duì)應(yīng)的節(jié)點(diǎn)類型;
[0065]節(jié)點(diǎn)行為包括:開始行為、結(jié)束行為、分發(fā)行為、審批行為以及駁回行為等等,節(jié)點(diǎn)類型包括:自由節(jié)點(diǎn)以及人工節(jié)點(diǎn),自由節(jié)點(diǎn)是指不需要人工操作的節(jié)點(diǎn)。
[0066]步驟S102:在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),獲取與所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單,所述業(yè)務(wù)表單、所述節(jié)點(diǎn)類型以及所述節(jié)點(diǎn)行為形成所述節(jié)點(diǎn)對(duì)象,在所述節(jié)點(diǎn)類型為自由節(jié)點(diǎn)時(shí),所述業(yè)務(wù)表單以及所述節(jié)點(diǎn)類型形成所述節(jié)點(diǎn)對(duì)象;
[0067]由于節(jié)點(diǎn)類型為人工節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象需要人機(jī)交互界面,所以包括業(yè)務(wù)表單,而節(jié)點(diǎn)類型為自由節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象不需要人機(jī)交互界面,所以不包括業(yè)務(wù)表單。
[0068]步驟S103:依據(jù)預(yù)先設(shè)定的業(yè)務(wù)處理流程以及所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為,獲得與所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由;
[0069]預(yù)先設(shè)定的業(yè)務(wù)處理流程是指業(yè)務(wù)處理的順序,例如,辦理新公司注冊(cè),則需要在行政大廳啟動(dòng)一個(gè)新公司注冊(cè)的流程,首先 申請(qǐng)人:在行政大廳提交相關(guān)資料,然后工商局進(jìn)行審批,其次公安局以及地稅局進(jìn)行審批,最后將審批結(jié)果返回至行政大廳。“行政大廳一工商局一公安局以及地稅局一行政大廳”就表示一個(gè)業(yè)務(wù)處理流程。在生成一個(gè)工作流時(shí),開發(fā)人員必須知道業(yè)務(wù)處理流程,否則不能開發(fā)出符合實(shí)際業(yè)務(wù)的工作流。
[0070]路由是指業(yè)務(wù)表單的傳遞路徑。路由與節(jié)點(diǎn)行為相對(duì)應(yīng),例如,當(dāng)節(jié)點(diǎn)行為為分發(fā)行為時(shí),則該節(jié)點(diǎn)對(duì)象至少有兩個(gè)路由,即該節(jié)點(diǎn)對(duì)象至少有兩個(gè)目標(biāo)節(jié)點(diǎn)對(duì)象;當(dāng)節(jié)點(diǎn)行為為駁回節(jié)點(diǎn)行為時(shí),該節(jié)點(diǎn)對(duì)象只有一個(gè)目標(biāo)節(jié)點(diǎn)對(duì)象。每一路由都連接有兩個(gè)節(jié)點(diǎn)對(duì)象:源節(jié)點(diǎn)對(duì)象以及目標(biāo)節(jié)點(diǎn)對(duì)象,在按照工作流中定義的執(zhí)行順序運(yùn)行工作流時(shí),源節(jié)點(diǎn)對(duì)象比目標(biāo)節(jié)點(diǎn)對(duì)象先運(yùn)行。
[0071]與節(jié)點(diǎn)行為為結(jié)束節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由是指該節(jié)點(diǎn)對(duì)象的源節(jié)點(diǎn)對(duì)象與該節(jié)點(diǎn)對(duì)象之間的路由。
[0072]步驟S104:依據(jù)所述路由與構(gòu)建的各個(gè)節(jié)點(diǎn)對(duì)象的對(duì)應(yīng)關(guān)系,組合所述各個(gè)節(jié)點(diǎn)對(duì)象以及所述路由,以完成所述工作流的構(gòu)建。
[0073]上述各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼位于不同的文檔中。[0074]各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼位于不同的文檔中,也就是各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼相互獨(dú)立。
[0075]步驟SlOl至步驟S104是對(duì)于每一節(jié)點(diǎn)對(duì)象執(zhí)行的步驟,若一待構(gòu)建的工作流中包括至少兩個(gè)節(jié)點(diǎn)對(duì)象,其中一個(gè)節(jié)點(diǎn)對(duì)象的執(zhí)行步驟為:1 (與步驟SlOl的操作相同),2(與步驟S102的操作相同),3 (與步驟S103的操作相同),4 (與步驟S104的操作相同),另一個(gè)節(jié)點(diǎn)對(duì)象的執(zhí)行步驟為:1’(與步驟SlOl的操作相同),2’(與步驟S102的操作相同),3’(與步驟S103的操作相同),4’(與步驟S104的操作相同),只要1,2,3,4的前后順序以及1’,2’,3’,4’前后順序保持不變,1,2,3,4與1’,2’,3’,4’可以任意組合,具體的執(zhí)行順序可以為:1,I’,2,3,2’,3’,4,4’或者 1,I’,2,2’,3,3’,4,4’或者 1,2,I,,2,,3,4,3,,4,等等,即執(zhí)行步驟的先后順序可以隨意,在此不一一贅述。
[0076]本發(fā)明實(shí)施例中各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼是相互獨(dú)立的,由各個(gè)程序代碼相互獨(dú)立的節(jié)點(diǎn)行為構(gòu)建的工作流,在開發(fā)時(shí),可以為每一節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼分配一開發(fā)人員,從而提高工作流開發(fā)的速度,當(dāng)工作流中某一節(jié)點(diǎn)對(duì)象需要?jiǎng)h除時(shí),只需要?jiǎng)h除該節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的程序代碼即可,不需要專業(yè)人員進(jìn)行更改,操作方便,包括同一節(jié)點(diǎn)行為的不同工作流中該節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼可以為同一個(gè),從而降低了內(nèi)存中存儲(chǔ)的代碼的冗余度。
[0077]實(shí)施例二
[0078]請(qǐng)參閱圖2,為本發(fā)明實(shí)施例提供的第二種工作流生成方法的流程圖,該方法可以包括:
[0079]步驟S201:獲取所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為以及與所述節(jié)點(diǎn)行為對(duì)應(yīng)的節(jié)點(diǎn)類型;
[0080]步驟S202:在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),確定所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單,將所述業(yè)務(wù)表單關(guān)聯(lián)至所述節(jié)點(diǎn)行為,所述業(yè)務(wù)表單、所述節(jié)點(diǎn)類型以及所述節(jié)點(diǎn)行為形成所述節(jié)點(diǎn)對(duì)象,在所述節(jié)點(diǎn)類型為自由節(jié)點(diǎn)時(shí),所述業(yè)務(wù)表單以及所述節(jié)點(diǎn)類型形成所述節(jié)點(diǎn)對(duì)象;
[0081]現(xiàn)有技術(shù)中的業(yè)務(wù)表單與工作流對(duì)應(yīng)的程序代碼是綁定的,工作流對(duì)應(yīng)的程序代碼中包括業(yè)務(wù)表單的存儲(chǔ)路徑,當(dāng)某一節(jié)點(diǎn)對(duì)象的業(yè)務(wù)表單需要?jiǎng)h除當(dāng)前業(yè)務(wù)表單并掛接一新業(yè)務(wù)表單時(shí),需要專業(yè)人員進(jìn)行修改,操作不方便,而本發(fā)明實(shí)施例中節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼不包括業(yè)務(wù)表單的存儲(chǔ)路徑,為了將業(yè)務(wù)表單與節(jié)點(diǎn)行為具有聯(lián)系,可以采用數(shù)據(jù)庫中的關(guān)聯(lián)關(guān)系,將業(yè)務(wù)表單與節(jié)點(diǎn)行為關(guān)聯(lián)起來,當(dāng)需要?jiǎng)h除當(dāng)前業(yè)務(wù)表單并需要掛接一新業(yè)務(wù)表單時(shí),直接取消關(guān)聯(lián)關(guān)系,并將新業(yè)務(wù)表單與對(duì)應(yīng)的節(jié)點(diǎn)行為進(jìn)行關(guān)聯(lián)即可,并不需要修改程序代碼。
[0082]優(yōu)選的,業(yè)務(wù)表單存儲(chǔ)至文檔數(shù)據(jù)庫中,由于文檔數(shù)據(jù)庫具有模式自由存儲(chǔ)數(shù)據(jù)以及支持動(dòng)態(tài)查詢兩個(gè)特點(diǎn),可以實(shí)現(xiàn)用戶自定義業(yè)務(wù)表單。
[0083]步驟S203:依據(jù)預(yù)先設(shè)定的業(yè)務(wù)處理流程以及所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為,獲得與所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由;
[0084]步驟S204:依據(jù)所述路由與構(gòu)建的各個(gè)節(jié)點(diǎn)對(duì)象的對(duì)應(yīng)關(guān)系,組合所述各個(gè)節(jié)點(diǎn)對(duì)象以及所述路由,以完成所述工作流的構(gòu)建。
[0085]上述各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼位于不同的文檔中。
[0086]步驟S205:在接收到完成所述工作流的構(gòu)建指示后,顯示構(gòu)建的所述工作流的流程ID對(duì)話框;
[0087]步驟S206:接收所述流程ID對(duì)話框中輸入的數(shù)據(jù),將所述數(shù)據(jù)作為所述工作流的流程ID。
[0088]當(dāng)生成多個(gè)工作流時(shí),需要為每一工作流分配一流程ID,這樣可以根據(jù)流程ID判斷現(xiàn)在執(zhí)行的是哪一工作流,當(dāng)只生成一個(gè)工作流時(shí),由于不需要與其他工作流進(jìn)行區(qū)分,所以不需要為工作流分配流程ID。
[0089]流程ID可以是數(shù)字或者字符編號(hào),也可以是包含工作流功能的描述性語言,流程ID到底是什么并不影響本發(fā)明實(shí)施例的實(shí)現(xiàn),所以在此不作具體限定。
[0090]在步驟S206之后,還可以包括生成與所述工作流對(duì)應(yīng)的程序代碼,所述程序代碼存儲(chǔ)于同一文檔中。
[0091]構(gòu)建的工作流沒有其對(duì)應(yīng)的整體程序代碼,假設(shè)在一系統(tǒng)中,只用這一個(gè)流程,并且該流程需要修改的可能性較小,此時(shí),可以生成與該工作流對(duì)應(yīng)的整體程序代碼,并將該程序代碼存儲(chǔ)至一文檔,該文檔不是各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼所在的文檔。本發(fā)明實(shí)施例中步驟S207可以有,也可以沒有。
[0092]本方法還可以包括:在接收到完成所述工作流的構(gòu)建指示后,判斷節(jié)點(diǎn)類型為自由節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象是否包括業(yè)務(wù)表單,如果是,則報(bào)錯(cuò);和/或,判斷節(jié)點(diǎn)類型為人工節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象是否包括業(yè)務(wù)表單,如果否,則報(bào)錯(cuò)。
[0093]為了便于動(dòng)態(tài)跳轉(zhuǎn),工作流中還包括一通用節(jié)點(diǎn)對(duì)象,該通用節(jié)點(diǎn)對(duì)象與所述工作流中所有節(jié)點(diǎn)對(duì)象相關(guān)聯(lián)。這樣每兩個(gè)節(jié)點(diǎn)對(duì)象都可以通過通用節(jié)點(diǎn)對(duì)象進(jìn)行業(yè)務(wù)表單的傳遞。本發(fā)明實(shí)施例,不僅僅具有實(shí)施例一的有益效果,而且巧妙的用數(shù)據(jù)庫中的關(guān)聯(lián)關(guān)系,代替將業(yè)務(wù)表單的存儲(chǔ)路徑寫入各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼中,當(dāng)需要?jiǎng)h除當(dāng)前業(yè)務(wù)表單并改接一新業(yè)務(wù)表單時(shí),直接取消關(guān)聯(lián)關(guān)系,并將新業(yè)務(wù)表單與對(duì)應(yīng)的節(jié)點(diǎn)行為進(jìn)行關(guān)聯(lián)即可,不需要改動(dòng)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼,使操作更加簡便。
[0094]在實(shí)際應(yīng)用中具體實(shí)現(xiàn)上述實(shí)施例時(shí),可以設(shè)計(jì)一工作流設(shè)計(jì)界面,該工作流設(shè)計(jì)界面中包括路由、所有類型的節(jié)點(diǎn)行為以及所有節(jié)點(diǎn)類型,在工作流設(shè)計(jì)界面中可以選擇各種類型的業(yè)務(wù)表單,各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼存儲(chǔ)于不同的文檔中即相互獨(dú)立。當(dāng)用戶需要構(gòu)建某一工作流時(shí),只需要從工作流設(shè)計(jì)界面中選取相應(yīng)的節(jié)點(diǎn)行為、節(jié)點(diǎn)類型、業(yè)務(wù)表單以及路由即可,用戶不需要編寫程序代碼,也不需要懂程序代碼。
[0095]實(shí)施例三
[0096]請(qǐng)參閱圖3,為本發(fā)明實(shí)施例提供的第一種工作流執(zhí)行方法的流程圖,該方法中的工作流生成過程與上述實(shí)施例描述的工作流生成方法一致,該方法可以包括:
[0097]步驟S301:獲取工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象;
[0098]步驟S302:執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼;
[0099]執(zhí)行程序代碼可以為:群發(fā)郵件操作或群發(fā)短信操作等等。
[0100]具體的,步驟S302包括:判斷所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)類型;在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),顯示所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的業(yè)務(wù)表單,并獲取所述業(yè)務(wù)表單中的數(shù)據(jù);在所述節(jié)點(diǎn)為自由節(jié)點(diǎn)時(shí),執(zhí)行所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼的操作。
[0101]步驟S303:在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則進(jìn)入步驟S305,如果否,則進(jìn)入步驟S304 ;[0102]步驟S304:依據(jù)所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由,獲取下一目標(biāo)節(jié)點(diǎn)對(duì)象;
[0103]步驟S305:退出所述工作流。
[0104]本發(fā)明實(shí)施例提供的方法,各個(gè)節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼是相互獨(dú)立的,當(dāng)運(yùn)行某一節(jié)點(diǎn)對(duì)象時(shí),會(huì)自動(dòng)調(diào)用該節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼,并執(zhí)行與該程序代碼相應(yīng)的操作。各個(gè)節(jié)點(diǎn)行為之間的程序代碼的調(diào)用順序由路由決定。
[0105]實(shí)施例四
[0106]請(qǐng)參閱圖4,為本發(fā)明實(shí)施例提供的第二種工作流執(zhí)行方法的流程圖,該方法中的工作流生成過程與上述實(shí)施例描述的工作流生成方法一致,該方法可以包括:
[0107]步驟S401:獲取所述工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象;
[0108]步驟S402:判斷所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)類型;
[0109]步驟S403:在所述節(jié)點(diǎn)類型為會(huì)簽節(jié)點(diǎn)時(shí),接收目標(biāo)會(huì)簽值;
[0110]會(huì)簽節(jié)點(diǎn)屬于人工節(jié)點(diǎn)。
[0111]步驟S404:創(chuàng)建與目標(biāo)會(huì)簽值對(duì)應(yīng)數(shù)目的任務(wù),各個(gè)所述任務(wù)的狀態(tài)為未完成狀態(tài),將完成狀態(tài)任務(wù)參數(shù)設(shè)置為零;
[0112]步驟S405:在接收到處理一所述任務(wù)的請(qǐng)求時(shí),執(zhí)行所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼;
[0113]執(zhí)行所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼的具體過程與實(shí)施例三中描述的過程相同。
[0114]步驟S406:在檢測(cè)到某一所述任務(wù)被完成時(shí),將所述任務(wù)的狀態(tài)更改為完成狀態(tài),并將所述完成狀態(tài)任務(wù)參數(shù)加I ;
[0115]步驟S407:當(dāng)所述完成狀態(tài)任務(wù)參數(shù)的值與所述目標(biāo)會(huì)簽值相等時(shí),產(chǎn)生所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示;
[0116]步驟S408:在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則進(jìn)入步驟S410,如果否,則進(jìn)入步驟S409 ;
[0117]步驟S409:依據(jù)所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由,獲取下一目標(biāo)節(jié)點(diǎn)對(duì)象;
[0118]步驟S410:退出所述工作流。
[0119]為了本領(lǐng)域技術(shù)人員更加清楚的理解本實(shí)施例,下面舉一具體例子進(jìn)一步說明。
[0120]假設(shè)某一節(jié)點(diǎn)對(duì)象中的工作,需要10個(gè)人完成,那么人為可以輸入10,此時(shí)系統(tǒng)會(huì)產(chǎn)生10個(gè)任務(wù),此時(shí)10個(gè)任務(wù)的狀態(tài)均為未完成狀態(tài),同時(shí)系統(tǒng)將完成狀態(tài)任務(wù)參數(shù)設(shè)置為零。當(dāng)某一用戶接收到任務(wù),并點(diǎn)擊處理任務(wù)按鍵時(shí),執(zhí)行該節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼,當(dāng)該用戶完成任務(wù)后,點(diǎn)擊完成,此時(shí)完成狀態(tài)任務(wù)參數(shù)加1,當(dāng)完成狀態(tài)任務(wù)參數(shù)為10時(shí),產(chǎn)生該節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示。上述實(shí)施例是優(yōu)選的實(shí)施例,當(dāng)需要10個(gè)人完成任務(wù)時(shí),對(duì)應(yīng)的目標(biāo)會(huì)簽值可以為100%,當(dāng)需要7個(gè)人完成任務(wù)時(shí),對(duì)應(yīng)的目標(biāo)會(huì)簽值為70%,此時(shí)當(dāng)某一任務(wù)被完成時(shí),完成狀態(tài)任務(wù)參數(shù)加10%。
[0121]本發(fā)明實(shí)施例將進(jìn)一步說明了當(dāng)節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)類型為會(huì)簽節(jié)點(diǎn)時(shí)的處理方法。
[0122]實(shí)施例五
[0123]請(qǐng)參閱圖5,為本發(fā)明實(shí)施例提供的第三種工作流執(zhí)行方法的流程圖,該方法中的工作流生成過程與上述實(shí)施例描述的工作流生成方法一致,該方法可以包括:
[0124]步驟S501:獲取工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象;[0125]步驟S502:執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼;
[0126]執(zhí)行程序代碼可以為:群發(fā)郵件操作或群發(fā)短信操作等等。
[0127]步驟S503:在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷是否接收到跳轉(zhuǎn)至第一預(yù)設(shè)節(jié)點(diǎn)對(duì)象的指令,如果是,則進(jìn)入步驟S504,如果否,則進(jìn)入步驟S505 ;
[0128]步驟S504:跳轉(zhuǎn)至第一預(yù)設(shè)節(jié)點(diǎn)對(duì)象;
[0129]如圖6所示,為本發(fā)明實(shí)施例提供的一種串行工作流的示意圖,從圖中可知該串行工作流包括:節(jié)點(diǎn)對(duì)象601、節(jié)點(diǎn)對(duì)象602、節(jié)點(diǎn)對(duì)象603、節(jié)點(diǎn)對(duì)象604以及節(jié)點(diǎn)對(duì)象605,各個(gè)節(jié)點(diǎn)對(duì)象之間只有串行的路由,沒有其他路由,如果有緊急事件需要從節(jié)點(diǎn)對(duì)象601跳轉(zhuǎn)至節(jié)點(diǎn)對(duì)象605 (忽略節(jié)點(diǎn)對(duì)象602、節(jié)點(diǎn)對(duì)象603以及節(jié)點(diǎn)對(duì)象604),此時(shí)可以通過建立隱形的通用節(jié)點(diǎn)對(duì)象606,該通用節(jié)點(diǎn)對(duì)象和所有節(jié)點(diǎn)對(duì)象都相關(guān)聯(lián),所有的跳轉(zhuǎn)都可以通過該節(jié)點(diǎn)606來完成跳轉(zhuǎn)。
[0130]步驟S505:判斷是否接收到返回至第二預(yù)設(shè)節(jié)點(diǎn)對(duì)象的指令,如果是,則進(jìn)入步驟S506,如果否,則進(jìn)入步驟S507 ;
[0131]步驟S506:返回至第二預(yù)設(shè)節(jié)點(diǎn)對(duì)象;
[0132]當(dāng)節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為為審批節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)對(duì)象的最常見的指令為返回指令,節(jié)點(diǎn)行為為審批節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象有審批通過和審批不通過兩種情況,當(dāng)審批不通過時(shí),一般是返回到上一個(gè)節(jié)點(diǎn)對(duì)象,但是在某些情況下,有可能跨節(jié)點(diǎn)對(duì)象返回,例如,請(qǐng)參閱圖6,假設(shè)當(dāng)前節(jié)點(diǎn)對(duì)象為節(jié)點(diǎn)對(duì)象605,當(dāng)節(jié)點(diǎn)對(duì)象605的審批不通過時(shí),可以直接返回到節(jié)點(diǎn)對(duì)象602或節(jié)點(diǎn)對(duì)象603。而到底返回到哪個(gè)環(huán)節(jié)是可以讓用戶根據(jù)業(yè)務(wù)需求進(jìn)行選擇,假設(shè)返回至節(jié)點(diǎn)對(duì)象602,那么節(jié)點(diǎn)對(duì)象602的目標(biāo)節(jié)點(diǎn)對(duì)象也可以讓用戶選擇。例如,節(jié)點(diǎn)對(duì)象602的目標(biāo)節(jié)點(diǎn)對(duì)象可以為節(jié)點(diǎn)對(duì)象605,也可以為節(jié)點(diǎn)對(duì)象603。
[0133]在圖6所示的工作流中,由于工作流是串行的,沒有分支,因此處理起來比較簡單,只要在節(jié)點(diǎn)對(duì)象605返回節(jié)點(diǎn)對(duì)象602時(shí),建立返回線701即可,如圖7所示,為在圖6中建立的返回線701的示意圖。
[0134]如圖8所示,為本發(fā)明實(shí)施例提供的一種較為復(fù)雜的工作流流程圖,從圖中可以看出節(jié)點(diǎn)對(duì)象802與節(jié)點(diǎn)對(duì)象803是并行操作且相互獨(dú)立的,如果原來是按照節(jié)點(diǎn)對(duì)象801-節(jié)點(diǎn)對(duì)象802-節(jié)點(diǎn)對(duì)象804-節(jié)點(diǎn)對(duì)象805的路徑執(zhí)行的,當(dāng)執(zhí)行至節(jié)點(diǎn)對(duì)象805時(shí),需要返回至節(jié)點(diǎn)對(duì)象801,而節(jié)點(diǎn)對(duì)象801在進(jìn)行業(yè)務(wù)數(shù)據(jù)的修改后,需要按照原來的路徑節(jié)點(diǎn)對(duì)象801-節(jié)點(diǎn)對(duì)象802-節(jié)點(diǎn)對(duì)象804-節(jié)點(diǎn)對(duì)象805再執(zhí)行一遍,此時(shí)需要在工作流執(zhí)行過程中,記錄下執(zhí)行的路徑信息,返回時(shí)按照記錄的路徑信息執(zhí)行。
[0135]上面是以節(jié)點(diǎn)行為為審批節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象為例進(jìn)行的說明,當(dāng)節(jié)點(diǎn)行為為非審批節(jié)點(diǎn)的節(jié)點(diǎn)對(duì)象時(shí),返回過程與上述相同。
[0136]步驟S507:判斷是否接收到撤銷指令,如果是,則進(jìn)入步驟S508,如果否,則進(jìn)入步驟S509;
[0137]步驟S508:撤回當(dāng)前執(zhí)行的操作;
[0138]當(dāng)前節(jié)點(diǎn)對(duì)象在發(fā)送給目標(biāo)節(jié)點(diǎn)對(duì)象業(yè)務(wù)表單之后,發(fā)現(xiàn)業(yè)務(wù)表單中某一數(shù)據(jù)填寫錯(cuò)誤,此時(shí)在目標(biāo)節(jié)點(diǎn)對(duì)象還沒有辦理之前,可以撤回當(dāng)前節(jié)點(diǎn)對(duì)象的業(yè)務(wù)表單,在重新更正數(shù)據(jù)后,在發(fā)給目標(biāo)節(jié)點(diǎn)對(duì)象。
[0139]步驟S508具體包括:刪除目標(biāo)節(jié)點(diǎn)對(duì)象的任務(wù),修改當(dāng)前節(jié)點(diǎn)對(duì)象的運(yùn)行狀態(tài),即將當(dāng)前節(jié)點(diǎn)對(duì)象的已完成狀態(tài)更改為未完成狀態(tài)。
[0140]步驟S503、步驟S505以及步驟S507沒有先后順序,只是為了畫圖方便,所以才規(guī)定了順序,本發(fā)明實(shí)施例中這三個(gè)步驟可以是“或”的關(guān)系,也可以是任意組合,也可以是“和”的關(guān)系。
[0141]步驟S509:判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則進(jìn)入步驟S511,如果否,則進(jìn)入步驟S510 ;
[0142]步驟S510:依據(jù)所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由,獲取下一目標(biāo)節(jié)點(diǎn)對(duì)象;
[0143]步驟S511:退出所述工作流。
[0144]現(xiàn)有技術(shù)中只能按照定義的工作流的流程順序一步步執(zhí)行,當(dāng)遇到緊急事件或者只需運(yùn)行工作流中某幾個(gè)節(jié)點(diǎn)對(duì)象時(shí),如果還按照整個(gè)工作流的流程順序一步步執(zhí)行,即費(fèi)時(shí)又耽誤事情,本發(fā)明實(shí)施例,可以隨意跳轉(zhuǎn)、返回以及撤銷,可以根據(jù)需要進(jìn)行相應(yīng)的跳轉(zhuǎn)、返回以及撤銷。
[0145]上述本發(fā)明公開的實(shí)施例中詳細(xì)描述了方法,對(duì)于本發(fā)明的方法可采用多種形式的裝置實(shí)現(xiàn),因此本發(fā)明還公開了一種系統(tǒng),下面給出具體的實(shí)施例進(jìn)行詳細(xì)說明。
[0146]實(shí)施例六
[0147]請(qǐng)參閱圖9,為本發(fā)明實(shí)施例提供的一種工作流執(zhí)行系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)中的工作流的生成方法與實(shí)施例一或?qū)嵤├枋龅纳煞椒ㄒ恢拢撓到y(tǒng)可以包括:工作流命令存儲(chǔ)器901、工作流命令執(zhí)行器902以及工作流引擎903,其中:
[0148]工作流命令存儲(chǔ)器901,用于存儲(chǔ)構(gòu)建的各個(gè)工作流,且每一工作流具有一流程ID ;
[0149]工作流命令執(zhí)行器902,用于在接收到操作指令時(shí),根據(jù)所述操作指令對(duì)應(yīng)的流程ID,從所述工作流命令存儲(chǔ)器中得到所述操作指令對(duì)應(yīng)的工作流,所述操作指令包括跳轉(zhuǎn)指令、返回指令、撤銷指令以及順序執(zhí)行指令;
[0150]工作流引擎903,用于獲取所述工作流命令執(zhí)行器得到的工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象,調(diào)用所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼,以顯示所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的業(yè)務(wù)表單,并執(zhí)行與所述程序代碼相應(yīng)的操作;在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則退出所述流程,如果否,則產(chǎn)生新的操作指令,并將所述操作指令發(fā)送至所述工作流命令執(zhí)行器。
[0151]為了監(jiān)控每一節(jié)點(diǎn)對(duì)象的運(yùn)行效率,該系統(tǒng)還可以包括:工作流監(jiān)控服務(wù)器,用于監(jiān)控各個(gè)節(jié)點(diǎn)對(duì)象的運(yùn)行時(shí)間。
[0152]本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0153]結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或【技術(shù)領(lǐng)域】內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0154]對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種工作流生成方法,其特征在于,包括: 對(duì)于待構(gòu)建的工作流中每一節(jié)點(diǎn)對(duì)象執(zhí)行如下操作: 獲取所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為以及與所述節(jié)點(diǎn)行為對(duì)應(yīng)的節(jié)點(diǎn)類型,所述節(jié)點(diǎn)類型包括:人工節(jié)點(diǎn)以及自由節(jié)點(diǎn); 在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),獲取與所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單,所述業(yè)務(wù)表單、所述節(jié)點(diǎn)類型以及所述節(jié)點(diǎn)行為形成所述節(jié)點(diǎn)對(duì)象,在所述節(jié)點(diǎn)類型為自由節(jié)點(diǎn)時(shí),所述業(yè)務(wù)表單以及所述節(jié)點(diǎn)類型形成所述節(jié)點(diǎn)對(duì)象; 依據(jù)預(yù)先設(shè)定的業(yè)務(wù)處理流程以及所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為,獲得與所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由; 依據(jù)所述路由與構(gòu)建的各個(gè)節(jié)點(diǎn)對(duì)象的對(duì)應(yīng)關(guān)系,組合所述各個(gè)節(jié)點(diǎn)對(duì)象以及所述路由,以完成所述工作流的構(gòu)建,所述各個(gè)節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼位于不同的文檔中。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述獲取與所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單具體包括: 確定所述節(jié)點(diǎn)類型對(duì)應(yīng)的業(yè)務(wù)表單; 將所述業(yè)務(wù)表單關(guān)聯(lián)至所述節(jié)點(diǎn)行為。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,還包括: 在接收到完成所述工作流的構(gòu)建指示后,顯示構(gòu)建的所述工作流的流程ID對(duì)話框; 接收所述流程ID對(duì)話框中輸入的數(shù)據(jù),將所述數(shù)據(jù)作為所述工作流的流程ID。
4.根據(jù)權(quán)利要求1所述方法,其特征在于,所述工作流中還包括一通用節(jié)點(diǎn)對(duì)象,所述通用節(jié)點(diǎn)對(duì)象與所述工作流中所有節(jié)點(diǎn)對(duì)象相關(guān)聯(lián)。
5.一種工作流執(zhí)行方法,其特征在于,所述工作流生成方法如權(quán)利要求1至4任一項(xiàng)所述生成方法,包括: 獲取所述工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象; 執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼; 在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則退出所述工作流,如果否,則依據(jù)所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的路由,獲取下一目標(biāo)節(jié)點(diǎn)對(duì)象。
6.根據(jù)權(quán)利要求5所述方法,其特征在于,所述執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼具體包括: 判斷所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)類型; 在所述節(jié)點(diǎn)類型為人工節(jié)點(diǎn)時(shí),顯示所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的業(yè)務(wù)表單,并獲取所述業(yè)務(wù)表單中的數(shù)據(jù); 在所述節(jié)點(diǎn)為自由節(jié)點(diǎn)時(shí),執(zhí)行所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼的操作。
7.根據(jù)權(quán)利要求6所述方法,其特征在于,所述節(jié)點(diǎn)類型還包括:會(huì)簽節(jié)點(diǎn),所述會(huì)簽節(jié)點(diǎn)屬于人為節(jié)點(diǎn),在所述獲取所述節(jié)點(diǎn)對(duì)象之后,執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼前還包括: 判斷所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)類型; 在所述節(jié)點(diǎn)類型為會(huì)簽節(jié)點(diǎn)時(shí),接收目標(biāo)會(huì)簽值; 創(chuàng)建與所述目標(biāo)會(huì)簽值對(duì)應(yīng)數(shù)目的任務(wù),各個(gè)所述任務(wù)的狀態(tài)為未完成狀態(tài),將完成狀態(tài)任務(wù)參數(shù)設(shè)置為零; 在接收到處理一所述任務(wù)的請(qǐng)求時(shí),執(zhí)行與所述節(jié)點(diǎn)對(duì)象的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼的操作; 相應(yīng)的,在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示之前還包括: 在檢測(cè)到某一所述任務(wù)被完成時(shí),將所述任務(wù)的狀態(tài)更改為完成狀態(tài),并將所述完成狀態(tài)任務(wù)參數(shù)加I ; 當(dāng)所述完成狀態(tài)任務(wù)參數(shù)的值與所述目標(biāo)會(huì)簽值相等時(shí),產(chǎn)生所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示。
8.根據(jù)權(quán)利要求5或6所述方法,其特征在于,在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為之前還包括: 判斷是否接收到跳轉(zhuǎn)至第一預(yù)設(shè)節(jié)點(diǎn)對(duì)象的指令,如果是,則跳轉(zhuǎn)至所述第一預(yù)設(shè)節(jié)點(diǎn)對(duì)象; 和/或, 判斷是否接收到返回至第二預(yù)設(shè)節(jié)點(diǎn)對(duì)象的指令,如果是,則返回至所述第二預(yù)設(shè)節(jié)點(diǎn)對(duì)象; 和/或, 判斷是否接收到撤銷指令, 如果是,則撤回當(dāng)前執(zhí)行的操作; 在上述判斷結(jié)果均為否的情況下,執(zhí)行判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為的操作。
9.一種工作流執(zhí)行系統(tǒng),其特征在于,包括: 工作流命令存儲(chǔ)器,用于存儲(chǔ)構(gòu)建的各個(gè)工作流,且每一工作流具有一流程ID ; 工作流命令執(zhí)行器,用于在接收到操作指令時(shí),根據(jù)所述操作指令對(duì)應(yīng)的流程ID,從所述工作流命令存儲(chǔ)器中得到所述操作指令對(duì)應(yīng)的工作流,所述操作指令包括跳轉(zhuǎn)指令、返回指令、撤銷指令以及順序執(zhí)行指令; 工作流引擎,用于獲取所述工作流命令執(zhí)行器得到的工作流中當(dāng)前需要運(yùn)行的節(jié)點(diǎn)對(duì)象,調(diào)用所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為對(duì)應(yīng)的程序代碼,以顯示所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的業(yè)務(wù)表單,并執(zhí)行與所述程序代碼相應(yīng)的操作;在接收到所述節(jié)點(diǎn)對(duì)象運(yùn)行完畢的指示后,判斷所述節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)行為是否為結(jié)束行為,如果是,則退出所述流程,如果否,則產(chǎn)生新的操作指令,并將所述操作指令發(fā)送至所述工作流命令執(zhí)行器。
10.根據(jù)權(quán)利要求9所述系統(tǒng),其特征在于,還包括: 工作流監(jiān)控服務(wù)器,用于監(jiān)控各個(gè)節(jié)點(diǎn)對(duì)象的運(yùn)行時(shí)間。
【文檔編號(hào)】G06Q10/06GK103577906SQ201210254787
【公開日】2014年2月12日 申請(qǐng)日期:2012年7月20日 優(yōu)先權(quán)日:2012年7月20日
【發(fā)明者】于海青 申請(qǐng)人:杭州勒卡斯廣告策劃有限公司