• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      企業(yè)管理系統(tǒng)集成Activiti工作流引擎的研究

      2019-11-17 04:05:19付曉明
      電腦知識(shí)與技術(shù) 2019年26期
      關(guān)鍵詞:Java語(yǔ)言

      付曉明

      摘要: 實(shí)例講解如何集成activiti工作流引擎到SpringMVC、Hibernate框架下的業(yè)務(wù)管理系統(tǒng)中,并脫離activiti的用戶、表單模塊,使用獨(dú)立設(shè)計(jì)的用戶角色模型、表單模型設(shè)置流程節(jié)點(diǎn),方便業(yè)務(wù)系統(tǒng)的用戶模型和表單模型升級(jí)。

      關(guān)鍵詞: activiti ;工作流引擎;Java語(yǔ)言

      中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2019)26-0235-02

      開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

      企業(yè)業(yè)務(wù)管理系統(tǒng)包含了各種審批流程,所以必須集成工作流引擎以完成審批功能,Activities作為開(kāi)源的工作流引擎被廣泛應(yīng)用到各業(yè)務(wù)系統(tǒng),使業(yè)務(wù)系統(tǒng)更加專注于復(fù)雜業(yè)務(wù)邏輯的設(shè)計(jì)與實(shí)現(xiàn),同時(shí)工作流引擎的開(kāi)源特性也使系統(tǒng)在工作流引擎的優(yōu)化升級(jí)簡(jiǎn)單快捷。

      1需求背景

      本管理系統(tǒng)采用J2EE開(kāi)發(fā)架構(gòu),包括SpringMVC及Hibernate,WEB前端使用的dwzUI、JQuery。由于Activiti的用戶與表單模型無(wú)法滿足本系統(tǒng)要求,故使用本系統(tǒng)的用戶角色管理模塊和表單管理模塊與工作流集成,達(dá)到在任意流程節(jié)點(diǎn)上靈活設(shè)置角色與表單的效果。

      2集成方法

      2.1創(chuàng)建數(shù)據(jù)庫(kù)

      由于工作流引擎自帶一套數(shù)據(jù)庫(kù)表,需要使用引擎提供的sql文件在業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)中生成這些表,引擎提供了各種類型數(shù)據(jù)庫(kù)的腳本,本系統(tǒng)選擇的是oracle的sql文件,集成的Activiti是5.15版本,源碼中找到database\activiti.oracle.create.history.sql文件,并在oracle中生成表,因?yàn)楸鞠到y(tǒng)不使用工作流自帶的用戶模型,所以不需要執(zhí)行腳本activiti.oracle.create.identity.sql。

      2.2配置XML文件

      本系統(tǒng)采用SpringMVC框架,將Activiti的配置文件引入到applicationContext.xml中,activiti.xml放到resources下,并處理節(jié)點(diǎn)中文亂碼問(wèn)題。

      本系統(tǒng)使用Maven管理項(xiàng)目,需要將所有jar包上傳到maven-jar路徑下,在pom.xml文件節(jié)點(diǎn)中增加activiti、batik的jar包,用于支持流程引擎和圖形設(shè)計(jì)器Activiti-Modeler ,實(shí)現(xiàn)在線瀏覽器編輯流程,Activiti Modeler內(nèi)部的實(shí)現(xiàn)上還是以oryx為圖形組件為內(nèi)核,用angular.js作為界面基本元素的基礎(chǔ)組件以及調(diào)度oryx的API。

      2.3上傳依賴文件

      解壓activiti-explorer.war文件,將其中的api、editor、explorer、libs文件夾依次上傳到webapp目錄下,并將WEB-INF\classes下的editor.html、stencilset.json文件放到resources目錄下,activiti的jar包在activiti的lib目錄下,batik的jar包在sactiviti-explorer解壓后的WEB-INF\lib下,都需要拷貝到maven-jar路徑下。至此,所有開(kāi)發(fā)環(huán)境及準(zhǔn)備工作都已完成。

      3流程管理

      為了適應(yīng)流程隨著業(yè)務(wù)變動(dòng)而變化,滿足業(yè)務(wù)人員對(duì)流程進(jìn)行增刪改操作。本系統(tǒng)中設(shè)計(jì)了流程管理模塊,能夠?qū)崿F(xiàn)在線流程設(shè)計(jì)、任務(wù)節(jié)點(diǎn)處理人及表單設(shè)置、流程啟用、流程查詢等功能。

      首先,在系統(tǒng)中創(chuàng)建流程模型的實(shí)體類,通過(guò)web.xml文件中配置的流程設(shè)計(jì)器重定向功能,調(diào)用流程設(shè)計(jì)器在線設(shè)計(jì)流程,流程模型的屬性必須包含流程KEY、流程名稱,在設(shè)計(jì)器中必填的ID、流程唯一標(biāo)識(shí)一般與流程KEY相同,設(shè)計(jì)完成保存流程后,引擎自動(dòng)生成一個(gè)XML文件和一個(gè)流程圖片,xml文件名是流程名稱.bpmn20.xml,圖片名是流程名稱.流程KEY.png,這兩個(gè)文件都以blob的格式保存在ACT_GE_BYTEARRAY表中,表ACT_RE_MODEL中保存的是模型信息,當(dāng)設(shè)計(jì)完模型后,就可以調(diào)用repositoryService.saveModel(模型對(duì)象)來(lái)生成一個(gè)流程定義,相當(dāng)于發(fā)布了一個(gè)新版本的流程定義,同時(shí)在表ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF中各生成一條數(shù)據(jù),表示當(dāng)前最新的流程定義,有用戶發(fā)起該流程時(shí),使用的也是最新的流程定義。

      流程定義都設(shè)置好后,該流程還需要設(shè)置表單和處理人,本系統(tǒng)的設(shè)計(jì)支持各任務(wù)節(jié)點(diǎn)獨(dú)立設(shè)置表單和處理人,通過(guò)讀取bpmn20.xml文件,解析流程的節(jié)點(diǎn)信息,展示到頁(yè)面中,對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行設(shè)置,如圖1:

      在這里可以為每個(gè)節(jié)點(diǎn)設(shè)置表單、用戶角色和處理人過(guò)濾功能。用戶角色成員都包含服務(wù)部門屬性,可以通過(guò)過(guò)濾設(shè)置,對(duì)指定節(jié)點(diǎn)設(shè)置處理人員范圍,例如按起草人過(guò)濾、按上一節(jié)點(diǎn)處理人過(guò)濾、按參數(shù)過(guò)濾等,其中按起草人過(guò)濾最常用,在流程流轉(zhuǎn)的時(shí)候,可以通過(guò)獲取流程定義次節(jié)點(diǎn)的處理人角色的設(shè)置,篩選出來(lái)用戶,流程根據(jù)用戶信息進(jìn)行流轉(zhuǎn),為任務(wù)節(jié)點(diǎn)設(shè)置處理人。代碼如下:

      這樣就可以脫離activiti的用戶和表單模型,設(shè)計(jì)符合本系統(tǒng)需求的用戶角色模型和表單模型。使用當(dāng)前web前端技術(shù),設(shè)計(jì)出來(lái)表單設(shè)計(jì)器,使用戶在瀏覽器中拖拽web控件,就可以設(shè)計(jì)簡(jiǎn)單表單(無(wú)復(fù)雜業(yè)務(wù)邏輯),在用戶啟動(dòng)流程的時(shí)候,調(diào)用activiti提供的接口即可。

      4結(jié)語(yǔ)

      至此,完成activit工作流引擎與業(yè)務(wù)管理系統(tǒng)的集成,并使用模塊化設(shè)計(jì),成了一個(gè)獨(dú)立于任何業(yè)務(wù)支持工作流引擎管理的系統(tǒng)框架。

      【通聯(lián)編輯:唐一東】

      猜你喜歡
      Java語(yǔ)言
      Java語(yǔ)言圖形編程工具的設(shè)計(jì)及應(yīng)用
      科技傳播(2017年4期)2017-04-24 20:20:00
      高職《Java語(yǔ)言程序設(shè)計(jì)》課程的“微課”制作與應(yīng)用研究
      論開(kāi)閉原則在JAVA程序設(shè)計(jì)中的應(yīng)用
      基于Android平臺(tái)的健康醫(yī)療APP設(shè)計(jì)與開(kāi)發(fā)
      大學(xué)生創(chuàng)業(yè)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
      計(jì)算機(jī)軟件開(kāi)發(fā)中的JAVA編程語(yǔ)言分析
      用戶隱私保護(hù)之手機(jī)密碼保險(xiǎn)箱
      異常結(jié)構(gòu)對(duì)Java程序分析的影響
      Android手機(jī)三軸加速度傳感器使用
      科技資訊(2015年8期)2015-07-02 18:44:39
      基于Java語(yǔ)言的手機(jī)軟件開(kāi)發(fā)技術(shù)分析
      鲁甸县| 左权县| 城固县| 麦盖提县| 罗田县| 丰原市| 周宁县| 永年县| 渭源县| 天门市| 前郭尔| 崇礼县| 东港市| 乌拉特后旗| 康马县| 芷江| 潢川县| 昭平县| 沽源县| 镇沅| 永寿县| 青神县| 乐至县| 钦州市| 汉源县| 万盛区| 汝南县| 巧家县| 抚顺县| 昌江| 陆川县| 衡山县| 榆林市| 汽车| 辉县市| 广饶县| 西藏| 阿荣旗| 溆浦县| 四平市| 望城县|