1. 程式人生 > >activiti開發注意事項

activiti開發注意事項

1, 畫流程圖

一個流程圖必須有一個或一個以上預設流

流程判斷兩個流出的線一定要帶上引數進行判斷

流程圖的許可權分配:assignee(不包括),candidateUsers(哪些使用者), candidateGroups(哪些角色)

2, 開啟流程

ProcessInstance procInst = runtimeService.startProcessInstanceByKey("orderManage");

process.setB_obj_id(procInst.getId());

引數是流程圖的ID,表示開啟一個流程,流程開始,等待第一個人簽收,返回的是流程的實列,可以得到流程ID。

3, 查詢簽收審批任務

// 根據當前人的ID查詢

String username = this.getUser().getUserName();

identityService.setAuthenticatedUserId(username);

//當前人要審批的任務

TaskQuery todoQuery = taskService.createTaskQuery()

.taskAssignee(username).active()

.orderByTaskCreateTime().desc();

// 根據當前人未簽收的任務

TaskQuery claimQuery = taskService

.createTaskQuery()

.taskCandidateUser(username).active()

.orderByTaskId().desc().orderByTaskCreateTime().desc();

List<Task> todoList = todoQuery.list();

List<Task>unsignedTasks = claimQuery.list();

得到系統當前使用者名稱,根據使用者名稱得到這個使用者當前要審批的任務和要簽收的任務(一個流程可以包括好幾個任務,任務是人去接收的,所以流程圖的兩個角色之間就是一個任務)

注意:這裡返回的只是任務的實列,能夠得到的是任務的taskId,taskName,

StringprocessInstanceId = task.getProcessInstanceId();

根據這個得到流程ID,因為我們存的工單是要存這個流程id的,所以能根據這個id找到對應的工單。

注意:這裡要傳入任務的taskid,因為下一個人簽收的時候要根據這個taskId去進行簽收任務。

4, 簽收和審批任務

簽收:taskService.claim(taskId, username);taskid是指任務id,表示簽收哪個任務,username是指使用者名稱,表示哪個使用者去簽收

審批:taskService.complete(taskId, map);taskId是指任務id,表示審批哪個任務,map可以穿入引數,一般審批要有兩個分支,通過和不通過,引數要放進map裡面。另外還可以傳入別的引數,下一步得到。

5, 刪除流程

runtimeService.deleteProcessInstance(processInstanceId,"deleteby applicant");傳入流程id,結束一個流程。

6, 流程中使用者角色

流程中使用者角色用的特別多,其實流程主要就是這個用處。所以要對系統中的一些關於使用者,部門,角色的方法做一些瞭解,這裡用的比較多。

String username =this.getUser().getUserName();

得到使用者名稱

User user =userService.loadUserByUsername(username);

根據當前使用者名稱得到使用者的資訊。(user可以得到使用者部門,但是這個是懶載入,只能在service中的到,不能再@Controller中得到。)

List<String>userRoleNames = userService.getUserRoleNames(user.getId());

根據使用者名稱得到使用者角色

7, 一些activiti中用到的表格

這些表格在系統使用者表中,因為要喝使用者做關聯。

create view act_id_group as SELECT sr.NAME_ as ID_,1 asREV_,sr.NAME_CN as NAME_,null as TYPE_ from sys_role sr;

CREATE view act_id_info as SELECT su.USERNAME as ID_,1 asREV_,su.USERNAME as USER_ID_,null as TYPE_,null as KEY_,null asVALUE_,su.PASSWORD_ as PASSWORD_,null as PARENT_ID_ from sys_user su;

create view act_id_membership as SELECT su.USERNAME asUSER_ID_,sr.NAME_ as GROUP_ID_ from sys_userrole ur,sys_user su,sys_role srWHERE su.ID_=ur.USER_ID and ur.ROLE_ID=sr.ID_;

