【整合篇】Activiti业务与流程的整合

    继上篇博客:【整合篇】JBPM4.4业务与流程的整合

    对于无论是Activtit还是jbpm来说,业务与流程的整合均类似,启动流程是绑定业务,流程与业务的整合放到动态代理中

/**
     * 启动修改课程流程Leave leave, 
     *
     * @param leave
     */
    @RequestMapping(value = "start", method = RequestMethod.POST)
    public String startWorkflow(Leave leave,RedirectAttributes redirectAttributes, HttpSession session) {
        try {
        	
            User user = UserUtil.getUserFromSession(session);
            // 用户未登录不能操作,实际应用使用权限框架实现,例如Spring Security、Shiro等
            if (user == null || StringUtils.isBlank(user.getId())) {
                return "redirect:/login?timeout=true";
            }            
            leave.setUserId(user.getId());
            Map<String, Object> variables = new HashMap<String, Object>(); 
            variables.put("leave", leave);
            //保存业务实体
            leave.setTestId(new Date().toString());            
            leaveBean.saveBeforeEntity(leave); 
            
            Leave Leavetest=null;
            Leavetest=leaveBean.queryByTestid(leave.getTestId());
            leave=Leavetest;
            logger.debug("save entity: {}", leave); 
            
            
            //不再获取id,改为获取类  .getClass().getSimpleName().toString();          
            //String businessKey = "leave";            
            String businessKey = leave.getId().toString();            
            ProcessInstance processInstance = null;
            
           /*添加的代码--begin--Proxy*/
            
            // 调用业务,保存申请信息		
    		startNode.common(businessKey, variables,runtimeService,identityService);
    		LogHandler1 logHandler = startNode.new LogHandler1();
    		//放到代理中设置值了
    		//stuCourseApply.setExecuteId(pi.getId());
    		
    		LeaveBean leaveBeanProxy=(LeaveBean)logHandler.newProxyInstanceStart(leaveBean);  
    		leaveBeanProxy.updeatChangeApply(leave);	
            
    	/*添加的代码--end--Proxy*/
         
    		
    	/*放到代理中--begin--Proxy*/ 
           /* try {
                // 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
            	identityService.setAuthenticatedUserId(leave.getUserId());                                
                processInstance = runtimeService.startProcessInstanceByKey("easyChangeCourse", businessKey, variables);
                String processInstanceId = processInstance.getId();
                leave.setProcessInstanceId(processInstanceId);
                logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{"easyChangeCourse", processInstanceId, variables});
            } finally {
                identityService.setAuthenticatedUserId(null);
            }*/
    	/*放到代理中--end--Proxy*/     
    		
    	//+ processInstance.getId()
            redirectAttributes.addFlashAttribute("message", "流程已启动" );
        } catch (ActivitiException e) {
            if (e.getMessage().indexOf("no processes deployed
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值