工作流Activiti简介

1.简述

项目中对于多表单提交、多角色审核的业务流程可以用工作流框架进行简化,目前业界最主流工作流技术就是Activiti,由于Activiti是由BPMN语言定义的,语言比较陌生,可使用BPMN设计器基于bpmn-js来实现工作流的开发,设计器网址:GitHub - Activiti/activiti-modeling-app: Activiti Modeling Application

2.环境搭建(SpringBoot集成了Activiti)

2.1 activiti7以后导入依赖需要引入安全框架

依赖:activiti-spring-boot-starter与spring-boot-starter-security

2.2 application.yml中activiti的配置如check-process-definitions关闭流程自动部署,需要手动部署流程

3.数据表快速了解

配置启动类,启动后会自动生成以ACT开头的25张表与项目中的表加以区分

GE 为通用信息  

RE 为流程定义

RU 为运行时的表

HI 为历史记录

25张表对应的表操作封装了对应的Service

RepositoryService、RuntimeService、TaskService、HistoryService

快速入门可重点掌握4张表,2张用于流程定义,2张用于具体流程实例

act_re_deployment    act_re_procdef    act_ru_execution   act_ru_task观察每个流程后其中字段的变化

4.bpmn-js图形化流程绘制

注意整个流程编号(代码用)和名称(给人看)的填写

代理人可以是UEL表达式分配,即人的占位符占位

也可以采用监听器,监听(如create事件)后进行具体执行人分配

也可采用候选人机制(可以是候选人也可以是候选组)

整个流程按流程走向,遇到流程网关,会根据网关判断下个流程的分流走向

流程网关分:排他网关、并行网关、包容网关

绘制完毕后导出相应的bpmn文件,最好png也截图存好(js重开无历史记录)

5.代码流程思路

5.1部署流程

repositoryService加载bpmn文件,对应名字为之前图形化界面流程编号名字

deploy开始部署

5.2启动流程实例

runtimeService获取各个执行流程的执行人信息,给流程中的变量进行赋值,流程人根据具体业务而定.

taskService各执行人按流程填写信息,后台获取,走流程即可

其中候选人机制还需拾取任务,如过不想操作可归还和交接任务

你可能感兴趣的:(java,开发语言)