Activiti工作流入门实例(二)

一.流程图

test1.bpmn,流程图画好之后保存,自动生成test1.png



二.配置信息请参照一的方法

2.1 部署流程定义

//用来获得activiti.cfg.conf文件的信息.调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。
	
	ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

	/**
	 * 部署流程定义(操作数据表:act_re_deployment、act_re_procdef、act_ge_bytearray)
	 */
	@Test
	public void test4() {
		// 获得一个部署构建器对象,用于加载流程定义文件完成流程定义的部署
		DeploymentBuilder builder = processEngine.getRepositoryService()
				.createDeployment();
		// 加载流程定义文件
		builder.addClasspathResource("test1.bpmn");
		builder.addClasspathResource("test1.png");
		// 部署流程定义
		Deployment deployment = builder.deploy();
		System.out.println(deployment.getId());
	}
输出结果:201
2.2查询流程定义列表

/**
	 * 查询流程定义列表
	 */
	@Test
	public void test5() {
		/*
		 * processEngine.getRepositoryService().createDeploymentQuery().list();
		 * processEngine
		 * .getRuntimeService().createProcessInstanceQuery().list();
		 * processEngine.getTaskService().createTaskQuery().list();
		 */

		// 流程定义查询对象,用于查询表act_re_procdef
		ProcessDefinitionQuery query = processEngine.getRepositoryService()
				.createProcessDefinitionQuery();
		// 添加过滤条件
		query.processDefinitionKey("qjlc");
		// 添加排序条件
		query.orderByProcessDefinitionVersion().desc();
		// 添加分页查询
		query.listPage(0, 10);
		List<ProcessDefinition> list = query.list();
		for (ProcessDefinition pd : list) {
			System.out.println(pd.getId());
		}
	}
输出结果:qjlc:2:204
2.3 启动流程实例
什么是流程实例?根据一个流程定义具体的一次执行过程就是一个流程实例,一个流程定义对应多个流程实例(一对多关系).启动流程实例会向表act_ru_execution插入一条数据

/**
	 * 根据流程定义的id启动一个流程实例
	 */
	@Test
	public void test6() {
		String processDefinitionId = "qjlc:1:4";
		ProcessInstance processInstance = processEngine.getRuntimeService()
				.startProcessInstanceById(processDefinitionId);
		System.out.println(processInstance.getId());
	}
输出结果:301
2.4 查询任务列表

/**
	 * 查询任务列表
	 */
	@Test
	public void test7() {
		TaskQuery query = processEngine.getTaskService().createTaskQuery();
		String assignee = "王五";
		query.taskAssignee(assignee);
		List<Task> list = query.list();
		for (Task task : list) {
			System.out.println(task.getId() + " " + task.getName());
		}
	}

输出结果:304 提交请假申请

2.5 办理任务

/**
	 * 办理任务
	 */
	@Test
	public void test8(){
		String taskId= "802";
		processEngine.getTaskService().complete(taskId);
	}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值