首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Activiti 核心類速查:流程引擎、服務、部署、運行時、任務

     編輯:Java 程式設計入門

核心入口

類/介面職責關鍵方法
ProcessEngineConfiguration引擎配置:資料源、建表策略、事務管理buildProcessEngine()
ProcessEngine核心入口,管理所有 ServicegetRepositoryService(), getRuntimeService(), getTaskService()...

七大核心 Service

Service領域典型用途
RepositoryService靜態資源部署流程定義、查詢/刪除/掛起/激活、讀取 BPMN/PNG 資源
RuntimeService運行時流程啟動流程實例、變數操作、信號/訊息觸發、查詢執行對象
TaskService人工任務查詢待辦/已辦、簽收/完成/委派/轉交、任務變數、候選人/組
IdentityService用戶/組用戶/組 CRUD、成員關係、驗證密碼
FormService表單啟動/任務表單資料渲染、提交表單
HistoryService歷史資料查詢歷史流程/活動/任務/變數/詳細、報表統計
ManagementService引擎維護資料庫表結構檢查、作業執行器管理、異步作業查詢/重試

關鍵實體類

  • 部署相關:Deployment、DeploymentBuilder、ProcessDefinition、Resource。
  • 運行相關:ProcessInstance (流程實例)、Execution (執行分支/並行)、ActivityImpl (節點定義)、TransitionImpl (流轉)。
  • 任務相關:Task (人工任務)、TaskQuery、NativeTaskQuery。
  • 歷史相關:HistoricProcessInstance、HistoricActivityInstance、HistoricTaskInstance、HistoricVariableInstance。

常用操作速查

// 1. 部署
repositoryService.createDeployment()
    .name("請假流程")
    .addClasspathResource("processes/leave.bpmn20.xml")
    .addClasspathResource("processes/leave.png")
    .deploy();

// 2. 啟動流程
Map vars = new HashMap<>();
vars.put("applicant", "張三");
vars.put("days", 3);
ProcessInstance pi = runtimeService.startProcessInstanceByKey("leaveProcess", vars);

// 3. 查詢待辦任務
List tasks = taskService.createTaskQuery()
    .taskAssignee("李經理")
    .processDefinitionKey("leaveProcess")
    .list();

// 4. 完成任務
taskService.complete(task.getId(), Collections.singletonMap("approved", true));

// 5. 讀取流程圖片
InputStream png = repositoryService.getResourceAsStream(
    pd.getDeploymentId(), pd.getDiagramResourceName());

建表策略 (ProcessEngineConfiguration)

策略常數行為
DB_SCHEMA_UPDATE_CREATE_DROP啟動建表、關閉刪表 (測試用)
DB_SCHEMA_UPDATE_TRUE啟動檢查並建立/更新表 (開發常用)
DB_SCHEMA_UPDATE_FALSE不自動建表 (生產環境,需手動執行 SQL)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved