关于Activity工作流的认知和理解

Activity的介绍

	首先,个人理解activity就是个组件。帮祝我们完成工作流程等一系列跟流程相
关的组件。
	其次呢,activity工作引擎。比如我们公司是利用其思想和自带的方法实现了功
能。也就是说activity在创建的时候会生成23张表,正常情况来说,这23张表已经可
以帮助你完成很多事情了。但是大多数人还是会自己创建一套库表来完成自己的业务
吧。现在来说一下这几天记录到的小知识点

Activity的库

select * FROM act_re_procdef -- 流程定义表


select * FROM act_re_deployment -- 部署表


SELECT * FROM act_ge_property -- 通用属性表 id生成策略 next.dbid 影响的是部署表的id


select * FROM act_ru_execution -- 执行对象,流程实例,流程对象


select * FROM act_ru_task -- 任务表 


select * FROM act_ge_bytearray -- 通用字节资源表 

Activity的几种实现方式

第一种 代码实现

通过代码的方式实现,如图:
在这里插入图片描述

第二种 配置文件

通过配置文件的方式实现,实现原理其实是一样的。如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三种 接口实现

其实很简单,如图:
在这里插入图片描述

Activity运行的几个步骤

取流程引擎

这一步的操作会去的流程引擎,配置好数据库连接,
他自然会去创建数据库的表格(23张表)。
@Test
	public void createProcessEnginer() {
		//这是通过代码的方式创建流程引擎
		//取得ProcessEngineConfiguration对象
		ProcessEngineConfiguration engineConfiguration=ProcessEngineConfiguration.
				createStandaloneProcessEngineConfiguration();
		//设置数据库连接属性
		engineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
		engineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/activitidb?createDatabaseIfNotExist=true"
				+"&useUnicode=true&characterEncoding=utf8");
		engineConfiguration.setJdbcUsername("root");
		engineConfiguration.setJdbcPassword("root");
// 		   设置创建表的策略;没有表的时候自动创建
//		  public static final java.lang.String DB_SCHEMA_UPDATE_FALSE = "false";不会自动创建表  没有表  则抛异常
//		  public static final java.lang.String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除,再创建表
//		  public static final java.lang.String DB_SCHEMA_UPDATE_TRUE = "true";假如没有表。自动创建
		engineConfiguration.setDatabaseSchemaUpdate("true");
		//通过ProcessEngineConfiguration对象创建ProcessEngine对象
		ProcessEngine p=engineConfiguration.buildProcessEngine();
		System.out.println("流程引擎创建成功");
		
		
		
		
//		//通过配置文件的方式获取引擎
//		ProcessEngineConfiguration engineConfiguration=ProcessEngineConfiguration.
//				createProcessEngineConfigurationFromResource("activiti.cfg.xml");//从类加载的路径查找资源
//		ProcessEngine processEngine=engineConfiguration.buildProcessEngine();
//		System.out.println("创建流程引擎");
		
	}

部署流程定义

这一步操作简单来说就是部署流程,例如一些流程名字或者类别啥的
可以在这一步进行部署,这些信息会加载到相应的流程定义表里。
@Test
	public void deploy() {
		//取的流程引擎对象
		//ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
		//获取仓库服务:管理流程定义
		RepositoryService repositoryService=processEngine.getRepositoryService();
		//创建一个部署的构建器
		Deployment deploy=repositoryService.createDeployment()
		.addClasspathResource("diagrams/MyProcess.bpmn")//在类路径中添加资源,一次只能添加一个资源
		.addClasspathResource("diagrams/MyProcess.png")//两个资源加载完毕
		.name("请假单流程")//设置部署名称
		.category("办公类别")//设置部署的类别
		.deploy();
		
		
		System.out.println("部署的id"+deploy.getId());
		System.out.println("部署的名字"+deploy.getName());
	}

执行任务

这一步主要是开始执行任务了,这里模拟了一下任务的执行操作
各个审批人之间的联系
//执行流程
	@Test
	public void startProcess() {
		//获取流程定义表中的key  项目中可以进行实施查询
		String processKey="myProcess";
		//取运行时的服务
		RuntimeService runtimeService=processEngine.getRuntimeService();
		ProcessInstance pi= runtimeService.startProcessInstanceByKey(processKey);//通过流程定义的key执行流程
		System.out.println("流程实例的id="+pi.getId());
		System.out.println("流程定义的id="+pi.getProcessDefinitionId());
		//此时第一流程已经开启,可以在执行对象表查询到信息
	}

查询流程

这个方法主要是查询流程用的方法,利用此方法查询出流程执行到哪一步了。当前执行人的名字和id等一些信息
//查询任务
	@Test
	public void queryTask() {
		//任务办理人  由于是刚开始执行任务所以任务的办理人是张三
		String name ="张三";
		TaskService taskService=processEngine.getTaskService();
		TaskQuery taskQuery=taskService.createTaskQuery();//创建了一个查询对象
		List<Task> taList=taskQuery.taskAssignee(name).list();//办理人的任务列表
		
		//遍历任务列表看一看
		for(Task task: taList) {
			System.out.println("任务办理人="+task.getAssignee());
			System.out.println("任务id="+task.getId());
			System.out.println("任务的名字="+task.getName());
		}
	}

完成任务

这个操作会让流程结束,在实际应用中到最后一级审批人就可以让流程执行完成操作
//完成任务 让任务结束的操作
	@Test
	public void compileTask() {
		String taskId="204";
		//接的是一个任务的id
		processEngine.getTaskService().complete(taskId);//参数是一个任务的id
		System.out.println("任务执行完毕");
	}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Activity工作流教程是指教授如何使用Activity工作流进行业务流程的开发和管理的指导材料。Activity工作流是一种将业务流程自动化的技术,它通过将业务流程分解为一系列的活动(Activities)并定义这些活动之间的逻辑关系和约束,来实现对业务过程的控制和监视。 在Activity工作流教程中,首先介绍了Activity工作流的基本概念和特点。这包括如何定义活动的输入和输出参数,如何定义活动之间的先后顺序和条件关系,以及如何处理异常情况等。通过理解这些基本概念,读者可以更好地掌握Activity工作流的设计和实现。 接下来,教程将详细介绍如何使用Activity Designer来创建和编辑Activity工作流Activity Designer是一个可视化工具,它提供了丰富的活动和控制流元素供开发人员选择和配置。通过实例和案例的演示,读者可以学会如何使用Activity Designer来定义业务流程的各个活动,并设置它们之间的逻辑关系和约束。 除了创建和编辑Activity工作流,教程还会介绍如何使用Activity Manager来管理和执行Activity工作流Activity Manager是一个运行时引擎,它负责加载和执行Activity工作流,并监控其执行过程。教程将详细讲解如何部署和启动Activity工作流,如何监视和控制其执行状态,以及如何处理执行过程中的异常情况。 最后,教程还会介绍一些高级的话题,如如何扩展Activity工作流的功能,如何与其他系统进行集成,以及如何进行性能优化等。这些内容将帮助读者更加深入地理解和应用Activity工作流技术。 通过学习Activity工作流教程,读者可以掌握使用Activity工作流进行业务流程的开发和管理的技能,从而提高工作效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值