create viewact_id_user as SELECT su.USERNAME as ID_,1 as REV_,su.FULLNAME asFIRST_,su.NAME_PINYIN as LAST_,su.EMAIL_ as EMAIL_,su.PASSWORD_ as PWD_,null asPICTURE_ID_ from sys_user su;

建立四個檢視,這四個本來是activiti中的表,我們只是和我們系統中的使用者做了一個對應,所以用這幾個檢視來代替表格。

ACT_RU_TASK :系統正在跑的幾個流程,一個流程被刪除,記錄相對應的被刪除。

ACT_HI_PROCINST:任務記錄表,做一步操作會有條記錄,一個任務結束下一個任務會開始,一旦所有的任務都有結束時間了,那麼流程也就結束了。

8, 兩個流程圖的角色分配

角色分配: 建立人:分公司運維考核牽頭人(orderUser1)

                    初審:省專業室運維考核牽頭人(orderUser2)

          終審:分公司稽核專案經理許可權(orderUser3)

角色分配: 建立人:省專業室運維考核牽頭人(orderUser2)

          初審:分公司稽核專案經理許可權(orderUser3)

終審:專業室流程終審(orderUser4)

相關推薦

activiti開發注意事項

1, 畫流程圖 一個流程圖必須有一個或一個以上預設流 流程判斷兩個流出的線一定要帶上引數進行判斷 流程圖的許可權分配:assignee(不包括),candidateUsers(哪些使用者), candidateGroups(哪些角色) 2, 開啟流程 ProcessIn

android開發注意事項

1.下載Android Studio完成後,第一次啟動又會卡住,彈出 "Fetching android sdk component information" 對話方塊,這是Android Studio在檢查sdk的更新,我們會被牆;解決方法:在Android Studio的安裝目錄的bin資料夾下

