999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Activiti工作流結合外置表單技術研究

2016-11-25 09:00:18張瑞圓
電子設計工程 2016年18期
關鍵詞:引擎系統

張瑞圓

(西安科技大學 陜西 西安 710054)

Activiti工作流結合外置表單技術研究

張瑞圓

(西安科技大學 陜西 西安 710054)

針對煤礦機械制造企業,實現對產品生產全面管理為目的,設計使用Activiti工作流結合外置表單技術,通過在管理系統中部署測試,得出該方法可有效監控生產進度,保證信息及時而通暢傳遞。構建的過程模型,具有高兼容、可擴展、易移植、靈活穩定等特點,解決了業務流程邏輯繁瑣開發難的問題,進一步提升工作流系統的作用。

Activiti;工作流;外置表單;進度監控

軟件系統在使用工作流管理時,利用生產流程引擎與外部表單結合部署,被稱之為外置表單技術。Activiti是當下熱門的一種工作流引擎,它提供了既方便快捷又簡單靈活的方式,來給業務流程中的流程節點添加表單。添加方案一般分為兩類:使用表單屬性的內置表單渲染和外置表單渲染。在此,設計使用的Activiti結合外置表單可以高效的創建生產流程模型。所建模型發布迅速且易于修改,在系統中運轉穩定。

此種方式對于經常新增流程的管理系統比較適用,它的特長是可以快速發布新流程。開發人員用設計器把流程設計出來之后,再設計外部表單,并使二者關聯就能部署使用。例如在某企業內部的管理系統中,需要創建多級審批的業務流程,或需要業務邏輯處理的請求時,通過運用Activiti添加外置表單創建流程模型,對企業生產進度監控將會十分便利。

1 設計過程

外置表單常用于基于工作流平臺開發的方式,代碼書寫較少[1]。使用時只需設計出外部表單模板,將其內容寫好保存到.form文件中,然后配置每個節點需要的表單名稱 (即給form key賦值),通過引擎提供的API讀取Task對應的form內容輸出到頁面即完成了全部過程。

系統獲得部署的外置表單資源,是通過Activiti引擎中的兩串核心代碼。再通過這類方式,就能獲得模板定義文件,從而渲染應用中的表單。表單的內容通常都是以key和value的形式數據保存在引擎中,當流程需要一些特殊處理時可以借助Listener或者Delegate方式實現[2]。Activiti工作流結合外置表單技術的設計結構,如圖1所示。

圖1 設計結構圖

設計思路大致分為三步:第一步,用戶根據企業生產流程圖,利用流程設計器繪制流程模型,再依照實際任務需求創建form(外置表單),并將兩者關聯后打包為流程資源;為滿足系統的部署要求和activiti流程規范,一般情況下,打包好的外置表單資源bar包內,含有一個bpmn文件,一個png文件,還有若干個form文件[3];第二步,將打包好的資源文件(bar或zip),通過預留好的服務接口,部署到系統相應的位置;第三步,用戶啟動部署后的資源,可以有效監控生產進度,管理者能查詢到流程啟動時間、任務狀態、責任人及其所屬部門等相關信息,運行中流程可隨時掛起、激活,流程運行結束后系統輸出歷史記錄。

2 相互關系

相互關系指的是系統中引擎、服務、對象以及對象之間的關系。引擎API是與Activiti交互最常用的方式,主要出發點是ProcessEngine。獲得ProcessEngine的方式是使用 org.activiti.engine.ProcessEngines類,該方法會在第一次被調用時初始化,并查找路徑下的activiti.cfg.xml文件,該文件內代碼如圖2所示:

圖2 核心代碼

根據文件中的配置構建流程引擎,從圖2中可以看出,activiti.cfg.xml文件內含有一個id名為processEngineConfiguration的bean,這個bean就是用來構造引擎ProcessEngine的。

由ProcessEngine獲取到工作流的不同服務,并提供了流程引擎的所有接口,Activiti的引擎接口實現了以一個Java類來定義流程服務和用戶任務以及流程中的邏輯[4],如圖3所示。

圖3 引擎接口

實際上,每個服務都會對應一個或多個對象[5]。本文就舉例介紹在工作流中出現的4個對象,以及它們之間的關系,如圖4所示。

圖4 服務對象

1)流程實例啟動通過runtimeService.startProcessInstance()方法啟動,這時引擎會創建一個ProcessInstance(流程實例)。流程實例是根據一條業務數據用流程驅動的入口,兩者一一對應。啟動流程之后,業務和流程已經建立了關聯;

2)Execution的含義就是一個流程實例(ProcessInstance)具體要執行的過程對象。兩者的對象映射關系:ProcessInstance(1)--->Execution(N),其中N>=1;

