在jBPM中,分配任务可以有几种方式:

按照分配对象,可以分为:

  • 分配给某个/些用户
  • 或者分配给某个/些用户组。

从分配的方式看,可以有以下几种:

  • 在流程设计的时候,就直接指定用户/用户组:

    • 在流程设计的时候,可以通过assignee方式,直接分配给用户

      • 明确的分配给某用户/用户组:
        <task name="task1" assignee="username" > 这样直接把工作分配给该用户,这里只能是用户
      • 从环境变量来
        <task name="task1" assignee="#{order.saler}" > 这样直接把工作环境变量order对象的saler属性值所代表的用户
    • 在流程设计的时候,分配给一群用户 candidate-users
      <task name="task1" candidate-users="usernameA,usernameB,usernameC" >
    • 在流程设计的时候,分配给一群用户组 candidate-groups
      <task name="task1" candidate-groups="groupA,groupB,groupC" >
    • 在上述的2种方式:candidate-users、candidate-groups的方式,接收任务的人需要首先接收任务,才能进行处理,接收方式:taskService.takeTask
  • 在程序执行的时候,动态确定:
    这个在流程的xml中,也需要配置,到底哪个程序来确定。在Task节点中,需要配置任务分配器:
    <assignment-handler class="className">
    这个class是一个继承AssignmentHandler的类,只有一个方法:
    void assign(Assignable assignable, OpenExecution execution) throws Exception;
    Assignable是任务和泳道的通用接口。 所以任务分配处理器可以使用在任务, 也可以用在泳道中
    assignable:可以完成上述的3种添加完成任务用户的方法:assignee、candidate-users、candidate-groups,

还有根据泳道(swimlane)进行分配用户

jBPM4.4:分配任务的几种方式相关推荐

  1. 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)

    如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...

  2. brk16_Linux进程分配内存的两种方式--brk() 和mmap()

    如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...

  3. CC++动态分配内存(手动分配内存)三种方式

    1. malloc函数 函数原型:void *malloc(unsigned int size) 函数的作用是:在内训的动态存储区开辟一个size个字节的连续空间,返回所分配区域的首字节地址.  可以 ...

  4. Linux进程分配内存的两种方式--brk() 和mmap()

    https://www.cnblogs.com/vinozly/p/5489138.html 转载于:https://blog.51cto.com/14260602/2380561

  5. 连续分配存储的四种管理方式

    连续分配存储的四种管理方式 连续分配方式指为一个用户程序分配给一个连续的内存空间 单一连续分配 原理:将内存分为用户区和系统区,每次运行时,都将整个用户区分配给当前执行的一道作业 固定分区分配 原理: ...

  6. 【FFMPEG】AVFrame中buffer分配的两种方式

    AVFrame在使用ffmpeg进行编解码过程中,是最基本的数据结构. 在某些场景下,需要对AVFrame的数据区域进行提前分配,有两种方法,需要根据自己的需求来使用. (1) * This func ...

  7. 华为--DHCP实验(dhcp设置的两种方式,不分配dhcp地址范围的方式,分配固定地址的方式)

    文章目录 前言 一:实验环境 1.1:基本原理 1.2:原理总结 1.3:实验软件 1.4:实验目的 1.5:华为DHCP实验拓扑图 二:实验过程 2.1:交换机设置 2.2:路由器(R1)设置 2. ...

  8. linux+Qt 下利用D-Bus进行进程间高效通信的三种方式

    linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...

  9. 实现等待窗体的几种方式

    实现等待窗体的几种方式: 下面说明了五种可以实现等待窗体的方式,其中三种给出了代码. 准备资料 安全访问控件成员 为了保证在创建控件的线程上调用控件成员,用下面的方式封装控件的属性.方法.其他自定义成 ...

最新文章

  1. iOS 对UIImage进行的一些操作
  2. 【机器视觉】 ifelse算子(已废弃)
  3. 李松南:智能全真时代的多媒体技术——关于8K、沉浸式和人工智能的思考
  4. 微型计算机原理计算两数和,微型计算机原理及汇编语言 第2章-2 补码及加减运算.ppt...
  5. 【C语言实现反转数组】(用栈实现)51nod - 训练营
  6. 拼接图像亮度均匀调整_品质不变 价格更香 | 爆款拼接屏新品上市
  7. sde java_arcgis SDE for Java
  8. 萤火虫pte小程序_【PTE战报】84炸的Maggie,RS试试这样入手开始练习
  9. ado.net Oracle中一次执行多条sql语句
  10. 使用angrutils生成控制流图出错的解决过程
  11. react 中event 的处理方式
  12. python复制、移动文件到指定文件夹
  13. macbook电池用什么软件测试,Wattagio Mac_Wattagio For Mac(电池检测软件) v1.1苹果电脑版 - 121苹果网...
  14. word树状分支图_word中插入树状图的两种方法
  15. MFI认证——苹果MFI认证流程
  16. 厦门大学麦嘉仪:统计学专业到微众银行风控岗!
  17. 扎心!“近8成人工作10年月薪没过万”,你呢?互联网人一笑而过
  18. 360 冰刃实验室研究员获得微软史上最高漏洞赏金
  19. Hexo历险记之三本地安装Hexo
  20. 学习与思考,李敖有话说

热门文章

  1. JavaScript的基本使用
  2. JAX-RS 方式的 RESTful Web Service 开发
  3. OD调试9—实例:深入分析代码完成软件破解
  4. 开启Windows8里面的Hyper-V虚拟机功能
  5. jQuery Mobile数据属性
  6. 修改表结构添加外键约束,默认外键名
  7. Python机器学习基础教程-第2章-监督学习之K近邻
  8. angular2集成highchart
  9. c# Dictionary的遍历和排序
  10. 仿IOS效果-带弹簧动画的ListView