基于Activiti工作流引擎實現的請假審核流程

概要
本文檔介紹的是某商用中集成的Activiti工作流的部署及使用,該框架用的Activiti版本為5.19.0。本文檔中主要以一個請假流程為例子進行說明,該例子的流程圖如下:

請假例子流程圖
這是一個可以正常運作的工作流業務了,但是它也有不足的地方,如沒做詳細的分支控制,而且寫死了節點,沒能更好地體現工作流引擎的靈活性,這些在我們后面實際的項目業務中的工作流使用上做了調整,但由于項目業務不能公開,且這個例子已能說明大部分的問題,這里就不一一細說我們的其他業務實現了。
新建流程模型

  1. 新增模型
    (1)進入新建模型頁面

新建模型
(2)填寫名稱等信息

填寫信息
注意,這里的Key是該流程的唯一標識,須與實際業務中約定的key一致,如下圖:

流程唯一標識
(3)點擊保存時會進入工作流模型子系統,先在流程唯一標識處填寫剛才的key

與代碼中的Key一致
(4)添加開始事件,開始事件的屬性不用填(也可填寫名稱)。然后添加人工任務,如下圖:

添加人工任務
(5)給已添加的人工任務添加指派者(填系統用戶或用戶組ID)、名稱、ID.如下圖:

添加指派者
注意,這里的ID是該任務的唯一標識,是實際業務中判斷是否為當前用戶可辦理的依據,須和代碼中判斷約定的ID保持一致,若不理解請參考下圖(但這種寫法會導致流程節點的靈活性降低,不太建議):

任務標識
(6)新建一個網關,任務后面一般會連著網關,根據上一任務的處理結果來實現分支管理(作用類似于if判斷),請參考下圖:

網關與分支管理
注意,網關后面的分支要填寫名稱及跳轉條件,同意操作的跳轉條件為” ${auditPass}”,不同意的跳轉條件為” ${!auditPass}”

跳轉條件
(7)按上述操作方法繼續完成流程圖的編輯。

繼續編輯流程圖
(8)點擊保存模型

保存模型
部署模型
重新進入模型工作區,部署剛添加的模型
部署模型
轉換模型
轉換模型可理解為采納某個定義好的模型,采納完后涉及到該流程的業務操作將按新的模型運作。

轉換模型
使用工作流
新建并定義好模型后,即可使用該工作流模型了,以下為請假流程為例進行示范:

  1. 提交申請

提交申請
提交完后可以在【運行中的任務】中看到該任務及其當前所在的節點

  1. 簽收任務
    通過有權限處理該節點的用戶賬號登錄后,可在【任務簽收】處簽收該任務,獲得該事件的處理權(這一步驟可根據實際業務需要省略)。

Paste_Image.png

  1. 辦理任務
    在【待辦任務】中可對已簽收的任務進行辦理,辦理后任務會根據辦理結果移交下一節點,直至任務結束。

辦理任務1

辦理任務2

辦理任務3

  1. 任務結束
    任務結束后可在【已結束任務中】看到。

感謝閱讀,歡迎一起討論,共同學習。 --廣州學生梁植淋

轉載于:https://www.cnblogs.com/liangzhilin/p/6918664.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372067.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372067.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372067.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux編譯ffmpeg成so,「ffmpeg」一 mac 環境下編譯ffmpeg,生成so庫文件

1.下載ffmpeg源碼,官網,我這里直接采用git 方式下載:下載ffmpeg.png終端輸入git命令:靜靜等待~最后下載的版本為3.4.6 。image.png這里注意一下,剛開始我用的ndk版本是ndk-17b,在編譯該版本的ffmpeg時始終失敗&#xf…

4Web Service中的幾個重要術語

4.1WSDL: web service definition language 直譯:Webservice定義語言 1.對應一種類型的文件.wsdl 2.定義了webservice的服務端與客戶端應用交互傳遞請求和響應數據的格式和方式 3.一個webservice對應一個唯一的esdl文檔 4.2SOAP: simple object access protocal 直譯:簡單對象訪…

云端:亞馬遜,谷歌應用引擎,Windows Azure,Heroku,Jelastic

您想在云端嗎? 您有很多選擇。 我已經評估或使用了許多方法,因此這里有幾句話。 (當我使用Java時,我將包括一些與Java相關的注釋,但大多數情況適用于所有(受支持的)語言。) 但是在深…

JS-字符串操作-替換

