(一)  开始一个请假流程        //user是请假人的actorId        ExecutionService es=JbpmServiceFactory.getInstance().openExecutionService(user);         HashMap vs=new HashMap();        //一些参数         vs.put(Constants.REQUEST_STATUS,String.valueOf(0));         vs.put(Constants.REQUEST_RETURN_INFO,"No info!");         vs.put(Constants.USER_NAME,EncodeTransfer.toISO(user));         vs.put(Constants.REQUEST_DAYS,String.valueOf(rea.getDays()));         try {            //开启请假流程             es.startProcessInstance(Constants.WORK_NAME, vs);             log.info("["+user+"]"+"申请假期开始!请假"+rea.getDays()+"天!");             return am.findForward("main");         } catch (ExecutionException ex) {             ex.printStackTrace();             log.error("请假进程无法开始!");             return am.findForward("error");         }finally{             es.close();         } (二)当前执行任务     对于部门经理或者老板,找到要处理的请假。        String actorId = (String) req.getSession().getAttribute(Constants.USER);             if(actorId.equals("wang")){                 actorId="boss";             }else if(actorId.equals("bigli")){                 actorId="chief";             }             // get the execution service             ExecutionService executionService = JbpmServiceFactory.getInstance().                                                 openExecutionService(actorId); 
            // get the tasklist from jbpm for user             List tasks = new ArrayList();             // add the jbpm tasks             tasks.addAll(executionService.getTaskList(actorId));             // put the tasklist into the form             mf.setTasks(tasks);             // get the tasklist from jbpm for user             List definitions = new ArrayList();             // add the jbpm definitions             definitions.addAll(executionService.getLatestDefinitions());             // put the tasklist into the form             mf.setRequests(definitions);             // close the execution service             executionService.close();             req.getSession().setAttribute("mainForm",mf);             log.debug("任务: " + tasks);             log.debug("当前可以执行的请求: " + definitions); (三)处理请假            String actorId = (String) reqrest.getSession().getAttribute(Constants.                     USER);             Long tokenId=new Long(req.getParameter("tokenId"));             // get the execution service             ExecutionService executionService = JbpmServiceFactory.getInstance().                                                 openExecutionService(actorId);             Map hm=executionService.getVariables(tokenId);//变量             String act=req.getParameter("action");//进行转换的transition             executionService.endOfState(tokenId,hm,act);             executionService.close();  
 
  |