activiti:initiator的作用及其使用
1.场景模拟
以kft-activiti-demo中的请假流程为例,操作流程:

用户A申请请假
领导B驳回
任务流转到“调整请假信息”节点
问题来了:如何把“调整请假信息”任务自动分配给申请请假的用户A呢?

2.救世主activiti:initiator
Activiti为此专门在startEvent上扩展了一个属性activiti:initiator用了解决这个问题。

下面的代码片段包含了这个属性:

<process id="leave" name="请假流程">
    <startevent id="startevent1" name="Start" activiti:initiator="applyUserId"></startevent>
    <usertask id="deptLeaderAudit" name="部门领导审批" activiti:candidategroups="deptLeader"></usertask>
    <exclusivegateway id="exclusivegateway5" name="Exclusive Gateway"></exclusivegateway>
    <usertask id="modifyApply" name="调整申请" activiti:assignee="${applyUserId}">
      <extensionelements>
        <activiti:tasklistener event="complete" delegateexpression="${afterModifyApplyContentProcessor}"></activiti:tasklistener>
      </extensionelements>
    </usertask>
    <usertask id="hrAudit" name="人事审批" activiti:candidategroups="hr"></usertask>
    <exclusivegateway id="exclusivegateway6" name="Exclusive Gateway"></exclusivegateway>
    <usertask id="reportBack" name="销假" activiti:assignee="${applyUserId}">
      <extensionelements>
        <activiti:tasklistener event="complete" delegateexpression="${reportBackEndProcessor}"></activiti:tasklistener>
      </extensionelements>
    </usertask>
</process>
?
分步理解:

activiti:initiator设置一个变量名称(代码第2行),可以是任意的字符串,这一点是让很多初学者迷糊的地方不知道写什么,现在请记住一个变量。
变量applyUserId应该保存申请用户的ID
在需要设置申请用户才能办理的任务上设置activiti:assginee=${applyUserId}属性,参见第5、11行代码
为什么这么做呢?

在用户手册上其实专门讲解了这个属性的做作用以及使用方法,代码如下:

identityService.setAuthenticatedUserId("kafeitu");
runtimeService.startProcessInstanceByKey("leave");
?
第1行代码的作用就是设置当前的用户ID,非常关键,而且这行代码需要和activiti:initiator配合使用,不可分割……
第2行代码启动一个流程,在启动流程的时候会判断有没有activiti:initiator属性,如果有把属性activiti:initiator的值作为一个变量添加到流程实例中,本文中也就是applyUserId,不要以为applyUserId是一个特殊的变量,它就是一个普通的变量而已。
在流程XML中的第5、11行代码出使用${applyUserId}作为activiti:initiator的值,引擎会在创建任务的使用用变量applyUserId替换。

3.单元测试理解
请参考kft-activiti-demo中的单元测试:

java: LeaveWorkflowServiceTest.java
xml:leave.bpmn
还可以在线运行请假流程:http://aws.kafeitu.me:8080/kft-activiti-demo体验一下这个过程。
--------------------- 
作者:howareyoutodaysoft 
来源:CSDN 
原文:https://blog.csdn.net/howareyoutodaysoft/article/details/8081577 
版权声明:本文为博主原创文章,转载请附上博文链接!

activiti学习资料--initiator的作用及其使用相关推荐

  1. 工作流引擎Activiti 学习(表 分类)

    因为工作的需要 需要学习Activiti 学习资料: https://www.activiti.org/userguide/ Database table names explained The da ...

  2. activiti:initiator的作用及其使用

    (转载)activiti:initiator的作用及其使用 原文链接:http://www.kafeitu.me/activiti/2012/09/14/activiti-initiator.html ...

  3. Activiti学习(一)之工作流的介绍和使用

    什么是工作流 1. 工作流介绍 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则自动进行传递文档.信息或任务的过程, ...

  4. 史上最全的工作流引擎 Activiti 学习教程(值得收藏)

    点击关注公众号,实用技术文章及时了解 一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则 ...

  5. Django介绍和虚拟环境(django特点、MVC、MVT、Django学习资料)

    MVT流程: 创建Django项目和应用 django-admin startproject name python manager.py startapp name 视图和ULR 视图的请求和响应 ...

  6. 独家 | 一文带你上手卷积神经网络实战(附数据集学习资料)

    原文标题:Understanding deep Convolutional Neural Networks with a practical use-case in Tensorflow and Ke ...

  7. python自学书籍顺序-【经验分享】自学Python的学习顺序!附学习资料

    自学Python要按照什么样的学习顺序?首先要有一个详尽的学习大纲,对于学习Python的各种知识点要安排的详略得当,做到由易到难,循序渐进,才能长久的坚持学下去.除了基础的理论知识,项目实战也是自学 ...

  8. [转]机器学习和深度学习资料汇总【01】

    本文转自:http://blog.csdn.net/sinat_34707539/article/details/52105681 <Brief History of Machine Learn ...

  9. SQL SERVER深入学习学习资料参考

    SQL SERVER深入学习学习资料参考 1.微软Webcast<sql server 2000完结篇>. 尽管微软Webcast出了很多关于Sql Server的系列课程,但是最为深入讲 ...

最新文章

  1. java和C++ C比较
  2. php留言板项目经验,php工程师简历项目经验填写样本
  3. java3d box 坐标,3d transform的坐标空间及位置
  4. C语言 满分代码:L1-043 阅览室 (20分)(解题报告)
  5. 前端学习(1523):vue-cli项目目录介绍
  6. 【blockly教程】第五章 循环结构
  7. 微生物组-扩增子16S分析第9期(报名直播课免费参加线下2020.8)
  8. 关于Python生成器的一个小问题(StopIteration)
  9. 特征金字塔 Feature Pyramid Networks for Object Detection
  10. 异常处理 Exceptions
  11. Spring事务管理—aop pointcut expression解析
  12. 远程Linux服务器文件下载至Windows本地
  13. SVN_SERVER的搭建
  14. 一个在线工具箱:栅栏密码加密解密工具
  15. 以分布式融合技术为突破口,易鲸捷奏响国产数据库“冲锋号”
  16. 博科交java插件_博科光纤交换机配置
  17. camel研究_【卡瑞利珠单抗·CameL研究者说】任秀宝教授:卡瑞利珠单抗治疗NSCLC疗效与安全性俱佳,受指南重磅推荐后再获批肺癌适应症...
  18. 谈微软 KMS 激活
  19. Codeforces Round #743 (Div. 2) B. Swaps 思维
  20. 女人是这样哄的,学以致用

热门文章

  1. Android 新版个税计算小demo程序
  2. 物联网是如何工作的?
  3. 设置金蝶kis记账王会计科目的教程
  4. React 全屏监听Esc键
  5. js屏蔽键盘esc键
  6. java使用多态打印个人信息_java 多态 回顾
  7. 内网渗透-window权限维持
  8. word调整标题编号
  9. 牛逼,手机居然可以无线投屏到笔记本电脑!
  10. java8实战:使用流收集数据之toList、joining、groupBy(多字段分组)(1)