赞
踩
下载后部署到tomcat中运行
人员变量 ${user}
条件变量 ${condition=='ok'}
ui各组件功能持续更新中......
ACT_RE “RE”表示repository,包含流程定义和流程静态资源
ACT_RU "RU"表示runtime,表示运行中的表,包含流程实例,任务,变量,异步任务等运行中的数据。flowable只在流程实例执行过程中保存这些数据,在流程结束时就会删掉这些记录。这样运行时表可以一直很小速度很快。
ACT_HI "HI"表示history,包含历史数据,比如历史流程,变量,任务等等
ACT_GE "GE"表示general,通用数据
ACT_ID "ID"表示identity,包含标识的信息,如用户,用户组等等
表分类 | 表名 | 备注 |
---|---|---|
一般数据 | ||
ACT_GE_BYTEARRAY | 通用的流程定义和流程资源 | |
ACT_GE_PROPERTY | 系统相关属性 | |
流程历史记录 | ||
ACT_HI_ACTINST | 历史的流程实例 | |
ACT_HI_ATTACHMENT | 历史的流程附件 | |
ACT_HI_COMMENT | 历史的说明性信息 | |
ACT_HI_DETAIL | 历史的流程运行中的细节信息 | |
ACT_HI_IDENTITYLINK | 历史的流程运行过程中用户关系 | |
ACT_HI_PROCINST | 历史的流程实例 | |
ACT_HI_TASKINST | 历史的任务实例 | |
ACT_HI_VARINST | 历史的流程运行中的变量信息 | |
流程定义表 | ||
ACT_RE_DEPLOYMENT | 部署单元信息 | |
ACT_RE_MODEL | 模型信息 | |
ACT_RE_PROCDEF | 已部署的流程定义 | |
运行实例表 | ||
ACT_RU_EVENT_SUBSCR | 运行时事件 | |
ACT_RU_EXECUTION | 运行时流程执行实例 | |
ACT_RU_IDENTITYLINK | 运行时用户关系信息,存储任务节点与参与者的相关信息 | |
ACT_RU_JOB | 运行时作业 | |
ACT_RU_TASK | 运行时任务 | |
ACT_RU_VARIABLE | 运行时变量表 | |
用户/用户组表 | ||
ACT_ID_BYTEARRAY | 二进制数据表 | |
ACT_ID_GROUP | 用户组信息表 | |
ACT_ID_INFO | 用户信息详情表 | |
ACT_ID_MEMBERSHIP | 人与组关系表 | |
ACT_ID_PRIV | 权限表 | |
ACT_ID_PRIV_MAPPING | 用户或组权限关系表 | |
ACT_ID_PROPERTY | 属性表 | |
ACT_ID_TOKEN | 用户记录的token信息 | |
ACT_ID_USER | 用户表 |
- <dependency>
- <groupId>org.flowable</groupId>
- <artifactId>flowable-spring-boot-starter</artifactId>
- <version>6.5.0</version>
- </dependency>
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>1.3.176</version>
- </dependency>
- #数据库配置
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
- username: ******
- password: ******
- #flowable配置
- flowable:
- #关闭定时任务JOB
- async-executor-activate: false
- #更新数据表结构
- database-schema-update: true
SpringBoot会自动把resources/processes文件目录下的bpmn20.xml文件自动部署到数据库中,检查数据库表结构并生成表,但每次启动项目时都会检查数据库,所以启动时间比较长,也可进行手动部署
- //手动部署代码
- RepositoryService repositoryService = processEngine.getRepositoryService();
- Deployment deployment = repositoryService.createDeployment()
- .addClasspathResource("Safe.bpmn20.xml")
- .name("审批流程")
- .deploy();
如有空指针异常,则检查文件名或删除target文件重新运行
- HashMap<String, Object> varivales = new HashMap<>();
- // 巡查人
- varivales.put("patrol_by", "巡查人");
- // 审核人
- varivales.put("audit_by", "审核人");
- // 回复人
- varivales.put("modify_by", "回复人");
- // 审批人
- varivales.put("examine_by", "审批人");
- // "SafePatrol"为xml文件中process标签中的id
- runtimeService.startProcessInstanceByKey("SafePatrol", varivales);
varivales中的数据为用户变量,储存在act_ru_variable表中
- // 执行流程
- TaskService taskService = processEngine.getTaskService();
- SafePatrol safePatrol1 = safeModifyMapper.selectSafeModifyByPatrolId(safeFlowable.getPatrolId());
- Task task = taskService.createTaskQuery()
- // 流程id
- .processInstanceId("ProcessInstanceId")
- // 审批人
- .taskAssignee("审批人")
- .singleResult();
- Map<String, Object> map = new HashMap<>();
- // 审批意见
- map.put("audit", "通过");
- taskService.complete(task.getId(), map);
- List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery()
- // 流程id
- .processInstanceId("ProcessInstanceId")
- .finished()
- .orderByHistoricActivityInstanceEndTime().asc()
- .list();
-
- for (HistoricActivityInstance history : list) {
- // 流程名称
- history.getActivityName();
- // 执行人员
- history.getAssignee();
- // 执行时间
- history.getTime();
- }
- List<Task> list = taskService.createTaskQuery()
- // 流程id
- .processInstanceId("ProcessInstanceId")
- // 用户id
- .taskAssignee("user")
- .list();
-
- for (Task task : list) {
- // 任务节点
- task.getName();
- // 执行人员
- task.getAssignee();
- }
- processEngine.getProcessEngineConfiguration().buildProcessEngine();
- RepositoryService repositoryService = processEngine.getRepositoryService();
- // 删除部署的流程,如果部署的流程启动了就不允许删除 true表示流程启动了仍可以删除
- repositoryService.deleteDeployment(deploymentId, true);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。