文章索引-軟體開發注意事項(未完待續)

  此處整理解決一些問題的關鍵點。   Windows:   防火牆: Exercising the Firewall using C++  。 VC2010編譯,Win7,Win10實驗成功,Exe需要管理員執行。 降低-記憶體(

購物商城app開發注意事項

隨著科技網際網路的飛速發展和不斷創新,目前有很多APP開發不斷在市場上湧現,就目前而言,網上商城app開發引起很多人關注,最受大眾關注的焦點是購物商城app開發價格,下面小編展開來進行分析。 下面就具體談到關於影響到“購物類app軟體開發費用”的幾個因素如下: 1、app軟體的一個開發

Web 安全開發注意事項

一、背景 最近開發公司的WEB專案,商密技術研究部領導推出了一套測試規範,規範中包括web端安全測試掃描,掃描結果不盡如人意,因此蒐集及整理如下web安全開發事項。 二、編碼安全策略 簡述:不要相信任何來自客戶端提交的資料,比如URL和引數,HTTP頭部、javascript或者其他嵌入程式碼提交的資料

springboot下多執行緒開發注意事項

基於springboot的多執行緒程式開發過程中,由於本身也需要注入spring容器進行管理,才能發揮springboot的優勢。所以這篇文字主要用來記錄開發中兩者結合時需要注意的一些事項。 第一步我們把執行緒類的例項注入sping容器進行管理 @Configuration @SpringBootAppli

ssm之路(15)整合ssm+逆向工程開發注意事項(Result Maps collection already contains value for cn.itcast.ssm.mapper.It)

這裡有個結合逆向工程來使用的坑: 上一章中整合遇到問題,有個關於逆向工程的坑,這裡需要說明一下: 因為我是通過mapper代理方式來整合的,所以當我再mapper裡新建我要自定義的檔案時,會造成無意不遵循規範的錯誤 我是通過mapper代理開發的方式來弄的,通過Ma

移動端那些事兒(一)移動端開發注意事項

對於手機網站建設,總結了如下幾點注意: 1、 安卓瀏覽器看背景圖片,有些裝置會模糊。 用同等比例的圖片在PC機上很清楚,但是手機上很模糊,原因是什麼呢? 經過研究,是devicePixelRatio作怪,因為手機解析度太小,如果按照解析度來顯示網頁,這樣字會非常小,所以蘋果當初就把iPhone 4的9

64位平臺C/C++開發注意事項(轉載)

Lesson 01. What 64-bit systems are.Lesson 02. Support of 32-bit applications.Lesson 03. Porting code to 64-bit systems. The pros and cons.Lesson 04.

電商類APP開發注意事項彙總

怎麼開發電商App才“靠譜”?這是一個刁鑽的問題,因為好的電商類App開發取決於多個方面,包括App價格,App功能,公司開發實力,營銷渠道等。 1 App價格便宜 App開發費用總是人們考慮的第一位,現在市場對於價格問題仍然比較敏感。 從大體上來講,刨除App開發的差異性

Go語言中編譯、執行,以及開發注意事項

** 編譯 ** 1.有了go原始檔,通過編譯器將其編譯成機器可以識別的二進位制原始碼檔案 2.在該原始檔目錄下,通過go build對原始檔.go進行編譯,可以指定生成的可執行檔名,在Windows下必須是.exe字尾 go build -o 新檔名.exe 原始檔名.go

Android開發注意事項(時刻謹記)

異常處理 1、 空指標異常。物件都有生命週期,使用一個物件時需要對其狀態進行判斷。 2、 越界異常。 3、 OOM。 4、 BadTokenException。 體驗優化 1、 頁面載入速度。 2、 頁面響應速度。 測試 1、 測試Log使用特有的格式,方便刪除 2、 測試程式碼通過@T

微信分享到朋友圈、傳送給朋友開發注意事項

1、invalid url domain 當前頁面所在域名與使用的appid沒有繫結,請確認正確填寫繫結的域名,如果使用了埠號,則配置的繫結域名也要加上埠號(一個appid可以繫結三個有效域名,見 目錄1.1.1)。 2、invalid signature簽名錯誤。 建議按如下順序檢查:

一個程式設計師的總結——開發注意事項

    一年到頭了,作為本命年的我,今年發生了太多的事情,但是不幸的是,都是好事兒,有點太過得意洋洋了,不過,不管一年順抑或不順,都是需要總結的,畢竟,總結,才能讓人成長,首先,想注意的事情就是開發注意事項。     特別想說一件事情,公司每個功能上線之前都要測試,在測試環

微信小程式和微信公眾號開發注意事項(有些是從微信開發文件中摘抄出來的)

先從簡單的說起 (會提醒你的一些注意事項) 1、微信公眾號和小程式名稱可以由中文、數字、英文。長度在3-20個字元之間,一箇中文字等於2個字元。 2、微信公眾號和小程式名稱不得與公眾平臺已有的訂閱號

java web,開發注意事項

匯出的jar如何讓springMVC能掃描到? 開發中發現,打包成jar然後再匯入到專案中springMVC掃描不到,於是查詢資料終於解決了這個問題。 怎麼匯出jar? 將jar配置到專案? 新建一個資料夾用於存放jar的 然後選擇要設定的jar,點選f

關於apicloud開發注意事項

1、apicloud   api地址http://www.apicloud.com需要用到的模組  技術      mcm  極光推送  db   restapi 2、apicloud是用json格

SQL開發注意事項

不要使用count(列名)或count(常亮)代替 count()。說明:count()會統計值為null的行,而count(列)不會統計此列為null值的行。 當某一列的值全為null時,count(col)的返回結果為0,但sum(col)的結果為null,所以使用sum(

Android 開發注意事項

1、平時Intent 傳遞圖片的時候,不要直接傳data,要傳遞 URL 來處理,否則大圖片容易傳輸失敗。 E/JavaBinder(29445): !!! FAILED BINDER TRANSACTION !!! (parcel size = 2560292)2、通

前端開發注意事項個人參考

一、html頁面結構 1、標籤儘量使用語義化標籤,使人一目瞭然,下面是一些常見的語義化標籤 <header></header>:通常包括網站標誌、主導航、全站連結以及搜尋框。 <nav></nav>:標記導航,一般用於主要的導航欄