先来看一段API调用:

List hpis = historyService.createHistoricProcessInstanceQuery().startedBy(userCode).list();

查询结果为空,这是为什么?

1.原因说明

当通过runtimeService接口启动(startProcessInstance[Byxxx])流程的时候会设置一个变量,代码片段(ExecutionEntityManagerImpl.java#createProcessInstanceExecution):

        String authenticatedUserId = Authentication.getAuthenticatedUserId();processInstanceExecution.setStartActivityId(startActivityId);processInstanceExecution.setStartTime(CommandContextUtil.getProcessEngineConfiguration().getClock().getCurrentTime());processInstanceExecution.setStartUserId(authenticatedUserId);// Store in databaseinsert(processInstanceExecution, false);if (initiatorVariableName != null) {processInstanceExecution.setVariable(initiatorVariableName, authenticatedUserId);}

从上面的代码片段中可以看出在启动流程的时候引擎会先从Authentication读取已认证用户信息authenticatedUserId ,并将此id

设为当前流程实例的startUserId,并作为流程变量和initiatorVariableName(在流程图里自定义)绑定;现在我们只要能设置认证

用户的ID就可以了。

2.解决问题

查看API发现Authentication有一个方法:setAuthenticatedUserId()

解决办法很简单只要在启动流程之前调用API即可:Authentication.setAuthenticatedUserId(userId);

当流程启动之后可以到表ACT_HI_PROCINST中查看字段START_USER_ID_的值来验证是否生效。

3.结束

问题很简单,但是官网的手册没有提到,希望让遇到问题的人少走弯路。

flowable设置流程发起人相关推荐

  1. flowable 获取流程发起人

    1.  设置流程发起人 //设置流程发起人 Authentication.setAuthenticatedUserId(userId); ProcessInstance processInstance ...

  2. flowable 使用流程发起人分配

    版本 flowable 6.7.2 场景 希望用户任务直接分配给流程发起人 用法 在流程开始事件上绑定发起人变量 <startEvent flowable:initiator="INI ...

  3. Activiti设置流程发起人用户信息

    在启动一个流程时,我们会有将当前用户启动的流程保存起来,作为流程发起人(启动人.申请人.提交人),而在保存这个流程启动者信息,api 没有明确规范该怎么存. 先看一段API调用 List hpis = ...

  4. flowable 查询流程发起人

    SELECT DISTINCTRES.START_USER_ID_ AS startUserId FROMACT_HI_PROCINST RESLEFT OUTER JOIN ACT_RE_PROCD ...

  5. flowable 设置流程跟踪高亮线的颜色

    背景:在实际情况下,很多人对这个红色的高亮有意见,所以这里我把我的修改颜色的代码分享出来,希望对大家有帮助.(如果有问题可以加QQ群:633168411 里面很多高手,人也都非常善良) 效果如下: 1 ...

  6. Activiti设置流程发起用户信息【包括获取发起人信息代码】

    原文地址:https://blog.csdn.net/HuanFengZhiQiu/article/details/81130288 一.设置用户发起人 identityService.setAuth ...

  7. activiti 流程发起人控制

    最近做activiti流程发起人的控制,最开始的想法是新建一张表 ,通过控制流程定义id与发起人id进行控制,如果这样每次发布新的流程就必须 重新设置流程发起人,因为通过流程定义不能获取流程模型id, ...

  8. flowable工作流 流程变量_业务流程 BPM、工作流引擎、Flowable、Activiti

    特点 基于 Flowable(Activiti)生来具有的稳定工作流引擎 支持在线流程设计器,流程导入导出,符合 BPMN 规范,中国式工作流 支持流程办理.退回.自由流.会签.并行.串行.服务任务等 ...

  9. flowable工作流 流程变量_Activiti工作流的应用示例

    1:工作流的概念 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息 ...

最新文章

  1. 单片机有什么好的网课?
  2. Laravel自定义分页样式
  3. 【数学建模】基于随机机会约束规划方法对旅行商问题TSP求解
  4. PETS公共英语三级大纲词汇4107个-D
  5. Linux下Redis服务器安装配置
  6. oracle二阶段事物,分布式事务 两阶段提交 (2PC)
  7. php 随机指定位数,php生成一个可选位数的随机码
  8. Mockito –使用全局配置的SmartNull在NPE上提供更好的错误消息
  9. Unity(一)Unity脚本程序开发
  10. mysql 5.6.23 源码包安装报错_Ubuntu 14.10下编译安装MySQL 5.6.23
  11. mysql优化要点_你需要掌握的 Mysql 优化的一些要点
  12. php 判断用户是否刷新,ajax php 实现无刷新用户检查是否存在
  13. 功能机也不放过,谷歌或为 Chrome 提供非触控模式
  14. envi 打开影像报错:‘HISTOGRAM:illegal binsize or max/min‘.The result maybe invalid
  15. sbuf.st_size 为负数
  16. hive--解决使用not in之后返回数据为空的问题
  17. android开发培训大纲,华图教育-Android应用开发培训教学大纲
  18. 京东商品发布实现店铺商品批量上新,节省大量人力
  19. 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言503-531条如下:
  20. 谁是K歌之王? 爱唱/唱吧全面对比

热门文章

  1. 老男孩教育每日一题-第108天-php-fpm优化关闭危险参数有哪些?
  2. ES6入门概览二--数组
  3. shell中if 变量里包含字符串的判断
  4. The maximum string content length quota (8192) has been exceeded while reading XML data
  5. 重定向dup2的本质
  6. C++使用ICE实现两台主机通信实例
  7. How to install python packages
  8. 打印dog信息java_java – 打印arraylist元素?
  9. 65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令
  10. 02-Unity深入浅出(二)