本申請涉及網站開發(fā)及應用技術領域,尤其涉及一種流程引擎實現(xiàn)方法及流程引擎系統(tǒng)。
背景技術:
為保證業(yè)務系統(tǒng)中業(yè)務流程的高效執(zhí)行,需要通過相應的流程引擎來控制相關組件的協(xié)調工作,使得業(yè)務流程中的信息存儲、權限、審批、消息通知等按照一定的過程規(guī)則流轉,實現(xiàn)業(yè)務流程的全部或部分自動化。例如,對于網站運營業(yè)務,當運營人員編輯一項數(shù)據(jù)后,流程引擎則啟動審批流程,判斷審核編輯后的數(shù)據(jù)是否符合預設權限,如果符合,則審批通過,編輯生效,反之審批不通過,相應數(shù)據(jù)被恢復至編輯前的狀態(tài),從而可以避免因錯誤或不合理的編輯導致數(shù)據(jù)異常、網站運營異常等現(xiàn)象發(fā)生。
現(xiàn)有流程引擎的實現(xiàn)方法及流程引擎系統(tǒng)通常以功能為核心,提供相應的業(yè)務流程相關的全部功能的引擎,如流程模型的定義、流程定義信息的解析裝載、數(shù)據(jù)信息的存儲及查詢、流程步驟的跳轉控制等。但由于同一功能在不同業(yè)務流程中的具體執(zhí)行形式不盡相同,故需要針對具體的業(yè)務流程開發(fā)專用的功能實現(xiàn)代碼,且不可復用,導致其流程引擎開發(fā)工作量大、成本高、兼容性及擴展性差,難以與不同公司不同業(yè)務系統(tǒng)集成。
技術實現(xiàn)要素:
為克服相關技術中存在的問題,本申請?zhí)峁┮环N流程引擎實現(xiàn)方法及流程引擎系統(tǒng)。
本申請第一方面提供一種流程引擎實現(xiàn)方法;該方法應用于流程引擎系統(tǒng),包括:
針對業(yè)務流程相關的各個公共流程節(jié)點,分別設置對應的用于記錄默認的處理邏輯及屬性信息的默認配置文件;其中,所述公共流程節(jié)點至少包括:流程定義加載節(jié)點、消息通知節(jié)點、權限管理節(jié)點和流程數(shù)據(jù)存儲節(jié)點;
針對各個公共流程節(jié)點和非公共流程節(jié)點,分別判斷是否存在對應的用于記錄用戶擴展的處理邏輯及屬性信息的擴展配置文件;
對于存在所述擴展配置文件的流程節(jié)點,加載所述擴展配置文件,以激活相應的流程節(jié)點;
對于不存在所述擴展配置文件的流程節(jié)點,加載對應的默認配置文件,以激活相應的流程節(jié)點。
結合第一方面,在第一方面的第一種可行的實施方式中,所述流程引擎實現(xiàn)方法還包括:
根據(jù)業(yè)務需求設置流程定義文件,并將所述流程定義文件存儲于預設存儲路徑對應的文件存儲區(qū)域;
在激活所述流程定義加載節(jié)點后,獲取已加載的所述流程定義加載節(jié)點對應的配置文件中的文件名定義正則表達式;
掃描預設存儲路徑對應的文件存儲區(qū)域,查找并緩存文件名與所述文件名定義正則表達式相匹配的流程定義文件;
根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作。
結合第一方面的第一種可行的實施方式,在第一方面的第二種可行的實施方式中,所述根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,包括:
根據(jù)所述流程定義文件中配置的默認鑒權邏輯執(zhí)行鑒權操作,并在鑒權對象滿足所述默認鑒權邏輯中的任一種時,判定鑒權通過;
其中,所述默認鑒權邏輯包括以下至少一種:基于角色配置的第一鑒權邏輯、基于權限關鍵字配置的第二鑒權邏輯,以及,基于用戶標識配置的第三鑒權邏輯。
結合第一方面的第一種可行的實施方式,在第一方面的第三種可行的實施方式中,所述根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,包括:
在執(zhí)行審批操作前,判斷是否存在前置擴展文件;
如果存在所述前置擴展文件,則根據(jù)所述前置擴展文件執(zhí)行對應的前置擴展操作,否則根據(jù)所述流程定義文件執(zhí)行默認前置操作;
在完成審批操作后,判斷是否存在后置擴展文件;
如果存在所述后置擴展文件,則根據(jù)所述后置擴展文件執(zhí)行對應的后置擴展操作,否則根據(jù)所述流程定義文件執(zhí)行默認后置操作。
結合第一方面的第一種可行的實施方式,在第一方面的第四種可行的實施方式中,所述根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,包括:
在執(zhí)行數(shù)據(jù)存儲操作時,將業(yè)務流程相關的業(yè)務數(shù)據(jù)存儲于對應的業(yè)務表格,并在業(yè)務流程的相應執(zhí)行階段標記各個業(yè)務數(shù)據(jù)對應的條目標識碼。
結合第一方面的第一種可行的實施方式,在第一方面的第五種可行的實施方式中, 所述根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,包括:
在執(zhí)行消息通知操作時,將待通知的原始消息通過預設通知接口輸出,以便根據(jù)所述原始消息和用戶自定義的消息處理邏輯確定實際消息的標題及內容。
結合第一方面,或者第一方面的第一種可行的實施方式,在第一方面的第六種可行的實施方式中,所述流程引擎實現(xiàn)方法還包括:
針對業(yè)務相關的各項可視化數(shù)據(jù),設置對應的注解信息;所述注解信息包括以下至少一種:題頭內容、顯示標記、列序號、列類型;
在執(zhí)行審批頁面數(shù)據(jù)展示操作時,查找并解析各個屬性對應的注解信息;
遍歷待展示數(shù)據(jù),根據(jù)所述注解信息確定每項數(shù)據(jù)的各項屬性對應的屬性值;
將解析出的題頭內容、各項屬性的屬性及屬性值發(fā)送至展示前臺。
本申請第二方面提供一種流程引擎系統(tǒng);該系統(tǒng)包括:
第一配置單元,用于針對業(yè)務流程相關的各個公共流程節(jié)點,分別設置對應的用于記錄默認的處理邏輯及屬性信息的默認配置文件;其中,所述公共流程節(jié)點至少包括:流程定義加載節(jié)點、消息通知節(jié)點、權限管理節(jié)點和流程數(shù)據(jù)存儲節(jié)點;
擴展判斷單元,用于針對各個公共流程節(jié)點和非公共流程節(jié)點,分別判斷是否存在對應的用于記錄用戶擴展的處理邏輯及屬性信息的擴展配置文件;
配置加載單元,用于對于存在所述擴展配置文件的流程節(jié)點,加載所述擴展配置文件,以激活相應的流程節(jié)點,對于不存在所述擴展配置文件的流程節(jié)點,加載對應的默認配置文件,以激活相應的流程節(jié)點。
結合第二方面,在第二方面的第一種可行的實施方式中,所述流程引擎系統(tǒng)還包括:
第二配置單元,用于根據(jù)業(yè)務需求設置流程定義文件,并將所述流程定義文件存儲于預設存儲路徑對應的文件存儲區(qū)域;
文件查找單元,用于在激活所述流程定義加載節(jié)點后,獲取已加載的所述流程定義加載節(jié)點對應的配置文件中的文件名定義正則表達式,掃描預設存儲路徑對應的文件存儲區(qū)域,查找并緩存文件名與所述文件名定義正則表達式相匹配的流程定義文件;
執(zhí)行單元,用于根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作。
結合第二方面的第一種可行的實施方式,在第二方面的第二種可行的實施方式中,所述執(zhí)行單元包括:鑒權單元,用于根據(jù)所述流程定義文件中配置的默認鑒權邏輯執(zhí)行鑒權操作,并在鑒權對象滿足所述默認鑒權邏輯中的任一種時,判定鑒權通過;
其中,所述默認鑒權邏輯包括以下至少一種:基于角色配置的第一鑒權邏輯、基于 權限關鍵字配置的第二鑒權邏輯,以及,基于用戶標識配置的第三鑒權邏輯。
結合第二方面的第一種可行的實施方式,在第二方面的第三種可行的實施方式中,所述執(zhí)行單元包括:審批執(zhí)行單元;
所述審批執(zhí)行單元用于,在執(zhí)行審批操作前,判斷是否存在前置擴展文件,如果存在所述前置擴展文件,則根據(jù)所述前置擴展文件執(zhí)行對應的前置擴展操作,否則根據(jù)所述流程定義文件執(zhí)行默認前置操作;在完成審批操作后,判斷是否存在后置擴展文件,如果存在所述后置擴展文件,則根據(jù)所述后置擴展文件執(zhí)行對應的后置擴展操作,否則根據(jù)所述流程定義文件執(zhí)行默認后置操作。
結合第二方面的第一種可行的實施方式,在第二方面的第四種可行的實施方式中,所述執(zhí)行單元包括:
數(shù)據(jù)存儲單元,用于將業(yè)務流程相關的業(yè)務數(shù)據(jù)存儲于對應的業(yè)務表格,并在業(yè)務流程的相應執(zhí)行階段標記各個業(yè)務數(shù)據(jù)對應的條目標識碼。
結合第二方面的第一種可行的實施方式,在第二方面的第五種可行的實施方式中,所述執(zhí)行單元包括:
消息通知單元,用于將待通知的原始消息通過預設通知接口輸出,以便根據(jù)所述原始消息和用戶自定義的消息處理邏輯確定實際消息的標題及內容。
結合第二方面,或者第二方面的第一種可行的實施方式,在第二方面的第六種可行的實施方式中,所述流程引擎系統(tǒng)還包括:
注解設置單元,用于針對業(yè)務相關的各項可視化數(shù)據(jù),設置對應的注解信息;所述注解信息包括以下至少一種:題頭內容、顯示標記、列序號、列類型;
數(shù)據(jù)展示單元,用于查找并解析各個屬性對應的注解信息,遍歷待展示數(shù)據(jù),根據(jù)所述注解信息確定每項數(shù)據(jù)的各項屬性對應的屬性值,將解析出的題頭內容、各項屬性的屬性及屬性值發(fā)送至展示前臺。
由以上技術方案可知,本申請實施例預先為公共流程節(jié)點設置默認配置文件,在需要啟動流程引擎系統(tǒng)以執(zhí)行業(yè)務流程控制時,優(yōu)先加載各個流程節(jié)點的擴展配置文件,對于不存在對應的擴展配置文件的公共流程節(jié)點,則直接加載對應的默認配置文件,既可以保證流程引擎的基本實現(xiàn),又可以通過擴展配置文件實現(xiàn)流程引擎的個性化,滿足不同業(yè)務流程的具體需求。因此,本申請實施例提供的流程引擎實現(xiàn)方法具備高度可擴展性,可以兼容不同業(yè)務系統(tǒng)的業(yè)務流程,不再需要針對不同的業(yè)務流程開發(fā)不同的流程引擎,從而可以減少流程引擎的開發(fā)成本,降低流程引擎的維護難度。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能 限制本申請。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是本申請實施例提供的一種流程引擎實現(xiàn)方法的流程圖。
圖2是本申請另一實施例提供的一種流程引擎實現(xiàn)方法的流程圖。
圖3是本申請實施例提供的一種流程引擎實現(xiàn)方法中根據(jù)流程定義文件執(zhí)行審批操作的方法流程圖。
圖4是本申請實施例提供的一種流程引擎實現(xiàn)方法中執(zhí)行審批頁面數(shù)據(jù)展示的方法流程圖。
圖5是本申請實施例提供的一種流程引擎系統(tǒng)的框圖。
圖6是本申請實施例提供的另一種流程引擎系統(tǒng)的框圖。
圖7是本申請實施例提供的又一種流程引擎系統(tǒng)的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1為本申請實施例提供的一種流程引擎實現(xiàn)方法的流程圖,該方法應用于流程引擎系統(tǒng)。如圖1所示,該方法包括以下步驟。
S11、設置業(yè)務流程相關的各個公共流程節(jié)點對應的默認配置文件。
其中,上述默認配置文件用于記錄默認的處理邏輯及屬性信息。
本申請實施例中,業(yè)務流程中的各個流程節(jié)點可分為兩類,即公共流程節(jié)點和非公共流程節(jié)點;其中,公共流程節(jié)點是指不同業(yè)務流程中所共有的流程節(jié)點,其對應的配置文件可復用于不同的業(yè)務流程中;非公共流程節(jié)點即只存在于某個特定的業(yè)務流程中的流程節(jié)點。上述公共流程節(jié)點包括但不限于以下四種:流程定義加載節(jié)點、消息通知節(jié)點、權限管理節(jié)點和流程數(shù)據(jù)存儲節(jié)點。
S12、針對業(yè)務流程相關的各個公共流程節(jié)點和非公共流程節(jié)點,分別判斷是否存在對應的擴展配置文件,如果存在,則執(zhí)行步驟S13,否則執(zhí)行步驟S14。
其中,上述擴展配置文件用于記錄用戶擴展的處理邏輯及屬性信息。
S13、對于存在所述擴展配置文件的流程節(jié)點,加載所述擴展配置文件,以激活相應的流程節(jié)點。
S14、對于不存在所述擴展配置文件的流程節(jié)點,加載對應的默認配置文件,以激活相應的流程節(jié)點。
根據(jù)本申請實施例,由于非公共流程節(jié)點與具體的業(yè)務流程相關,不可預知,無法設置默認配置文件,故開發(fā)人員可根據(jù)具體的業(yè)務流程設置對應的擴展配置文件,從而在執(zhí)行步驟S12和S13后,相應的擴展配置文件被加載,滿足具體業(yè)務流程個性需求的非公共流程節(jié)點被激活。對于公共流程節(jié)點,可以直接采用默認配置文件,也可以在必要時根據(jù)實際需求為公共流程節(jié)點設置對應的擴展配置文件,并通過步驟S12使得該擴展配置文件優(yōu)先于默認配置文件被加載。
由以上技術方案可知,本申請實施例預先為公共流程節(jié)點設置默認配置文件,在需要啟動流程引擎系統(tǒng)以執(zhí)行業(yè)務流程控制時,優(yōu)先加載各個流程節(jié)點的擴展配置文件,對于不存在對應的擴展配置文件的公共流程節(jié)點,則直接加載對應的默認配置文件,既可以保證流程引擎的基本實現(xiàn),又可以通過擴展配置文件實現(xiàn)流程引擎的個性化,滿足不同業(yè)務流程的具體需求。因此,本申請實施例提供的流程引擎實現(xiàn)方法具備高度可擴展性,可以兼容不同業(yè)務系統(tǒng)的業(yè)務流程,不再需要針對不同的業(yè)務流程開發(fā)不同的流程引擎,從而可以減少流程引擎的開發(fā)成本,降低流程引擎的維護難度。
圖2為本申請實施例提供的另一種流程引擎實現(xiàn)方法的流程圖,該方法應用于流程引擎系統(tǒng)。如圖2所示,該方法包括以下步驟。
S21、分別設置各個公共流程節(jié)點對應的默認配置文件,并根據(jù)業(yè)務需求設置流程定義文件,將所述流程定義文件存儲于預設存儲路徑對應的文件存儲區(qū)域。
其中,上述默認配置文件用于記錄默認的處理邏輯及屬性信息。
流程定義文件用于記錄全部流程的定義,既包括業(yè)務流程的公共信息,也可以包括開發(fā)人員根據(jù)實際應用需求設置的擴展信息。
S22、針對業(yè)務流程相關的各個公共流程節(jié)點和非公共流程節(jié)點,分別判斷是否存在對應的擴展配置文件,如果存在,則執(zhí)行步驟S13,否則執(zhí)行步驟S14。
其中,上述擴展配置文件用于記錄用戶擴展的處理邏輯及屬性信息。
S23、對于存在所述擴展配置文件的流程節(jié)點,加載所述擴展配置文件,以激活相應的流程節(jié)點,并執(zhí)行步驟S25。
S24、對于不存在所述擴展配置文件的流程節(jié)點,加載對應的默認配置文件,以激 活相應的流程節(jié)點,并執(zhí)行步驟S25。
S25、在激活所述流程定義加載節(jié)點后,獲取已加載的所述流程定義加載節(jié)點對應的配置文件中的文件名定義正則表達式。
S26、掃描預設存儲路徑對應的文件存儲區(qū)域,查找并緩存文件名與所述文件名定義正則表達式相匹配的流程定義文件。
正則表達式實質為一種對字符串操作的邏輯公式,即用預設的特定字符、及這些特定字符的組合,組成一個規(guī)則字符串,通過規(guī)則字符串來對其他字符串進行篩選、過濾;結合本申請實施例,即將上述文件名定義正則表達式中的規(guī)則字符串,分別與文件存儲區(qū)域中各個流程定義文件的文件名進行匹配,篩選出匹配成功的流程定義文件,以執(zhí)行步驟S27。其中,上述文件名定義正則表達式記錄于流程定義加載節(jié)點對應的配置文件中。
本申請實施例中,預設存儲路徑可以根據(jù)應用需求設置及修改,從而改變被掃描的文件存儲區(qū)域,即無論經過流程定義文件可以存儲于任一可訪問存儲區(qū)域,只需在掃描前將其路徑設置為預設存儲路徑,即可掃描到其中存儲的流程定義文件。因此,本申請實施例具有高度可擴展性。
S27、根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作。
由于流程定義文件中不僅記錄了業(yè)務流程的公共信息,還可以記錄擴展信息,因此,根據(jù)該流程定義文件不僅可以根據(jù)公共信息執(zhí)行相應的公共處理邏輯,還可以根據(jù)擴展信息執(zhí)行相應的擴展邏輯,提高流程引擎系統(tǒng)的可擴展性。
本申請實施例中,上述流程定義文件中可以配置調度正則表達式;該調度正則表達式可以為通過流程引擎的API接口接收到的正則表達式。即,開發(fā)人員可以根據(jù)實際調度需求設置相應的調度正則表達式,并將其通過API接口輸入流程引擎并存儲于流程定義文件中,從而在根據(jù)文件名定義正則表達式匹配得到該流程定義文件后,流程引擎可以根據(jù)其中的調度正則表達式實現(xiàn)滿足實際需求的流程調度。
在本申請一個可行的實施例中,步驟S27所述的根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,可以包括:根據(jù)所述流程定義文件中配置的默認鑒權邏輯執(zhí)行鑒權操作,并在鑒權對象滿足所述默認鑒權邏輯中的任一種時,判定鑒權通過。
上述鑒權操作,用于識別鑒權對象是否有權限執(zhí)行審批操作,也即,只有鑒權通過才能進一步執(zhí)行審批操作。其中,流程定義文件中可以配置任意一種或多種默認鑒權邏輯,如:基于角色配置的第一鑒權邏輯、基于權限關鍵字配置的第二鑒權邏輯,以及,基于用戶標識配置的第三鑒權邏輯;只要鑒權對象滿足其中任意一種,就可以判定鑒權通過。因此,本申請實施例可以實現(xiàn)靈活的鑒權操作,滿足不同的應用需求。
參見圖3,在本申請另一個可行的實施例中,步驟S27所述的根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,可以包括如下步驟:
S271、在執(zhí)行審批操作前,判斷是否存在前置擴展文件,如果存在,則執(zhí)行步驟S272,否則執(zhí)行步驟S273。
S272、在存在前置擴展文件的情況下,根據(jù)所述前置擴展文件執(zhí)行對應的前置擴展操作,并執(zhí)行步驟S274。
S273、在不存在前置擴展文件的情況下,根據(jù)所述流程定義文件執(zhí)行默認前置操作,并執(zhí)行步驟S274。
S274、根據(jù)所述流程定義文件執(zhí)行審批操作。
S275、在完成審批操作后,判斷是否存在后置擴展文件,如果存在,則執(zhí)行步驟S276,否則執(zhí)行步驟S277。
S276、在存在后置擴展文件的情況下,根據(jù)所述后置擴展文件執(zhí)行對應的后置擴展操作。
S277、在不存在后置擴展文件的情況下,根據(jù)流程定義文件執(zhí)行默認后置操作。
以上步驟實現(xiàn)了審批操作的前置和后置兩種擴展,開發(fā)人員可以根據(jù)應用需求編輯相應的前置擴展文件和后置擴展文件,實現(xiàn)相應的擴展邏輯。
在本申請又一個可行的實施例中,步驟S27所述的根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,可以包括如下步驟:
在執(zhí)行數(shù)據(jù)存儲操作時,將業(yè)務流程相關的業(yè)務數(shù)據(jù)存儲于對應的業(yè)務表格,并在業(yè)務流程的相應執(zhí)行階段標記各個業(yè)務數(shù)據(jù)對應的條目標識碼。
其中,每項業(yè)務數(shù)據(jù)對應唯一的條目標識碼,該條目標識碼的數(shù)據(jù)類型優(yōu)選為字符串型,使得開發(fā)人員可以根據(jù)根據(jù)應用需求自由設置,從而實現(xiàn)復雜的邏輯控制。同時,業(yè)務數(shù)據(jù)存儲于業(yè)務表格中還可以提高數(shù)據(jù)查詢效率。
另外,在本申請其他實施例中,在執(zhí)行數(shù)據(jù)存儲操作時,也可以將業(yè)務數(shù)據(jù)存儲于業(yè)務流程中,并在該流程結束時,通過回調業(yè)務邏輯的代碼,將業(yè)務數(shù)據(jù)傳回至業(yè)務系統(tǒng),以便于數(shù)據(jù)查詢。
在本申請又一個可行的實施例中,步驟S27所述的根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作,可以包括如下步驟:
在執(zhí)行消息通知操作時,將待通知的原始消息通過預設通知接口輸出,以便根據(jù)所述原始消息和用戶自定義的消息處理邏輯確定實際消息的標題及內容。
由以上步驟可知,本申請實施例提供的流程引擎實現(xiàn)方法,不規(guī)定待通知消息的最終通知樣式,而是將原始消息通過相應的預設通知接口輸出;相應的,業(yè)務系統(tǒng)可預先設置滿足自身業(yè)務需求的消息通知模塊,并與流程引擎的預設通知接口連接,從而通過該消息通知模塊對流程引擎輸出的原始數(shù)據(jù)進行處理,確定最終通知樣式,包括消息的標題及具體內容等信息。
參照圖4,基于以上任一實施例所述的流程引擎實現(xiàn)方法,在本申請其他實施例中,可以執(zhí)行如下步驟來實現(xiàn)在審批頁面展示數(shù)據(jù):
S41、對業(yè)務相關的數(shù)據(jù)屬性設置對應的注解信息;所述注解信息包括以下至少一種:題頭內容、顯示標記、列序號、列類型。
具體的,本申請實施例可以基于Java語言設置上述注解信息。其中,針對數(shù)據(jù)的各個屬性,題頭內容表示該屬性在展示表格中所在列的名稱。顯示標記表示是否在展示表格中顯示該屬性。列序號表示該屬性所在列在展示表格的所有列中的順序;例如,列序號為2,則表示將該屬性展示在整個展示表格的第2列。列類型表示記錄審批細節(jié)內容的形式,包括普通文本和鏈接;其中,本申請實施例將審批細節(jié)內容記錄于詳細信息頁面,在展示表格中只展示該詳細信息頁面對應的訪問路徑(或者以該路徑地址為超鏈接的文本,如“詳情”),即鏈接,從而即使審批細節(jié)內容包括數(shù)據(jù)的新增、修改中、待審批、刪除、取消、測試、發(fā)布等多種狀態(tài),也可保證該項數(shù)據(jù)只占據(jù)展示表格的一行,從而簡化了展示表格,降低了數(shù)據(jù)展示的復雜度。
S42、在執(zhí)行審批頁面數(shù)據(jù)展示操作時,查找并解析各個屬性對應的注解信息。
具體的,可以采用反射遞歸方式查找業(yè)務系統(tǒng)的各個模型類及其父類,得到全部有注解信息的屬性。通過解析注解信息,即可得到各個屬性對應的題頭內容、顯示標記、列序號、列類型等信息;進一步的,可以按照列序號將題頭內容存儲于一維數(shù)組中。
S43、遍歷待展示數(shù)據(jù),根據(jù)所述注解信息確定每項數(shù)據(jù)的各項屬性對應的屬性值。
本申請實施例中,每項數(shù)據(jù)的各項屬性及對應的屬性值可以通過二維數(shù)組的形式存儲,該二維數(shù)據(jù)中的每個元素分別存儲一個屬性及對應的屬性值。
S44、將解析出的題頭內容、各項屬性的屬性及屬性值發(fā)送至展示前臺。
將上述題頭內容所在的一維數(shù)組,和屬性及屬性值所在的二維數(shù)組發(fā)送至展示前臺,從而展示前臺可以通過一維數(shù)組展示表格中的各列的題頭,通過二維數(shù)組展示表格中的具體數(shù)據(jù)。對于列類型為連接的數(shù)據(jù),如果需要查看審批細節(jié)內容,則通過點擊該鏈接使頁面跳轉至對應的詳細信息頁面。
由以上步驟可知,本申請實施例可以通過注解信息輕松實現(xiàn)對展示形式的控制,從 而可以滿足不同業(yè)務系統(tǒng)的展示需求。
圖5為本申請實施例提供的一種流程引擎系統(tǒng)的結構框圖。參照圖5,該系統(tǒng)包括:第一配置單元110、擴展判斷單元120和配置加載單元130。
該第一配置單元110被配置為,針對業(yè)務流程相關的各個公共流程節(jié)點,分別設置對應的用于記錄默認的處理邏輯及屬性信息的默認配置文件。其中,所述公共流程節(jié)點至少包括:流程定義加載節(jié)點、消息通知節(jié)點、權限管理節(jié)點和流程數(shù)據(jù)存儲節(jié)點。
該擴展判斷單元120被配置為,針對各個公共流程節(jié)點和非公共流程節(jié)點,分別判斷是否存在對應的用于記錄用戶擴展的處理邏輯及屬性信息的擴展配置文件。
該配置加載單元130被配置為,對于存在所述擴展配置文件的流程節(jié)點,加載所述擴展配置文件,以激活相應的流程節(jié)點,對于不存在所述擴展配置文件的流程節(jié)點,加載對應的默認配置文件,以激活相應的流程節(jié)點。
由以上技術方案可知,本申請實施例預先為公共流程節(jié)點設置默認配置文件,在需要啟動流程引擎系統(tǒng)以執(zhí)行業(yè)務流程控制時,優(yōu)先加載各個流程節(jié)點的擴展配置文件,對于不存在對應的擴展配置文件的公共流程節(jié)點,則直接加載對應的默認配置文件,既可以保證流程引擎的基本實現(xiàn),又可以通過擴展配置文件實現(xiàn)流程引擎的個性化,滿足不同業(yè)務流程的具體需求。因此,本申請實施例提供的流程引擎系統(tǒng)具備高度可擴展性,可以兼容不同業(yè)務系統(tǒng)的業(yè)務流程,不再需要針對不同的業(yè)務流程開發(fā)不同的流程引擎,從而可以減少流程引擎的開發(fā)成本,降低流程引擎的維護難度。
參照圖6,在本申請一個可行的實施例中,上述流程引擎系統(tǒng)還包括:第二配置單元140、文件查找單元150和執(zhí)行單元160。
該第二配置單元140被配置為,根據(jù)業(yè)務需求設置流程定義文件,并將所述流程定義文件存儲于預設存儲路徑對應的文件存儲區(qū)域。
該文件查找單元150被配置為,在激活所述流程定義加載節(jié)點后,獲取已加載的所述流程定義加載節(jié)點對應的配置文件中的文件名定義正則表達式,掃描預設存儲路徑對應的文件存儲區(qū)域,查找并緩存文件名與所述文件名定義正則表達式相匹配的流程定義文件;
該執(zhí)行單元160被配置為,根據(jù)所述流程定義文件執(zhí)行業(yè)務流程中各個節(jié)點對應的操作。
在本申請一個可行的實施例中,上述執(zhí)行單元160可以包括:鑒權執(zhí)行單元。
該鑒權單元被配置為,根據(jù)所述流程定義文件中配置的默認鑒權邏輯執(zhí)行鑒權操作,并在鑒權對象滿足所述默認鑒權邏輯中的任一種時,判定鑒權通過。
其中,上述默認鑒權邏輯包括以下至少一種:基于角色配置的第一鑒權邏輯、基于權限關鍵字配置的第二鑒權邏輯,以及,基于用戶標識配置的第三鑒權邏輯。
在本申請另一個可行的實施例中,上述執(zhí)行單元160可以包括:審批執(zhí)行單元。
該審批執(zhí)行單元被配置為,在執(zhí)行審批操作前,判斷是否存在前置擴展文件,如果存在所述前置擴展文件,則根據(jù)所述前置擴展文件執(zhí)行對應的前置擴展操作,否則根據(jù)所述流程定義文件執(zhí)行默認前置操作;在完成審批操作后,判斷是否存在后置擴展文件,如果存在所述后置擴展文件,則根據(jù)所述后置擴展文件執(zhí)行對應的后置擴展操作,否則根據(jù)所述流程定義文件執(zhí)行默認后置操作。
在本申請又一個可行的實施例中,上述執(zhí)行單元160還可以包括:數(shù)據(jù)存儲單元,用于將業(yè)務流程相關的業(yè)務數(shù)據(jù)存儲于對應的業(yè)務表格,并在業(yè)務流程的相應執(zhí)行階段標記各個業(yè)務數(shù)據(jù)對應的條目標識碼。
在本申請又一個可行的實施例中,上述執(zhí)行單元160還可以包括:消息通知單元,用于將待通知的原始消息通過預設通知接口輸出,以便根據(jù)所述原始消息和用戶自定義的消息處理邏輯確定實際消息的標題及內容。
參照圖7,本申請其他實施例提供的流程引擎系統(tǒng)還可以包括:注解設置單元170和數(shù)據(jù)展示單元180。
該注解設置單元170被配置為,針對業(yè)務相關的各項可視化數(shù)據(jù),設置對應的注解信息。所述注解信息包括以下至少一種:題頭內容、顯示標記、列序號、列類型;
該數(shù)據(jù)展示單元180被配置為,查找并解析各個屬性對應的注解信息,遍歷待展示數(shù)據(jù),根據(jù)所述注解信息確定每項數(shù)據(jù)的各項屬性對應的屬性值,將解析出的題頭內容、各項屬性的屬性及屬性值發(fā)送至展示前臺。
可見,本申請實施例可以通過注解信息輕松實現(xiàn)對展示形式的控制,從而可以滿足不同業(yè)務系統(tǒng)的展示需求。
另外,本申請實施例還提供了一種計算機存儲介質,例如可以是ROM、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設備等;該計算機存儲介質中存儲有程序,當所述存儲介質中的程序由相應處理器執(zhí)行時,使得該處理器能夠執(zhí)行上述方法實施例中記載的流程引擎實現(xiàn)方法的部分或全部步驟。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本申請未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下 面的權利要求指出。
應當理解的是,本發(fā)明并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權利要求來限制。