activiti:userTask将assignee作为可设置变

2019-12-02  本文已影响0人  清远_03d9

1. 流程图中UserTask的assignee设置#{USERNAME}

image.png

2.将参数USERNAME作为变量启动流程

startAndEndProcessInstance(PageData dkBaseData){

  try {
                  /** 工作流的操作 **/
            Map<String,Object> map = new LinkedHashMap<String, Object>();
            map.put("上报区县", dkBaseData.getString("xzqmc"));
            map.put("上报区县行政区代码", dkBaseData.getString("xzqdm"));
                  //参数USERNAME传入流程中
            map.put("USERNAME", Jurisdiction.getUsername());        //指派代理人为当前用户

            String procdef ="key_ssnyd";
            String procInstId = startProcessInstanceByKeyHasVariables(procdef, map);//启动流程实例(请假单流程)通过KEY
  } catch (Exception e) {
            //result = "error";
            logger.error(e.toString(), e);
            e.printStackTrace();
        }
}

3. 通过KEY启动流程实例(带变量)

   /**
     * 通过KEY启动流程实例(带变量)
     *
     * @param processInstanceKey //流程定义的KEY
     * @return 返回流程实例ID
     */
    protected String startProcessInstanceByKeyHasVariables(String processInstanceKey, Map<String, Object> map) {
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceKey, map);    //map存储变量 用流程定义的KEY启动,会自动选择KEY相同的流程定义中最新版本的那个(KEY为模型中的流程唯一标识)
        return processInstance.getId();    //返回流程实例ID
    }
上一篇 下一篇

猜你喜欢

热点阅读