本發(fā)明涉及軟件開(kāi)發(fā)領(lǐng)域,尤其涉及一種基于xml和flash技術(shù)棧引擎的工作流程。
背景技術(shù):
目前很多行業(yè)都有配套的窗口柜臺(tái)服務(wù),如銀行網(wǎng)點(diǎn),票務(wù)銷售,或是標(biāo)準(zhǔn)化的工作流程體系,如工業(yè)制造的生產(chǎn)線,連鎖咖啡店的咖啡師。這些行業(yè)的相關(guān)崗位都需要根據(jù)標(biāo)準(zhǔn)化的流程進(jìn)行工作,以確保整個(gè)生產(chǎn)服務(wù)鏈有序運(yùn)作,確保服務(wù)或產(chǎn)品保持一致的質(zhì)量。因此針對(duì)不同行業(yè)不同崗位的數(shù)字化培訓(xùn),必須根據(jù)實(shí)際需求,進(jìn)行定制化開(kāi)發(fā),每個(gè)企業(yè)都有自己的流程需求,即便是相同行業(yè)下的不同企業(yè),也存在著巨大的差異。這必將導(dǎo)致培訓(xùn)解決方案提供方(軟件企業(yè))在開(kāi)展不同客戶業(yè)務(wù)的同時(shí),產(chǎn)生大量的軟件開(kāi)發(fā)勞動(dòng)。
場(chǎng)景1:工業(yè)制造的車間流水線上的工作人員,他們的工作是安全合規(guī)的操作機(jī)床,各種設(shè)備,監(jiān)控機(jī)器運(yùn)作等,有時(shí)還需要在車間里走動(dòng)。而銀行網(wǎng)點(diǎn)柜員的柜員,則是端坐在柜臺(tái)里,受理客戶的各類銀行業(yè)務(wù)。工業(yè)和銀行業(yè),是完全兩種不同的行業(yè),對(duì)于這樣的崗位培訓(xùn),我們幾乎無(wú)法采用一致的軟件系統(tǒng)來(lái)實(shí)現(xiàn)數(shù)字化培訓(xùn)的需求。
場(chǎng)景2:肯德基的柜臺(tái)工作人員的工作流程是:接單->下單,錄入交易系統(tǒng)->收銀,錄入交易系統(tǒng)->離開(kāi)柜臺(tái)為客人配餐–>送餐->完成訂單;
而麥當(dāng)勞的柜臺(tái)工作人員的工作流程是:接單->下單,錄入交易系統(tǒng)->收銀,錄入交易系統(tǒng)->指引客人在一旁等待->接單->….(當(dāng)配餐工作人員完成配餐后,指引客人取餐,完成這一訂單)
由上述流程可以看出,同是餐飲行業(yè),兩家企業(yè)的同崗位人員的工作流程雖然有相似之處,但也存在著差異。而軟件企業(yè)在實(shí)際的培訓(xùn)系統(tǒng)開(kāi)發(fā)過(guò)程中,即便軟件工程師采用相同系統(tǒng)底層的框架進(jìn)行開(kāi)發(fā),但是在實(shí)現(xiàn)具體的流程細(xì)節(jié)上,卻要根據(jù)客戶需求做大量的定制化開(kāi)發(fā),也就意味著大量的 代碼修改和程序編譯,并由此產(chǎn)生一系列的軟件開(kāi)發(fā)問(wèn)題,如軟件測(cè)試成本增加,項(xiàng)目管理成本增加等。
技術(shù)實(shí)現(xiàn)要素:
鑒于目前技術(shù)存在的上述不足,本發(fā)明提供一種基于xml和flash技術(shù)棧引擎的工作流程,本發(fā)明可以在不改變現(xiàn)存系統(tǒng)的代碼和邏輯的條件下,滿足各行業(yè)中擁有標(biāo)準(zhǔn)化流程崗位的數(shù)字化培訓(xùn)和數(shù)字化管理。采用本發(fā)明可以減少行業(yè)軟件的開(kāi)發(fā)成本,降低研發(fā)風(fēng)險(xiǎn),當(dāng)實(shí)際業(yè)務(wù)發(fā)生變更時(shí),不需要改動(dòng)軟件代碼,通過(guò)數(shù)據(jù)變動(dòng)來(lái)推進(jìn)it系統(tǒng)的更新,實(shí)現(xiàn)高效快速的軟件系統(tǒng)迭代。
本發(fā)明的采用如下技術(shù)方案:
一種基于xml和flash技術(shù)棧引擎的工作流程,包括以下步驟:
根據(jù)業(yè)務(wù)需求編寫(xiě)流程模塊并發(fā)布到流程庫(kù);
將流程模塊使用xml數(shù)據(jù)結(jié)構(gòu)組裝成完整的流程腳本;
解析流程腳本并從流程庫(kù)中查找相應(yīng)的流程模塊;
在工作流引擎運(yùn)行一個(gè)新業(yè)務(wù)時(shí)經(jīng)過(guò)流程腳本解析的流程模塊被動(dòng)態(tài)加載到引擎里來(lái)提供業(yè)務(wù)流服務(wù)。
作為本發(fā)明的優(yōu)選技術(shù)方案,所述根據(jù)業(yè)務(wù)需求編寫(xiě)流程模塊并發(fā)布到流程庫(kù)的步驟中,所述流程庫(kù)為所有獨(dú)立流程模塊的集合,使用adobeflash技術(shù)棧進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),所述adobeflash技術(shù)棧包括adobeactionscript3.0腳本語(yǔ)言和adobeflash動(dòng)畫(huà)技術(shù)。
作為本發(fā)明的優(yōu)選技術(shù)方案,所述將流程模塊使用xml數(shù)據(jù)結(jié)構(gòu)組裝成完整的流程腳本的步驟中,所述流程腳本用于描述流程模塊之間的順序、依賴和包容關(guān)系。
作為本發(fā)明的優(yōu)選技術(shù)方案,所述在工作流引擎運(yùn)行一個(gè)新業(yè)務(wù)時(shí)經(jīng)過(guò)流程腳本解析的流程模塊被動(dòng)態(tài)加載到引擎里來(lái)提供業(yè)務(wù)流服務(wù)的步驟中,所述工作流引擎作為中間件嵌入到各個(gè)oa系統(tǒng)、erp系統(tǒng)、數(shù)字化培 訓(xùn)系統(tǒng)中。
作為本發(fā)明的優(yōu)選技術(shù)方案,所述流程庫(kù)向工作流引擎開(kāi)放了接口,用于引擎在解析xml流程腳本時(shí)從流程庫(kù)中查找相應(yīng)的流程模塊。
作為本發(fā)明的優(yōu)選技術(shù)方案,所述工作流引擎作為中間件嵌入外層系統(tǒng),提供業(yè)務(wù)流服務(wù)。
作為本發(fā)明的優(yōu)選技術(shù)方案,所述工作流引擎中workflowrunner組件,用于流程模塊加載、流程定義數(shù)據(jù)解析、代碼組件映射和內(nèi)存對(duì)象管理。
作為本發(fā)明的優(yōu)選技術(shù)方案,所述工作流引擎同時(shí)管理和校驗(yàn)一個(gè)流程模塊,當(dāng)輸入正確時(shí),workflowrunner則將輸入信息推送至當(dāng)前流程模塊,讓流程模塊映射的代碼執(zhí)行業(yè)務(wù)邏輯,并輸出結(jié)果;當(dāng)結(jié)果為正確時(shí),workflowrunner則自動(dòng)銷毀當(dāng)前流程模塊,并載入下一個(gè)流程模塊,繼續(xù)等待用戶輸入,直至完成所有流程模塊。
本發(fā)明的一種基于xml和flash技術(shù)棧引擎的工作流程,包括以下步驟:根據(jù)業(yè)務(wù)需求編寫(xiě)流程模塊并發(fā)布到流程庫(kù);將流程模塊使用xml數(shù)據(jù)結(jié)構(gòu)組裝成完整的流程腳本;解析流程腳本并從流程庫(kù)中查找相應(yīng)的流程模塊;在工作流引擎運(yùn)行一個(gè)新業(yè)務(wù)時(shí)經(jīng)過(guò)流程腳本解析的流程模塊被動(dòng)態(tài)加載到引擎里來(lái)提供業(yè)務(wù)流服務(wù),本發(fā)明可以在不改變現(xiàn)存系統(tǒng)的代碼和邏輯的條件下,滿足各行業(yè)中擁有標(biāo)準(zhǔn)化流程崗位的數(shù)字化培訓(xùn)和數(shù)字化管理。采用本發(fā)明可以減少行業(yè)軟件的開(kāi)發(fā)成本,降低研發(fā)風(fēng)險(xiǎn),當(dāng)實(shí)際業(yè)務(wù)發(fā)生變更時(shí),不需要改動(dòng)軟件代碼,通過(guò)數(shù)據(jù)變動(dòng)來(lái)推進(jìn)it系統(tǒng)的更新,實(shí)現(xiàn)高效快速的軟件系統(tǒng)迭代。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明具體實(shí)施的流程。
圖2為本發(fā)明中xml流程定義腳本文件的數(shù)據(jù)結(jié)構(gòu)示意圖。
圖3為本發(fā)明中工作流引擎的具體實(shí)現(xiàn)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1-圖3所示,本發(fā)明提供一種基于xml和flash技術(shù)棧引擎的工作流程,包括以下步驟:
步驟s1:根據(jù)業(yè)務(wù)需求編寫(xiě)流程模塊并發(fā)布到流程庫(kù),其中流程庫(kù)為所有獨(dú)立流程模塊的集合,使用adobeflash技術(shù)棧進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),所述adobeflash技術(shù)棧包括adobeactionscript3.0腳本語(yǔ)言和adobeflash動(dòng)畫(huà)技術(shù),以及軟件開(kāi)發(fā)人員根據(jù)具體業(yè)務(wù)需求編寫(xiě)流程模塊,并發(fā)布到流程庫(kù)里,等待被使用,其中所謂流程模塊即由軟件開(kāi)發(fā)人員抽象出來(lái)的具體的某一件事情,比如銀行柜員辦理業(yè)務(wù)時(shí),需要對(duì)客戶存的現(xiàn)金進(jìn)行點(diǎn)鈔確認(rèn)金額操作,那么我們即認(rèn)為“點(diǎn)鈔”就是一個(gè)獨(dú)立的流程模塊;同理,銀行柜員在辦理業(yè)務(wù)時(shí)還需要操作交易系統(tǒng),那么“操作交易系統(tǒng)”這件事,也被抽象成一個(gè)獨(dú)立的流程模塊,由于流程模塊是獨(dú)立存在和工作的,因此我們可以像搭積木一樣,將各種流程模塊進(jìn)行組合,由此實(shí)現(xiàn)各種業(yè)務(wù)流程需求。
步驟s2:參照?qǐng)D2,將流程模塊使用xml數(shù)據(jù)結(jié)構(gòu)組裝成完整的流程腳本,其中流程腳本用于描述流程模塊之間的順序、依賴和包容關(guān)系,具體為軟件開(kāi)發(fā)人員根據(jù)具體業(yè)務(wù)需求,將零散的流程模塊使用xml數(shù)據(jù)結(jié)構(gòu),組裝成完整的流程腳本,其中xml流程定義腳本文件,是用來(lái)向流程引 擎描述一個(gè)業(yè)務(wù)是如何工作的,即描述了流程模塊之間的順序關(guān)系,依賴和包容關(guān)系。例如銀行柜員辦理存款業(yè)務(wù)其中流程為:點(diǎn)鈔->操作交易系統(tǒng)->打印存款回執(zhí)單->把現(xiàn)金收入錢箱->將回執(zhí)單遞交客戶->和客戶道別,完成業(yè)務(wù)受理,xml流程定義腳本文件即把上述的流程用xml數(shù)據(jù)結(jié)構(gòu)的方式描述出來(lái),定義了點(diǎn)鈔為第一個(gè)流程,定義了和客戶道別為最后一個(gè)流程,在圖2中可看出,一個(gè)完整的流程是由多個(gè)流程塊即流程模塊組成的,流程模塊之間存在前后順序關(guān)系,依賴和層級(jí)關(guān)系。也就是說(shuō)通過(guò)xml數(shù)據(jù)驅(qū)動(dòng)軟件業(yè)務(wù)邏輯變動(dòng)。
步驟s3:解析流程腳本并從流程庫(kù)中查找相應(yīng)的流程模塊,具體為流程模塊庫(kù)向工作流引擎開(kāi)放了接口,用于引擎在解析xml流程腳本時(shí)從流程庫(kù)中查找相應(yīng)的流程模塊,其中每一個(gè)流程模塊的定義,包括了流程名字,描述,順序編碼,參數(shù)變量,執(zhí)行規(guī)則,校驗(yàn)規(guī)則,交互反饋信息。
步驟s4:參照?qǐng)D3,在工作流引擎運(yùn)行一個(gè)新業(yè)務(wù)時(shí)經(jīng)過(guò)流程腳本解析的流程模塊被動(dòng)態(tài)加載到引擎里來(lái)提供業(yè)務(wù)流服務(wù),其中工作流引擎作為中間件嵌入到各個(gè)oa系統(tǒng)、erp系統(tǒng)、數(shù)字化培訓(xùn)系統(tǒng)中,具體為工作流引擎,是本發(fā)明的核心部分,adobeactionscript3.0腳本語(yǔ)言實(shí)現(xiàn)。工作流引擎是剝離了具體業(yè)務(wù)邏輯的底層系統(tǒng),該引擎只關(guān)心流程模塊庫(kù)和xml流程定義腳本,可以作為中間件嵌入到各個(gè)oa系統(tǒng),erp系統(tǒng)或是數(shù)字化培訓(xùn)系統(tǒng)。
在本發(fā)明中,整個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程,開(kāi)發(fā)人員無(wú)需關(guān)系系統(tǒng)底層如何實(shí)現(xiàn)和運(yùn)作,僅需要根據(jù)框架規(guī)范和業(yè)務(wù)需求,制作相應(yīng)組件,再使用xml進(jìn)行拼裝,因此本技術(shù)方案大量的減少了軟件開(kāi)發(fā)的時(shí)間,讓軟件開(kāi)發(fā)人員專注于實(shí)現(xiàn)業(yè)務(wù);避免對(duì)系統(tǒng)底層進(jìn)行修改,因此項(xiàng)目的開(kāi)發(fā)和交付不需要對(duì)系統(tǒng)進(jìn)行編譯,大大減少了系統(tǒng)的風(fēng)險(xiǎn)。
在本發(fā)明中,工作流引擎作為中間件嵌入外層系統(tǒng),提供業(yè)務(wù)流服務(wù),其中外層系統(tǒng),面向最終用戶,嵌入工作流引擎實(shí)現(xiàn)具體業(yè)務(wù)流程運(yùn)作,從而最終用戶在系統(tǒng)上使用工作流,滿足各種標(biāo)準(zhǔn)業(yè)務(wù)流程培訓(xùn)。
在本發(fā)明中,標(biāo)準(zhǔn)化的業(yè)務(wù)流程是必須一步一步執(zhí)行的,流程中還可以分出小的流程,一個(gè)流程模塊里還可以定義多個(gè)流程模塊,只有完成了其下屬的流程模塊,該流程模塊才算完成,業(yè)務(wù)流程進(jìn)度才會(huì)繼續(xù)往下推進(jìn)。
在本發(fā)明中,參照?qǐng)D3所示,其描述了本發(fā)明中工作流引擎的實(shí)現(xiàn)原理和工作方式:其中workflowrunner是核心組件,負(fù)責(zé)流程模塊加載,流程定義數(shù)據(jù)解析,代碼組件映射,內(nèi)存對(duì)象管理,工作流引擎同時(shí)只管理和校驗(yàn)一個(gè)流程模塊,當(dāng)輸入正確時(shí),workflowrunner則將輸入信息推送至當(dāng)前流程模塊,讓流程模塊映射的代碼執(zhí)行業(yè)務(wù)邏輯,并輸出結(jié)果;當(dāng)結(jié)果為正確時(shí),workflowrunner則自動(dòng)銷毀當(dāng)前流程模塊,并載入下一個(gè)流程模塊,繼續(xù)等待用戶輸入,直至完成所有流程模塊。
綜上所述,本發(fā)明一種基于xml和flash技術(shù)棧引擎的工作流程,包括以下步驟:根據(jù)業(yè)務(wù)需求編寫(xiě)流程模塊并發(fā)布到流程庫(kù);將流程模塊使用xml數(shù)據(jù)結(jié)構(gòu)組裝成完整的流程腳本;解析流程腳本并從流程庫(kù)中查找相應(yīng)的流程模塊;在工作流引擎運(yùn)行一個(gè)新業(yè)務(wù)時(shí)經(jīng)過(guò)流程腳本解析的流程模塊被動(dòng)態(tài)加載到引擎里來(lái)提供業(yè)務(wù)流服務(wù),本發(fā)明可以在不改變現(xiàn)存系統(tǒng)的代碼和邏輯的條件下,滿足各行業(yè)中擁有標(biāo)準(zhǔn)化流程崗位的數(shù)字化培訓(xùn)和數(shù)字化管理。采用本發(fā)明可以減少行業(yè)軟件的開(kāi)發(fā)成本,降低研發(fā)風(fēng)險(xiǎn),當(dāng)實(shí)際業(yè)務(wù)發(fā)生變更時(shí),不需要改動(dòng)軟件代碼,通過(guò)數(shù)據(jù)變動(dòng)來(lái)推進(jìn)it系統(tǒng)的更新,實(shí)現(xiàn)高效快速的軟件系統(tǒng)迭代。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本領(lǐng)域技術(shù)的技術(shù)人員在本發(fā)明公開(kāi)的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。