Activiti工作流-簡介篇

藍星花發表於2018-12-01

一、前言

工作流(Workflow),就是“業務過程的部分或整體在計算機應用環境下的自動化”。在工作中慢慢接觸的業務流程,就向流程控制語言一樣,一步一步都對應的不同的業務,但整體串聯起來就是一個完整的業務。而且實際工作中尤其是在企業內部系統的研發中,確實需要對應許多審批流程的管理。而工作流就是能夠在程式中,將這些支離破碎的流程,通過配置的方式管理起來,整體作為一個流程,方便修改,也方便維護。

demo:

我們在學生時代,肯定會遇到請假寫請假條的情況,如果學校的請假抓得非常嚴,就需要經過多層的同意才能確定能不能請假…
在這裡插入圖片描述

班主任->任課老師->教學總監->校長這麼一個流程,首先我們先明確一點:我們作為一個學生,不可能直接跳過老師,去找校長申請請假的.因此我們請假的流程是一步一步的,並不能做跳躍。對上面的請假流程進行分析**,如果我們沒有使用框架,而把這麼一個請假流程寫到我們的網站中,我們會怎麼做呢???


二、什麼是Activiti工作流框架?

Activiti是一個比較出名的框架,或者說就是一個工作流引擎,通俗的說,就是Activiti引擎我們只要按照它已有的配置,來進行現有業務的對應,它就能夠自動幫助我們完成以前不好控制的流程問題。

官網通用打包下載:http://www.activiti.org/
原始碼github:https://github.com/Activiti/Activiti

在這裡插入圖片描述

三、採用工作流框架優點

1、提高系統的柔性,適應業務流程的變化
2、實現更好的業務過程控制,提高顧客服務質量
3、降低系統開發和維護成本


四、快速入門Activiti

1.Activiti的開發步驟:

1.首先就要把這個工作流定義出來(Activiti支援以“圖”的方式來定義)
2.定義完工作流,就要部署到起來
3.隨後我們就執行該工作流!

但是在實際開發中,讓使用者來畫Activiti定義圖,是要學習的成本的。所以我們會以一個更簡單的方式來定義流程,比如選好流程審批節點對應的使用者,這樣就定義好了一個流程。
在這裡插入圖片描述

在這裡插入圖片描述


2.資料庫相關(23張表)

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

  1. ACT_RE_*: 'RE’表示repository。 這個字首的表包含了流程定義和流程靜態資源 (圖片,規則,等等)。
  2. ACT_RU_*: 'RU’表示runtime。 這些執行時的表,包含流程例項,任務,變數,非同步任務,等執行中的資料。 Activiti只在流程例項執行過程中儲存這些資料, 在流程結束時就會刪除這些記錄。 這樣執行時表可以一直很小速度很快。
  3. ACT_ID_*: 'ID’表示identity。 這些表包含身份資訊,比如使用者,組等等。
  4. ACT_HI_*: 'HI’表示history。 這些表包含歷史資料,比如歷史流程例項, 變數,任務等等。
  5. ACT_GE_*: 通用資料, 用於不同場景下,如存放資原始檔。
    在這裡插入圖片描述
資源庫流程規則表
  1. act_re_deployment 部署資訊表
  2. act_re_model 流程設計模型部署表
  3. act_re_procdef 流程定義資料表
執行時資料庫表
  1. act_ru_execution執行時流程執行例項表
  2. act_ru_identitylink執行時流程人員表,主要儲存任務節點與參與者的相關資訊
  3. act_ru_task執行時任務節點表
  4. act_ru_variable執行時流程變數資料表
歷史資料庫表
  1. act_hi_actinst 歷史節點表
  2. act_hi_attachment歷史附件表
  3. act_hi_comment歷史意見表
  4. act_hi_identitylink歷史流程人員表
  5. act_hi_detail歷史詳情表,提供歷史變數的查詢
  6. act_hi_procinst歷史流程例項表
  7. act_hi_taskinst歷史任務例項表
  8. act_hi_varinst歷史變數表
組織機構表
  1. act_id_group使用者組資訊表
  2. act_id_info使用者擴充套件資訊表
  3. act_id_membership使用者與使用者組對應資訊表
  4. act_id_user使用者資訊表
通用資料表
  1. act_ge_bytearray二進位制資料表
  2. act_ge_property屬性資料表儲存整個流程引擎級別的資料,初始化表結構時,會預設插入三條記錄。

把這些東西瞭解清楚了,那接下我們開始怎麼在Activiti框架上實現我們的工作流呢???

相關文章