2024全网最全Activiti7教程03(Activiti7基本操作-欢迎收藏)

// 定义zip文件的输入流

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(“bpmn/evection.zip”);

// 对 inputStream 做装饰

ZipInputStream zipInputStream = new ZipInputStream(inputStream);

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

RepositoryService repositoryService = engine.getRepositoryService();

Deployment deploy = repositoryService.createDeployment()

.addZipInputStream(zipInputStream)

.name(“出差申请流程”)

.deploy();

// 4.输出流程部署的信息

System.out.println(“流程部署的id:” + deploy.getId());

System.out.println(“流程部署的名称:” + deploy.getName());

}

上传后的数据库中的数据和单个文件上传其实是一样的。

1.3 操作数据表

流程定义部署后操作activiti中的三张表

act_re_deployment: 流程定义部署表,每部署一次就增加一条记录

在这里插入图片描述

act_re_procdef :流程定义表,部署每个新的流程定义都会在这张表中增加一条记录

在这里插入图片描述

act_ge_bytearray :流程资源表,流程部署的 bpmn文件和png图片会保存在该表中

在这里插入图片描述

2 启动流程实例


流程定义部署在Activiti后就可以通过工作流管理业务流程,也就是说上边部署的出差申请流程可以使用了。

针对该流程,启动一个流程表示发起一个新的出差申请单,这就相当于Java类和Java对象的关系,类定义好了后需要new创建一个对象使用,当然可以new出多个对象来,对于出差申请流程,张三可以发起一个出差申请单需要启动一个流程实例。

/**

  • 启动一个流程实例

*/

@Test

public void test05(){

// 1.创建ProcessEngine对象

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

// 2.获取RuntimeService对象

RuntimeService runtimeService = engine.getRuntimeService();

// 3.根据流程定义的id启动流程

String id= “evection”;

ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(id);

// 4.输出相关的流程实例信息

System.out.println(“流程定义的ID:” + processInstance.getProcessDefinitionId());

System.out.println(“流程实例的ID:” + processInstance.getId());

System.out.println(“当前活动的ID:” + processInstance.getActivityId());

}

输出内容:

在这里插入图片描述

启动流程实例涉及到的表结构

act_hi_actinst 流程实例执行历史

act_hi_identitylink 流程的参与用户的历史信息

act_hi_procinst 流程实例历史信息

act_hi_taskinst 流程任务历史信息

act_ru_execution 流程执行信息

act_ru_identitylink 流程的参与用户信息

act_ru_task 任务信息

3 任务查找


流程启动后,任务的负责人就可以查询自己当前能够处理的任务了,查询出来的任务都是当前用户的待办任务

/**

  • 任务查询

*/

@Test

public void test06(){

String assignee =“zhansan”;

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

// 任务查询 需要获取一个 TaskService 对象

TaskService taskService = engine.getTaskService();

// 根据流程的key和任务负责人 查询任务

List list = taskService.createTaskQuery()

.processDefinitionKey(“evection”)

.taskAssignee(assignee)

.list();

// 输出当前用户具有的任务

for (Task task : list) {

System.out.println(“流程实例id:” + task.getProcessInstanceId());

System.out.println(“任务id:” + task.getId());

System.out.println(“任务负责人:” + task.getAssignee());

System.out.println(“任务名称:” + task.getName());

}

}

输出结果

在这里插入图片描述

4 流程任务处理


任务负责人查询出来了待办的人,选择任务进行处理,完成任务

/**

  • 流程任务的处理

*/

@Test

public void test07(){

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

TaskService taskService = engine.getTaskService();

Task task = taskService.createTaskQuery()

.processDefinitionKey(“evection”)

.taskAssignee(“zhansan”)

.singleResult();

// 完成任务

taskService.complete(task.getId());

}

zhangsan处理了这个操作后,流程就流转到了 lisi处

在这里插入图片描述

然后就是不同的用户登录,然后查询任务处理任务,直到任务流程走完。

5 流程定义的查询


查询流程相关的信息,包括流程的定义,流程的部署,流程定义的版本

/**

  • 查询流程的定义

*/

@Test

public void test08(){

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

RepositoryService repositoryService = engine.getRepositoryService();

// 获取一个 ProcessDefinitionQuery对象 用来查询操作

ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();

List list = processDefinitionQuery.processDefinitionKey(“evection”)

.orderByProcessDefinitionVersion() // 安装版本排序

.desc() // 倒序

.list();

// 输出流程定义的信息

for (ProcessDefinition processDefinition : list) {

System.out.println(“流程定义的ID:” + processDefinition.getId());

System.out.println(“流程定义的name:” + processDefinition.getName());

System.out.println(“流程定义的key:” + processDefinition.getKey());

System.out.println(“流程定义的version:” + processDefinition.getVersion());

System.out.println(“流程部署的id:” + processDefinition.getDeploymentId());

}

}

输出结果

流程定义的ID:evection:1:12504

流程定义的name:出差申请单

