Activiti系列五: 流程实例及任务的执行

1、流程图

如何设计流程图在前面有介绍

2. 部署流程定义

方式一

@Test
	public void myDeploy(){
		//获得流程引擎对象
		ProcessEngine engin=ProcessEngines.getDefaultProcessEngine();
		
		//用于管理流程定义
		RepositoryService repService=engin.getRepositoryService();
		//发布流程的对象
		DeploymentBuilder deployBuilder= repService.createDeployment();
		//deployBuilder.name("请假流程2");
		deployBuilder.addClasspathResource("processes/Leave.bpmn");
		deployBuilder.addClasspathResource("processes/Leave.png");
		Deployment deploy=deployBuilder.deploy();
		
		
		System.out.println(deploy.getId());
	}

方式二

@Test
	public void myDeploy(){
		//获得流程引擎对象
		ProcessEngine engin=ProcessEngines.getDefaultProcessEngine();
		
		//以它为模板发布一个流程,所有得到的id并不是Leave.bpmn里面的
		Deployment deploy=engin.getRepositoryService().createDeployment()
				           .addClasspathResource("processes/Leave.bpmn")
				           .addClasspathResource("processes/Leave.png")
				           .deploy();
		System.out.println(deploy.getId());
	}

3. 启动流程实例

@Test
	public void startProccess(){
		ProcessEngine engin=ProcessEngines.getDefaultProcessEngine();
		//获得流程执行服务类对象
		RuntimeService runServ=engin.getRuntimeService();

		
		//启动流程
		ProcessInstance pi= runServ.startProcessInstanceByKey("leave01");
		
		System.out.println(pi.getId()+","+pi.getActivityId()+","+pi.getProcessDefinitionId()+","+pi.getProcessDefinitionKey()
		   +","+pi.getProcessDefinitionName()+","+pi.getBusinessKey()+","+pi.getName()+","+pi.getDeploymentId());
		
	}

代码中的leave01是指流程配置文件中的流程id,如图所示:

说明:启动流程实例操作的是数据库的act_ru_execution表,如果是用户任务节点,同时也会在act_ru_task添加一条记录

4. 查询我的个人任务

这里三个任务节点,分别制定了三个人,如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御前两把刀刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值