3)HistoryActivity包含了流程中所有的活動數據,例如開始事件、各種分支 (排他、并行等)、以及Task執行記錄。HistoryActivit和Task是一對一關系;

4)上面說到ProcessInstance是和業務一對一關聯的,和業務數據最親密;Task則是和用戶最親密的(UserTask),用戶每天的待辦事項就是一個個的Task對象。Execution和Task也是一對一關系。

3 表單渲染與屬性

外置表單中,業務流程相關的信息存在流程變量自身內,或者是通過流程變量引用的,Activiti支持復雜java對象的流程變量。人員通過啟動流程和完成用戶任務參與進流程,表單通過UI技術渲染后與人通訊。流程定義包含流程變量中復雜Java類型的屬性放置在一個Map<String,String>內,Map中的一個值就代表一個屬性。這些屬性能在流程變量之上提供一個專有的視圖。

Activiti API中說明了這一屬性信息的方法,UI技術利用這些屬性構建表單。實現表單屬性映射到流程變量,顯示一個表單所需要的屬性配置在 StartFormData FormService.getStartFormData(String processDefinitionId)和 TaskFormData FormService.getTaskFormData(String taskId)里,這些屬性從它們的 FormData返回值中獲得。使用 ProcessInstance Form Service.submitStartFormData(String processDefinitionId,Map<String,String>properties) 和 void FormService.submitStart FormData(String tasked,Map<String,String>properties)來提交表單屬性[6]。

BPMN代碼片段如圖5所示。

圖5BPMN代碼片段

1)屬性<StartEventactiviti:formKey=*>和屬性<userTaskactiviti:formKey=*>都是通過API發布外置表單內容[7];

2)屬性<startEvent activiti:initiator=applyUserId>聲明了流程的發起者,由UI技術使用的表單屬性<name=userId>就可以關聯到表達式${applyUserId};

3)<user Task activiti:candidataeGroups=hr activiti:candidateUsers=hruser>內屬性代表的是任務指派的候選組和候選人;

4)系統通過屬性<process id=leave-formkey>找到部署的外置表單。實現類代碼如圖6所示。

圖6 實現類代碼片段

當控制器處理完請求時,通常會將包含視圖名稱或視圖對象以及一些模型屬性的ModelAndView對象返回到DispatcherServlet。因此,經常需要在控制器中構造ModelAndView對象[8]。ModelAndView代表了MVC Web程序中Model和View的對象,它的作用是封裝這兩個對象的holder,方便一次性返回,不過Model和View仍是分離的。圖中代碼首先實例化了一個View的ModelAndView實例,其次通過id只讀取外置表單,然后添加一個Model對象,最后返回mav。

4 部署實現

將打包好的流程資源,部署到先前開發的生產過程管理系統中,測試對生產進度的監控。以某企業“產品加工制造流程流程圖”創建的流程模型為例,如圖7所示。將其各節點關聯對應的外置表單,并和圖形文件一起打包并部署在系統內。

圖7 流程模型

啟動流程,用戶錄入相應信息,實現界面跳轉至“啟動流程”。流程中各個節點對應各項Task(任務),Task合理處置各項form(工作),催動流程正常運轉,對應關系為:節點:Task:form=1:1:1。

按照流程設計為各個任務分派處理人,當流程處于相應的節點,再以當前相應角色登錄系統,系統會在首頁出現“待辦任務”消息提示。當前任務正處于“副總工審核”階段。再以副總工“Jhon Li”的身份登錄,對該流程中當下任務進行簽收辦理。

當一連串任務工作處理完成時,點擊“運行中流程表”,實現生產進度的跟蹤監控界面彈出,如圖8所示。當前流程正運轉到“副總工審核”節點,系統會用紅色框圖標注。將鼠標放到所要查詢的任務節點上,系統功能顯示 “當前處理人”、“任務所屬角色”和“任務類型”三項屬性。

圖8 進度監控

按照流程各節點的指派順序,依次對任務進行簽收辦理,直至流程運行結束,系統會在“結束流程”目錄輸出流程運行的歷史記錄,以備管理者查詢已結束流程的ID、啟動時間、結束時間、結束原因等相關信息。

5 結束語

從系統實例驗證過程可見,用戶在對生產過程管理過程中,流程運行通暢,任務分派有序,人員操作合理。從運行過程展示出,其功能足以達到對生產進度監控的目的,完成了本文最初的目標和預想。最后,通過對流程的創建、配置、打包、部署、運行全過程,表明Activiti工作流結合外置表單技術,具有流程靈活、系統易操作的特點,對整個生產過程的監控更直觀、準確,使工作流管理系統的特點更突出,優勢最大化。

[1]LI Shou-bing,ZHANG You-sheng,LIU Li-hua.Workflow management technology[J].Microcomputer Application,2000,16(6):28-30.