<!DOCTYPE HTML><html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>無標題文檔</title><style>p { border:10px solid #ccc; background:#FFC; width:400px; padding:20px;…

linux下kegg注釋軟件,KEGG數據中全部代謝反應和代謝物注釋信息的下載

# 加載函數與R包 -----------------------------------------------------------------library(KEGGREST)library(plyr)source("./RbioRXN-master/RbioRXN-master/R/get.kegg.all.R")source("./RbioRXN-master/RbioRXN-master/R/get.kegg.byId.R")## KEGG數…

java常見異常

算術異常類&#xff1a;ArithmeticExecption空指針異常類&#xff1a;NullPointerException 類型強制轉換異常&#xff1a;ClassCastException 數組負下標異常&#xff1a;NegativeArrayException 數組下標越界異常&#xff1a;ArrayIndexOutOfBoundsException 違背安全原則異常…

Spring Security 3 Ajax登錄–訪問受保護的資源

我看過一些有關Spring Security 3 Ajax登錄的博客&#xff0c;但是我找不到解決如何調用基于Ajax的登錄的博客&#xff0c;匿名用戶正在Ajax中訪問受保護的資源。 問題 – Web應用程序允許匿名訪問某些部分&#xff0c;并且某些部分是受保護的資源&#xff0c;需要用戶登錄。 …

測試環境下將centos6.8升級到centos7的操作記錄(轉)

在測試環境下安裝openstack&#xff0c;由于在centos6下安裝openstack&#xff0c;針對源的問題有很多&#xff0c;安裝起來很不順利&#xff01; 但是在centos7下安裝卻很順利&#xff0c;所以考慮將服務器由centos6升級到centos7 這個我是在測試機中運行的&#xff0c;建議不…

linux運維選擇題,初學Linux練習題

1、將/etc/issue文件中的內容轉換為大寫后保存至/tmp/issue.out文件中tr ‘a-z’ ‘A-Z’ < /etc/issue > /tmp/issue.out2、將當前系統登錄用戶的信息轉換為大寫后保存至/tmp/who.out文件中3、一個linux用戶給root發郵件&#xff0c;要求郵件標題為”help”&#xff0c…

[轉]Web Api系列教程第2季(OData篇)(二)——使用Web Api創建只讀的OData服務

本文轉自&#xff1a;http://www.cnblogs.com/fzrain/p/3923727.html 前言 很久沒更新了&#xff0c;之前有很多事情&#xff0c;所以拖了很久&#xff0c;非常抱歉。好了&#xff0c;廢話不多說&#xff0c;下面開始正題。本篇仍然使用上一季的的項目背景&#xff08;系列地址…

使用Spring 3 MVC處理表單

本文是有關Spring 3的一系列文章的一部分。該系列的上一篇文章可以在此處獲得 。 在本文中&#xff0c;我們向Spring MVC邁出了又一步。 [此外&#xff1a; 術語MVC的創建者提供的pdf 。]從上一篇文章構建&#xff0c;讓我們添加將“聯系人”添加到應用程序所需的代碼。 首先&a…

插入排序法之——直接插入排序、折半插入排序、希爾排序

// test20.cpp : 定義控制臺應用程序的入口點。 // #include "stdafx.h" #include<iostream> #include<vector> #include<string> #include<queue> #include<stack> #include<cstring> #include<string.h> #include<de…

linux idea 快捷鍵,Linux 下 IDEA 的 Ctrl+Alt+S

前言這是個困擾我一年多的問題&#xff0c;今天終于解決了……起因一年前將主系統換成 Arch Linux 后&#xff0c;其他一切正常就是 IDEA 的打開設置的快捷鍵 ctrlalts 失效&#xff0c;讓我很是頭疼。雖然不是很重要&#xff0c;但是對于我這種強迫癥來說別提多難受了……我曾…

修改input的placeholder顏色

1、CSS選擇器 因為每個瀏覽器的CSS選擇器有所差異&#xff0c;所以需要針對每個瀏覽器做單獨的設定。 ::-webkit-input-placeholder { /* WebKit browsers */ color: #999; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #999; } ::-moz-placeholder { /* Mozil…

解決Spring自動裝配中的循環依賴

我認為這篇文章是在企業應用程序開發中使用Spring的最佳實踐。 使用Spring編寫企業Web應用程序時&#xff0c;服務層中的服務量可能會增加。 服務層中的每個服務可能會消耗其他服務&#xff0c;這些服務將通過Autowire注入。 問題&#xff1a;當服務數量開始增加時&#xff0…

01.MD5加密

namespace _01.MD5加密{ class Program { static void Main(string[] args) { //MD5加密就是給想要的密碼或者其它字符加密 //如果字符串被加密成MD5值之后,是不可逆的. //字符串123 的MD5 64位加密形式是 202cb962ac59075b964b07152d234b70 Console.WriteLine("請輸入需要…

C語言數字3轉變字符 3 程序,大學c語言知識點總結

大學c語言知識點總結C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。一起來看看大學c語言知識點總結吧!大學c語言知識點總結1、編譯預處理不是C語言的一部分&#xff0c;不再運行時間。C語言編…

接觸Jenkins(Hudson)API,第1部分

哪一個-哈德森還是詹金斯&#xff1f; 都。 幾個月前&#xff0c;我開始使用Hudson v1.395來從事這個小項目&#xff0c;在出現巨大分歧之后又回到了這個項目。 我以此為契機&#xff0c;看我將來選擇永久搬到詹金斯時是否會遇到任何重大問題。 有很多麻煩-最值得注意的是&…

使用javascript模擬常見數據結構(四)

七、樹 樹是一種非線性的分層的數據結構&#xff0c;在現實生活中比較常見的例子比如家譜和公司的組織架構圖&#xff0c;如下所示&#xff1a; 一個樹結構存在著一系列的父子結構&#xff0c;并且有著一個根節點&#xff0c;這種結構本質上表明了一對多的關系。 那&#xff0c…

C語言中實際參數太多,c – 宏的實際參數太多了?

碼&#xff1a;#include using namespace std;#define ADD(x,y) ((x)(y))int main( int argc, char** argv ){cout << ADD(1,2,) << endl;return 0;}編譯器輸出&#xff1a;1>Compiling…1>main.cpp1>c:\warn_test\main.cpp(9) : warning C4002: too many…