activiti 学习( 三 ) 之 流程启动者
2023-09-11 14:21:33 时间
在启动一个流程时,我们会有将当前用户启动的流程保存起来,作为流程发起人(启动人、申请人、提交人)
而在保存这个流程启动者信息,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源代码就那么干的。
相关文章
- 软件研发流程类型
- 软件测试技术知识之性能测试流程总结
- 快速学习数据分析,Python入门完整学习流程!
- 【Broadcast】registerReceiver流程
- Vue - cli3 脚手架搭建项目步骤流程(windows)
- SRS学习 - rtc转rtmp流程分析
- linux0.11与linux2.6.0两个版本内核启动流程——学习笔记
- 手撕spring核心源码,彻底搞懂spring流程
- 【源码学习】UI绘制流程
- ARP协议工作流程
- 基于Cocos SDKHub接入华为HMS Game服务—打包上架流程
- java添加新表,接口合成流程必看 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- Python 流程控制
- Android中View绘制流程以及invalidate()等相关方法分析
- Git学习笔记---协作的一般流程
- Dynamic CRM 2013学习笔记(四十二)流程5 - 实时/同步工作流(Workflow)用法图解
- Dynamic CRM 2013学习笔记(三十三)自定义审批流4 - 规则节点 -有分支的流程处理
- 《Python数据科学实践指南》——2.4 流程控制
- SpringSecurity学习:简介、如何集成、拦截规则、忽略规则、自定义页面、参数详解、校验流程
- Lua 流程控制