Activiti学习文档(五)之发布流程并审批处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/samile6899/article/details/52684606

                   上一节中,成功部署了相应的流程ZIP,接下来可以利用这个部署的流程来开发业务了。


                   如图,首先我们可以添加一个请假申请,这个功能相对比较简单,增删改查就不在这里讲述了,直接跳过。


                  重点是在做保存之后需要申请请假的这个功能,它需要把已经部署的流程的KEY取到,和这个请假业务相关联,并一起保存到数据库中。这里有相应的代码提示,可以参考一下:

	/**更新请假状态,启动流程实例,让启动的流程实例关联业务*/
	@Override
	public void saveStartProcess(WorkflowBean workflowBean) {
		//1:获取请假单ID,使用请假单ID,查询请假单的对象LeaveBill
		Long id = workflowBean.getId();
		LeaveBill leaveBill = leaveBillDao.findLeaveBillById(id);
		//2:更新请假单的请假状态从0变成1(初始录入-->审核中)
		leaveBill.setState(1);
		//3:使用当前对象获取到流程定义的key(对象的名称就是流程定义的key)
		String key = leaveBill.getClass().getSimpleName();
		/**
		 * 4:从Session中获取当前任务的办理人,使用流程变量设置下一个任务的办理人
			    * inputUser是流程变量的名称,
			    * 获取的办理人是流程变量的值
		 */
		Map<String, Object> variables = new HashMap<String,Object>();
		variables.put("inputUser", SessionContext.get().getName());//表示惟一用户
		/**
		 * 5:	(1)使用流程变量设置字符串(格式:LeaveBill.id的形式),通过设置,让启动的流程(流程实例)关联业务
   				(2)使用正在执行对象表中的一个字段BUSINESS_KEY(Activiti提供的一个字段),让启动的流程(流程实例)关联业务
		 */
		//格式:LeaveBill.id的形式(使用流程变量)
		String objId = key+"."+id;
		variables.put("objId", objId);
		//6:使用流程定义的key,启动流程实例,同时设置流程变量,同时向正在执行的执行对象表中的字段BUSINESS_KEY添加业务数据,同时让流程关联业务
		runtimeService.startProcessInstanceByKey(key,objId,variables);
		
	}
                  
                  点击” 申请请假 “菜单,开启流程,流程的第一步是” 提交申请 “,可以自己点击” 办理任务 “,完成流程的第一步操作;也可以查看一下当前流程图,看看自己处在那一步。





                  之后的话,再进入菜单,会看见

**************************************************************************************************

注:Activiti 学习总结资料下载 (http://download.csdn.net/detail/samile6899/9829785


猜你喜欢

转载自blog.csdn.net/samile6899/article/details/52684606