Flowable快速入門


flowable官方文檔
       官網:https://tkjohn.github.io/flowable-userguide/#_getting_started
  工作流(Workflow),是“業務過程的部分或整體在計算機應用環境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現”。

簡介

  Flowable工作流是active5.x的分支,表結構和框架設計有部分類似的。Flowable集成於springboot,相比Activity使用更方便。
  Flowable的后台是有數據庫的支持,所有的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。 用途也和服務的API對應。
  ACT_RE_*: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態資源 (圖片,規則,配置等)。
  ACT_RU_*: 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數據。 Flowable只在流程實例執行過程中保存這些數據, 在流程結束時就會刪除這些記錄。 這樣運行時表可以一直很小速度很快。
  ACT_ID_*: 'ID'表示identity。 這些表包含身份信息,比如用戶,組等。
  ACT_HI_*: 'HI'表示history。 這些表包含歷史數據,比如歷史流程實例, 變量,任務等。
  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 用戶信息表
這四張表很常見,基本的組織機構管理,如果搭建了flowable-ui,可以匹配對接自定義用戶權限使用。

  通用數據表

1) act_ge_bytearray 二進制數據表
2) act_ge_property 屬性數據表存儲整個流程引擎級別的數據,初始化表結構時,會默認插入三條記錄

流程信息關鍵表名:
act_hi_actinst 、act_hi_identitylink、 act_hi_procinst 、act_hi_taskinst 、act_hi_varinst
act_re_procdef 、act_ru_identitylink 、act_ru_task 、act_ru_execution 、act_ru_variable

部署flowable-ui:

  docker pull flowable/flowable-ui                  #部署flowable服務,設計BPMN流程圖,服務數據是保存在h2數據庫的,重啟以后數據會丟失。

BPMN流程配置xml文件

標識xml:

<sequenceFlow id="flow2" sourceRef="exclusiveGw" targetRef="theTask1">
  <conditionExpression xsi:type="tFormalExpression">${amount <= 500 && amount >= 100}</conditionExpression>
</sequenceFlow>
<userTask id='theTask' name='important task' >
    <potentialOwner>
      <resourceAssignmentExpression>
        <formalExpression>user(kermit), group(management)</formalExpression>
      </resourceAssignmentExpression>
    </potentialOwner>
  </userTask>
<userTask id="theTask" name="my task" flowable:assignee="kermit" />
<userTask id="task" name="My Task" flowable:assignee="${ldapService.findManagerForEmployee(emp)}"/>
<userTask id="theTask" name="my task" flowable:candidateUsers="kermit, gonzo" />
<userTask id="task" name="My Task" flowable:candidateUsers="${ldapService.findAllSales()}"/>
<userTask id="theTask" name="my task" flowable:candidateGroups="management, accountancy" />

示例財務賠償工作流:

 

   職員、有判斷賠償人的職責,部門經理有判斷賠償等級的權利,財務賠償分 A/B/C/D四個等級,C/D等級財務總監就可以直接結束,A/B等級必須經過會計審計后賠償,副總經理審批。

  職員、部門經理、財務總監的流程都可以設置過去,直接走到會計審計處理結束流程。

完整示例Demo在GitHub上:https://github.com/lovelifeming/Resource/tree/master/SpringBoots

 

   其中抽取FlowableService公共層,並自定義了查詢接口,通過示例可以很快根據不同業務控制器構建不同業務流程。

  如果對你用,請掃紅包支持,謝謝!

 

 

作者:Jason Zeng 於 2021-01-25
博客:http://www.cnblogs.com/zengming/
GItHub:https://github.com/lovelifeming
嚴正聲明:
1.由於本博客部分資源來自互聯網,版權均歸原作者所有。轉載的目的是用於學術交流與討論學習,將不對任何資源負法律責任。
2.若無意中侵犯到您的版權利益,請來信聯系我,我會在收到信息后會盡快給予處理!
3.所有資源內容僅供學習交流之用,請勿用作商業用途,謝謝。
4.如有轉發請注明出處,來源於http://www.cnblogs.com/zengming/,謝謝合作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM