zoukankan      html  css  js  c++  java
  • activiti 学习( 三 ) 之 流程启动者

    在启动一个流程时,我们会有将当前用户启动的流程保存起来,作为流程发起人(启动人、申请人、提交人) 而在保存这个流程启动者信息,api 没有明确规范该怎么存。所以这里我总结下我学到的保存流程启动者信息的方法。 咖啡兔博客中的做法 - Activiti设置流程发起用户信息 - 咖啡兔 - HenryYan 注: 如果单纯照博客这么做的话,确实能在 ACT_HI_PROCINST 的 START_USER_ID_ 字段存放该值,但是我却没有取出来,一直是null。 同上,也用 : identityService.setAuthenticatedUserId(userId); ,但是这里还要配合 流程定义里面的 开始事件 startEvent ,在开始事件中设置初始信息 。eg: 注: 这里applyUserId 是被存放在流程变量中的 , 而它的值就是 identityService.setAuthenticatedUserId(userId) 存入的userId。 因为是流程变量,所以可以用通用的获取流程变量的方法得到。 使用流程变量(Map) 。之前提过,在启动流程时有很多方法,同一个方法还有很多重载。如: startProcessInstanceByKey(String processDefinitionKey, Map variables); 这里启动除了给流程定义的key,还给了一个map ,这个map 维护了了这个流程实例的变量。里面你能够存放很多东西,包括启动人信息。如: // 设置申请人,将之保存在流程变量中 Map variables = new HashMap<>(); variables.put("applyUser","kk"); 至于得到流程变量的值,示例如下: Map vars = taskService.getVariables(task.getId()); for (String variableName : vars.keySet()) { String val = (String) vars.get(variableName); System.out.println(variableName + " = " +val); } 保存在业务表单中。在业务表单维护一个冗余字段,用于保存发起人。咖啡兔的Demo源代码就那么干的。
  • 相关阅读:
    static
    crontab
    coco2d-x 纹理研究
    2048-AI程序算法分析
    如何利用SVN合并代码
    Cocos2d-x 对于中文的支持-----iconv库
    cocos2d-x 2.2 资源更新AssetsManager例子代码
    防止手机游戏衰老的方法
    游戏开发博客
    网络游戏同步法则
  • 原文地址:https://www.cnblogs.com/haore147/p/5213441.html
Copyright © 2011-2022 走看看