流程定义的key:evection

流程定义的version:1

流程部署的id:12501

6 流程的删除


/**

  • 删除流程

*/

@Test

public void test09(){

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

RepositoryService repositoryService = engine.getRepositoryService();

// 删除流程定义,如果该流程定义已经有了流程实例启动则删除时报错

repositoryService.deleteDeployment(“12501”);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

分布式技术专题+面试解析+相关的手写和学习的笔记pdf

还有更多Java笔记分享如下:

image

IKfSq-1711724827233)]
[外链图片转存中…(img-6rpxiY2y-1711724827233)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-uywmOrOT-1711724827234)]

最后

分布式技术专题+面试解析+相关的手写和学习的笔记pdf

还有更多Java笔记分享如下:

[外链图片转存中…(img-wqYcF9eh-1711724827234)]

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Activiti7 是一个开源的工作流和业务流程管理平台,其教程视频可以帮助用户快速了解和上手使用该平台。这些教程视频通常包括以下内容: 1. 简介和功能介绍:教程视频会首先介绍 Activiti7 平台的基本概念、主要功能和应用领域。这部分内容帮助用户了解 Activiti7 平台的基本特点和用途。 2. 安装和配置:这一部分会详细介绍如何下载、安装和配置 Activiti7 平台。教程视频中会演示如何设置数据库连接、管理用户和角色、配置权限等操作。 3. 模型和设计:教程视频会介绍如何创建工作流模型和业务流程设计。用户可以学习如何使用 Activiti7 的建模工具来创建和编辑模型,定义流程环节、分支和约束条件等。 4. 运行和监控:在这一部分,教程视频会演示如何部署和运行 Activiti7 的流程实例,以及如何监控和调整流程的运行状态。用户可以学习如何查看任务列表、审批流程、查找流程变量等操作。 5. 高级功能:教程视频还会介绍 Activiti7 平台的一些高级功能和扩展方法,如定时任务、事件监听、任务调度等。用户可以根据自己的需求选择学习和使用这些功能。 通过观看 Activiti7 的教程视频,用户可以快速入门并掌握这个强大的工作流和业务流程管理平台的使用方法。同时,用户还可借助视频中的实例演示和操作指导来加深理解和掌握各项功能。教程视频的存在为用户提供了一个学习和使用 Activiti7 的有效途径,使用户能够轻松上手并在实际应用中发挥其价值。 ### 回答2: activiti7 教程视频是一系列关于 activiti7 工作流引擎的教学视频。活动7是一个开源的业务流程管理(BPM)和工作流引擎,它提供了强大的功能来设计、部署和执行工作流程。 这些教程视频旨在帮助用户了解和学习 activiti7 的基本概念和功能。视频内容一般涵盖 activiti7 的安装和配置、工作流程设计和建模、任务分配和执行、流程实例跟踪等方面。通过观看这些视频,用户可以逐步学习 activiti7 的使用方法,并能够根据自己的需求来设计和管理工作流程。 对于初学者来说,activiti7 教程视频是学习 activiti7 的良好起点。视频演示了实际操作和示例,使学习者更容易理解和掌握 activiti7 的核心概念和功能。通过实际操作,学习者可以迅速掌握 activiti7 的使用技巧,并能够在实际项目中应用所学知识。 此外,由于 activiti7 是一个广泛应用的工作流引擎,因此它的教程视频具有广泛的适用性。不仅适用于企业内部的流程管理,还可用于教育和培训机构的课程教学,以及开发人员对工作流引擎的学习和研究。 总之,activiti7 教程视频是学习和了解 activiti7 工作流引擎的重要资源。通过观看这些视频,用户可以系统地学习 activiti7 的各个方面,并能够更好地应用于实际项目中。 ### 回答3: Activiti 7是一个基于开源流程引擎的工作流管理系统,它提供了一个可视化的流程设计器,可以帮助开发人员快速创建、部署和管理工作流程。 Activiti 7教程视频是为了帮助开发人员更好地理解和学习Activiti 7而制作的一系列教学视频。这些视频通常涵盖了从入门到高级的各种主题,包括安装和配置Activiti 7环境、流程定义和设计、任务分配和执行、流程消息和事件等。 通过观看这些教程视频,开发人员可以更加直观地了解Activiti 7的功能和特性,并学习如何使用它来构建复杂的工作流程。教程视频通常采用实例演示的方式,结合具体案例和场景,让开发人员更好地理解如何使用Activiti 7解决实际问题。 另外,教程视频还可以帮助开发人员快速入门Activiti 7,节省学习成本和时间。通过观看视频,开发人员可以在短时间内获取必要的知识和技能,并能够尽快开始开发和使用Activiti 7。 总之,Activiti 7教程视频是一种很好的学习Activiti 7的方式,通过观看这些教程视频,开发人员可以更好地理解和掌握Activiti 7的使用方法,提高工作效率,并能够更好地应用Activiti 7来解决实际问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值