1. 程式人生 > >【本人禿頂程式設計師】三分鐘讓你明白 Activity工作流(java運用)

【本人禿頂程式設計師】三分鐘讓你明白 Activity工作流(java運用)

←←←←←←←←←←←← 我都禿頂了,還不點關注!

一. 什麼是工作流

以請假為例,現在大多數公司的請假流程是這樣的

員工打電話(或網聊)向上級提出請假申請——上級口頭同意——上級將請假記錄下來——月底將請假記錄上交公司——公司將請假錄入電腦

採用工作流技術的公司的請假流程是這樣的

員工使用賬戶登入系統——點選請假——上級登入系統點選允許

就這樣,一個請假流程就結束了

有人會問,那上級不用向公司提交請假記錄?公司不用將記錄錄入電腦?答案是,用的。但是這一切的工作都會在上級點選允許後自動執行!

這就是工作流技術。

Georgakopoulos給出的工作流定義是:工作流是將一組任務組織起來以完成某個經營過程:定義了任務的觸發順序和觸發條件,每個任務可以由一個或多個軟體系統完成,也可以由一個或一組人完成,還可以由一個或多個人與軟體系統協作完
在這裡插入圖片描述

二.工作流技術的優點

從上面的例子,很容易看出

工作流系統,實現了工作流程的自動化,提高了企業運營效率、改善企業資源利用、提高企業運作的靈活性和適應性、提高量化考核業務處理的效率、減少浪費(時間就是金錢)。

而手工處理工作流程,一方面無法對整個流程狀況進行有效跟蹤、瞭解,另一方面難免會出現人為的失誤和時間上的延時導致效率低下,特別是無法進行量化統計,不利於查詢、報表及績效評估。

三. Java開發者會為什麼要學Activity工作流

在Java領域,JBPM和Activity是兩個主流的工作流系統,而Activity的出現無疑將會取代JBPM(Activity的開發者就是從Jbpm開發者出來的)。

四.Activity工作流學習要點

  1. 1個外掛

在Eclipse中安裝Activity外掛,讓你可以在Eclipse中繪製Activity工作流圖

  1. 1個引擎

ProcessEngine物件,Activity工作流引擎。這是Activiti工作的核心。負責生成流程執行時的各種例項及資料、監控和管理流程的執行。

所有的操作都是從獲取引擎開始的,所以一般會把引擎作為全域性變數

ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();

  1. 1個配置檔案

activiti.cfg.xml。Activiti核心配置檔案,配置流程引擎建立工具的基本引數和資料庫連線池引數

  1. 5種資料庫表

Activiti的後臺是有資料庫的支援,所有的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。用途也和服務的API對應。

ACT_RE_*: 'RE’表示repository。 這個字首的表包含了流程定義和流程靜態資源(圖片,規則,等等)。

ACT_RU_*: 'RU’表示runtime。 這些執行時的表,包含流程例項,任務,變數,非同步任務,等執行中的資料。 Activiti只在流程例項執行過程中儲存這些資料,在流程結束時就會刪除這些記錄。 這樣執行時表可以一直很小速度很快。

ACT_ID_*: 'ID’表示identity。 這些表包含身份資訊,比如使用者,組等等。

ACT_HI_*: 'HI’表示history。 這些表包含歷史資料,比如歷史流程例項,變數,任務等等。

ACT_GE_*: 通用資料,用於不同場景下,如存放資原始檔。

  1. 23張表

不同的表存放不同方面的資料,有流程定義表、任務結點表、流程變量表、任務歷史表等等。
在這裡插入圖片描述

  1. 5項Service

不同的Service類對應不同的功能。

比如TaskService,是activiti的任務服務類。可以從這個類中獲取任務的資訊。

而HistoryService,則是activiti的查詢歷史資訊的類。在一個流程執行完成後,這個物件為我們提供查詢歷史資訊。

  1. 7項基本操作

設計流程圖(各種元件,如連線、使用者任務、閘道器)

流程定義增刪改查

流程變數增刪改查

啟動流程定義

任務增刪改查

完成任務

歷史資訊查詢

寫在最後:

禿頂程式設計師的不易,看到這裡,點了關注吧!
點關注,不迷路,持續更新!!!