一次可以部署多个流程定义

act_re_deployment 与 act_re_procdef 是一对多。

发起的流程与实际业务的关联关系,businessKey 很重要,当然也可以自定义变量

ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey);

数据表间的关系,很多表是自关联(某 raw 通过字段关联另 row 字段)

  1. CREATE TABLE `act_ru_identitylink` (
  2. `ID_` varchar(64) COLLATE utf8_bin NOT NULL,
  3. `REV_` int DEFAULT NULL,
  4. `GROUP_ID_` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  5. `TYPE_` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  6. `USER_ID_` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  7. `TASK_ID_` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  8. `PROC_INST_ID_` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  9. `PROC_DEF_ID_` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  10. PRIMARY KEY (`ID_`),
  11. KEY `ACT_IDX_IDENT_LNK_USER` (`USER_ID_`),
  12. KEY `ACT_IDX_IDENT_LNK_GROUP` (`GROUP_ID_`),
  13. KEY `ACT_IDX_ATHRZ_PROCEDEF` (`PROC_DEF_ID_`),
  14. KEY `ACT_FK_TSKASS_TASK` (`TASK_ID_`),
  15. KEY `ACT_FK_IDL_PROCINST` (`PROC_INST_ID_`),
  16. CONSTRAINT `ACT_FK_ATHRZ_PROCEDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`),
  17. CONSTRAINT `ACT_FK_IDL_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`),
  18. CONSTRAINT `ACT_FK_TSKASS_TASK` FOREIGN KEY (`TASK_ID_`) REFERENCES `act_ru_task` (`ID_`)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

对于没有分配的任务,需要先拾取 claim,然后才能完成。

taskService.claim(taskId,candidateUser);
taskService.complete(taskId);

对于已经 claim 或分配的任务,归还

// 如果设置为null,归还组任务,该 任务没有负责人
taskService.setAssignee(taskId, null);