[2]林信良.Spring技術手冊[M].北京:電子工業出版社,2006.

[3]吳越勝,李新磊.Eclipse 3.0程序開發技術詳解[M].北京:清華大學出版社,2010.

[4]Henry Yan.工作流引擎Activiti使用總結[EB/OL].http:// www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html,2012.

[5]WANG She-wei,YANG Hai-cheng,MO Rong.Research on dynamic form system for management of aeroengine assembly[J].Computer Engineering and Design,2011(8):133-135.

[6]Tijs Rademakers.Activiti in Action[M].New York:Manning Publications Co,2012.

[7]Martinez J.S,Diaz V.G Garcia-Bustelo B.C.P,Lovelle J.M.C.Isastur Modeler:A tool for BPMN MUSIM[R].CISTI,2011 6th Iberian Conference on,2011.15-18,1-6.

[8]WU Shao-long,FANG Xiao-fen,DONG Jian-feng.Design and implementation in integration of form system and workflow engine[J].China Mechanical Engineering,2012(1):47-50.

Research on the Activiti workflow combined with external form technology

ZHANG Rui-yuan
(Xi'an University of Science&Technology,Xi'an 710054,China)

In order to manage the whole process in coal mine machinery manufacturing enterprises,the design of the Activiti workflow combined with external form technology can control production schedule effectively,which to ensure the delivery of information quickly and smoothly.By the use of external form technology,to complete the process model this has the characteristics of compatibility,easy to transplant,extensibility and portability,which to solve the difficulty of developing process model,it can enhance the function of workflow system.

Activiti;workflow;external form;schedule monitor and control

TN957.52+9

A

1674-6236(2016)18-0024-03

2016-09-24 稿件編號:201509171

張瑞圓(1989-),男,陜西省西安市人,助理工程師,碩士。研究方向:生產管理與質量控制。

猜你喜歡
引擎系統
以學促干 挺膺擔當 激活砥礪前行的紅色引擎
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
三生 三大引擎齊發力
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 国产精品美女在线| 亚洲大尺码专区影院| 国产第一页屁屁影院| 亚洲a级毛片| 久久香蕉国产线看观看亚洲片| 精品久久久久久久久久久| 97色婷婷成人综合在线观看| 日韩大片免费观看视频播放| 亚洲va在线观看| 日韩免费无码人妻系列| AV片亚洲国产男人的天堂| 亚洲欧洲自拍拍偷午夜色| 亚洲精品国产首次亮相| 九九久久精品免费观看| 99久久国产精品无码| 国产成人精品一区二区不卡| 黄片在线永久| 亚洲最黄视频| 国产亚洲欧美在线专区| 亚洲国产成人无码AV在线影院L| 97在线观看视频免费| 亚洲天堂精品在线| 在线观看无码a∨| 婷婷六月激情综合一区| 亚洲码一区二区三区| 91福利在线看| 亚洲日本一本dvd高清| 天天色天天综合网| 日韩午夜片| 色婷婷狠狠干| 国产美女一级毛片| 黄色网页在线播放| 国产乱子伦无码精品小说| 99久久99这里只有免费的精品| 国产精品lululu在线观看| 99re这里只有国产中文精品国产精品 | 91小视频在线| 日韩第一页在线| 成人一级免费视频| 免费一极毛片| 亚洲男人的天堂在线| 又大又硬又爽免费视频| 亚洲一区二区在线无码 | 久久99国产综合精品1| 国产精品无码AV中文| 萌白酱国产一区二区| 欧美精品v日韩精品v国产精品| 日韩精品一区二区三区大桥未久| 久久综合成人| 久久五月视频| 日韩少妇激情一区二区| 日本人妻丰满熟妇区| 午夜福利无码一区二区| 在线欧美日韩| 国产精品思思热在线| 国产美女主播一级成人毛片| 国产欧美高清| 国产av一码二码三码无码 | AV熟女乱| 高潮毛片无遮挡高清视频播放| 九色视频在线免费观看| 波多野结衣视频一区二区| 国产成人8x视频一区二区| 狠狠色狠狠色综合久久第一次| 伊人久久婷婷| 91色在线观看| 国产免费羞羞视频| 亚洲欧美国产高清va在线播放| 亚洲欧美日韩综合二区三区| 九月婷婷亚洲综合在线| 欧美一级在线看| 在线无码av一区二区三区| 成人福利在线免费观看| 亚洲精品免费网站| 亚洲有码在线播放| 国产精品三级av及在线观看| 99无码熟妇丰满人妻啪啪| 亚洲精品波多野结衣| 午夜精品久久久久久久无码软件 | 精品一区二区三区四区五区| 久久久久亚洲精品成人网| 美女潮喷出白浆在线观看视频|