作者:漏建波 推荐理由:可以根据此次介绍简单的了解activiti,后面可以持续学习该框架,做一些更加符合也无需求的工作流功能。
activiti的作用在于业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)。
activiti的部署非常简单,只需要http://activiti.org/download.html下载解压,有activiti-explorer.war以及activiti-rest.war俩个war包,解压到tomcat的webapps下,由于使用的是mysql数据库,还需要在db.properties修改数据库配置,把相应的驱动mysql-connector-java-8.0.15.jar拷贝到activiti-explorer/WEB-INF/lib包下。
启动tomcat后就可以通过http://xxxxx/activiti-explorer/,输入用户名,密码可以登录到流程管理后台 Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。 ACT_RE_: ‘RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 ACT_RU_: ‘RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。 ACT_ID_: ‘ID’表示identity。 这些表包含身份信息,比如用户,组等等。 ACT_HI_: ‘HI’表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。 ACT_GE_*: 通用数据, 用于不同场景下,如存放资源文件。 上图的activiti_wf_process_message表是环保新增表,用于关联activiti各表与项目业务表。
之后我们在流程管理平台上维护一个流程实例的模型 我们会发现相应的RE系列表多了数据,分别为ACT_RE_MODEL:流程模型表,ACT_RE_PROCDEF:流程定义表,ACT_RE_DEPLOYMENT:部署对象表,而ACT_GE_BYTEARRAY资源文件表则保存流程图对应的png图片文件地址,以及对应的xml文件。 业务员提交任务时:通过实际业务提交单据时,启动test001工作流,伪代码如下 此时关注下ACT_RU_EXECUTION表和ACT_RU_TASK表,发现生成了对应运行时的流程和任务。
经理审核: 此时发现ACT_RU_EXECUTION表的ACT_ID流程节点已经从业务员的apply1更改为经理的sure1,相对应的ACT_RU_TASK表也进行了变更 需要注意的是RU表只会保存运行中的实例,完成的实例会被移除,以提升运行速度。完成的流程实例储存在相关的HI历史表中,通过HistoryService提供的API获取,在此不做赘述。 最后罗列一下主要Service,以待后续深入学习
RepositoryService 管理流程定义 RuntimeService 执行管理,包括启动、推进、删除流程实例等操作 TaskService 任务管理 HistoryService 历史管理(执行完的数据的管理) IdentityService 组织机构管理 FormService 一个可选服务,任务表单管理 ManagerService 流程引擎上的管理和维护操作服务,通常在操作工作台使用