activiti7数据库表生成:
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource"></property>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
方式一:
//1.创建ProcessEngineConfiguration对象 第一个参数:配置文件名称 第二个参数是processEngineConfiguration的bean的id
ProcessEngineConfiguration configuration=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//2.创建ProcesEngine对象
ProcessEngine processEngine=configuration.buildProcessEngine();
//3.输出processEngine对象
System.out.println(processEngine);
方式二:
//条件:1.activiti配置文件名称:activiti.cfg.xml 2.bean的id="processEngineConfiguration"
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
System.out.println(processEngine);
----activiti7 25张表格分类
ACT_RE_*: 'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,
规则,等等)
ACT_RU_*: 'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,
等运行中的数据。 Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删
除这些记录。 这样运行时表可以一直很小速度很快。
ACT_HI_*: 'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等
等
ACT_GE_*: GE 表示 general。通用数据, 用于不同场景下
ACT_evt_* 表示日志记录
ACT_procdef_* 表示流程定义信息
-----activi7service职能
RepositoryService activiti 的资源管理类
RuntimeService activiti 的流程运行管理类
TaskService activiti 的任务管理类
HistoryService activiti 的历史管理类
ManagerService activiti 的引擎管理类
RepositoryService是 activiti 的资源管理类,提供了管理和控制流程发布包和流程定义的操作。使用工作流建模工
具设计的业务流程图需要使用此 service 将流程定义文件的内容部署到计算机。
除了部署流程定义以外还可以:
查询引擎中的发布包和流程定义。
暂停或激活发布包,对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了,激活
是对应的反向操作。
获得多种资源,像是包含在发布包里的文件, 或引擎自动生成的流程图。
获得流程定义的 pojo 版本, 可以用来通过 java 解析流程,而不必通过 xml
RuntimeService是 activiti 的流程运行管理类。可以从这个服务类中获取很多关于流程执行相关的信息
TaskService是 activiti 的任务管理类。可以从这个类中获取任务的信息。
HistoryService是 activiti 的历史管理类,可以查询历史信息,执行流程时,引擎会保存很多数据(根据配置),比
如流程实例启动时间,任务的参与者, 完成任务的时间,每个流程实例的执行路径,等等。 这个
服务主要通过查询功能来获得这些数据
--------------activiti7表单属性设置
name 节点名称
assignee 任务人(节点处理人)
---------activiti7流程部署
------activiti7
1.画流程图
2.部署流程图
3.启动流程图
4.查看任务
5.完成任务
-------
//1.创建processEngined对象
ProcessEngine processEngin = ProcessEngines.getDefaultProcessEngine();
//2.得到RepositoryService示例
RepositoryService repositoryService =processEngin.getRepositoryService();
//3.进行部署
Deployment deployment =repositoryService.createDeployment()
.addClasspathResource("diagram/holiday.bpmn")
.addClasspathResource("diagram/holiday.png")
.name("请假申请单流程")
.deploy();
//4.输出部署的一些信息
System.out.println(deployment.getName());
System.out.println(deployment.getId());
---5.启动流程图
ProcessInstance processEngineInstance=runtimeService.startProcessInstanceByKey("myProcess_1");
---6.查看任务
List<Task> taskList=taskService.createTaskQuery().processDefinitionKey("myProcess_1").taskAssignee("zhangsan").list();
---7.完成任务
for (Task task : taskList) {
taskService.complete(task.getId());
System.out.println("流程实例ID:"+task.getProcessInstanceId());//act_hi_procinst
System.out.println("任务ID:"+task.getId());//act_hi_taskinst
System.out.println("任务(节点)负责人:"+task.getAssignee());//act_hi_taskinst
System.out.println("任务(节点)名称:"+task.getName());//act_hi_taskinst
}
---8.删除部署任务(走到一半的流程,不能删除流程定义)
repositoryService.deleteDeployment(processDefinition.getDeploymentId());
--强制删除(级联删除)
repositoryService.deleteDeployment(processDefinition.getDeploymentId(),ture);
------是否暂停
boolean suspend = processDefinition.isSuspended();
if(suspend){
-----激活,这里将流程定义下的所有流程实例全部激活
repositoryService.activateProcessDefinitionById(processDefinitionId,true, null);
-----挂起,这里将流程定义下的所有流程实例全部挂起
repositoryService.suspendProcessDefinitionById(processDefinitionId,true, null);
-----activiti7流程部署影响表
act_re_deployment 部署信息
act_re_procdef 流程定义的一些信息(业务挂钩)
act_ge_bytearray 流程定义的bpmn文件及png文件(业务挂钩)
-----activiti7启动流程实例影响表
act_hi_actinst 已完成的活动信息
act_hi_identitylink 参与者信息
act_hi_procinst 流程实例
act_hi_taskinst 任务实例
act_ru_execution 执行表(业务挂钩)
act_ru_identitylink 参与者信息
act_ru_task 任务(核心表) 任务结束数据删除
-----activiti7查询当前用户的任务列表影响表
act_hi_procinst 流程实例
act_hi_taskinst 任务实例
----activiti7处理当前用户的任务影响表
act_hi_actinst
act_hi_identitylink
act_hi_taskinst
act_ru_identitylink
act_ru_task
----activiti7完成当前用户的任务影响表(taskService.complete("2505");)
act_hi_actinst 已完成的活动信息
act_hi_identitylink 参与者信息
act_hi_procinst 流程实例
act_hi_taskinst 任务实例
act_ru_execution 执行表
act_ru_identitylink 参与者信息
act_ru_task 任务(核心表)
-----activiti7流程删除影响表
act_re_deployment 部署信息
act_re_procdef 流程定义的一些信息
act_ge_bytearray 流程定义的bpmn文件及png文件
----activiti7流程变量影响表
ACT_GE_BYTEARRAY
ACT_RU_VARIABLE
ACT_HI_VARINST
------activiti7流程候选人(candidate users)例:zhangsan,lisi
List<Task> list=taskService.createTaskQuery().processDefinitionKey(key)
//.taskCandidateUser(candidate_users)//设置候选用户
//.taskAssignee(candidate_users)//设置任务负责人
.list();
-----activiti7排他网管(x)
多个条件满足走最小的id
-----activiti7并行网管(+)双
分分支都完成才能走到下一节点
-----activiti7包含网管(O)双
排他网管+并行网管的结合