Flowable 设置任务处理人的四种方式详解

Flowable 设置任务处理人的四种方式详解

Flowable是一款开源的业务流程引擎框架,支持BPMN和CMMN标准模型,并提供了任务分配等功能。在Flowable中,设置任务处理人是流程执行的重要环节,本文将详细介绍Flowable的四种任务处理人设置方法。

1. 设置用户任务 Candidate Users

借助org.flowable.task.api.TaskaddCandidateUser方法可以设置用户任务的候选用户,表示一个任务可以被多个用户处理。候选用户可以在任务运行时动态增加和删除,提高了任务的灵活性。

设置候选用户的代码示例:

    //获取任务实例
    Task task = taskService.createTaskQuery()
            .processInstanceId(processInstanceId)
            .taskDefinitionKey(taskKey)
            .singleResult();

    //设置候选人
    taskService.addCandidateUser(task.getId(), assigneeUserId);

2. 设置用户任务 Assignee

Assignee是指定任务一个具体的用户来处理。执行该任务的唯一用户在任务分配之前必须知道,并且任务不能被其他用户所处理。在任务运行期间,无法将任务的Assignee改变给其他用户。

设置任务处理人的代码示例:

    //获取任务实例
    Task task = taskService.createTaskQuery()
            .processInstanceId(processInstanceId)
            .taskDefinitionKey(taskKey)
            .singleResult();

    //设置处理人
    taskService.setAssignee(task.getId(), assigneeUserId);

3. 设置任务的候选组 Candidate Groups

Candidate Groups是指许多具有相似背景、特性或技能的用户作为一组隶属于组织内部的协作单元。可以通过候选者组任务将任务分配到一组用户中,由任务组成员选择自己要处理的任务实例。

设置任务的候选组的代码示例:

    //获取任务实例
    Task task = taskService.createTaskQuery()
            .processInstanceId(processInstanceId)
            .taskDefinitionKey(taskKey)
            .singleResult();

    //设置任务候选组
    taskService.addCandidateGroup(task.getId(), candidateGroupName);

4. 使用表达式设置任务处理人

在设计流程模型时,可以使用表达式来动态设置任务的处理人和候选人。Flowable提供了表达式的支持,支持使用EL表达式、JavaScript表达式等方式来动态计算任务的处理人和候选人。

在Flowable中,可以使用表达式将任务指派给特定的用户或组:

设置表达式动态设置任务处理人的代码示例:

    //获取任务实例
    Task task = taskService.createTaskQuery()
            .processInstanceId(processInstanceId)
            .taskDefinitionKey(taskKey)
            .singleResult();

    //通过表达式设置任务处理人
    taskService.setAssignee(task.getId(), "${userBean.getAssignee()}");

上述代码在设置任务处理人时使用了EL表达式${userBean.getAssignee()},表示该任务的处理人将会通过userBean.getAssignee()方法返回的数据动态计算得出。

以上是Flowable 设置任务处理人的四种方式详解,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Flowable 设置任务处理人的四种方式详解 - Python技术站

(1)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • django中ImageField的使用详解

    下面是关于“Django 中 ImageField 的使用详解”的完整攻略: 1. ImageField 简介 Django 中的 ImageField 是一个用来存储图片的字段,它使用 Pillow 库实现对于图片的操作和存储。可以用来上传图片,处理图片,同时也方便图片管理。 2. 创建 ImageField 为了在模型中使用 ImageField,我们需…

    人工智能概览 2023年5月25日
    00
  • Django代码性能优化与Pycharm Profile使用详解

    下面是我对“Django代码性能优化与Pycharm Profiler使用详解”的攻略。 1. 什么是Django? Django是一个优秀的Python web框架。它的设计目标是开发快速而且易维护的web应用程序,其具有以下特点: 开发速度快 不需要前置的任何库 自带ORM(Object-relational mapping,即对象关系映射) 可扩展性强…

    人工智能概论 2023年5月25日
    00
  • Python 分布式缓存之Reids数据类型操作详解

    Python 分布式缓存之Reids数据类型操作详解 介绍 Redis是一个内存中的高性能键值存储系统,支持多种数据结构。本文着重讲解Redis中的数据类型操作。 字符串(String) 字符串是Redis中最基本的数据类型之一,是一个二进制安全的数据结构,可以使用append命令向一个字符串类型的键中添加内容。 命令 SET key value:设置key…

    人工智能概览 2023年5月25日
    00
  • Python Web程序搭建简单的Web服务器

    我们来详细讲解 Python Web 程序搭建简单的 Web 服务器的完整攻略。本攻略包含以下三个部分: 环境准备 web.py 简介 web.py 搭建 Web 服务器的步骤 环境准备 在开始搭建 Python Web 服务器之前,我们需要事先准备好以下环境: Python 2.x 或者 Python 3.x(建议使用 Python 3.x) 安装 web…

    人工智能概览 2023年5月25日
    00
  • centos下安装redis服务详细节介绍

    CentOS下安装Redis服务详细攻略 1. 安装Redis依赖 sudo yum update sudo yum install epel-release sudo yum install gcc sudo yum install tcl 2. 下载和解压Redis 可以从Redis官网下载最新的版本:https://redis.io/download …

    人工智能概览 2023年5月25日
    00
  • 详解PyTorch预定义数据集类datasets.ImageFolder使用方法

    详解PyTorch预定义数据集类datasets.ImageFolder使用方法 简述 datasets.ImageFolder是PyTorch中预定义的用于处理图像分类任务的数据集类,并且可以轻松地进行自定义。 其中ImageFolder的基础类是torch.utils.data.Dataset,这个类是用于构建数据集的基类,我们可以在这个类中实现自定义数…

    人工智能概论 2023年5月25日
    00
  • js输出阴历、阳历、年份、月份、周示例代码

    下面是详细的讲解。 JS输出阴历、阳历、年份、月份、周的示例代码 在JS中,如果我们要输出阴历、阳历、年份、月份、周,我们可以使用相关的日期对象与方法来实现。 以下是一个输出当前日期的示例代码: let today = new Date(); // 获取当前日期对象 let year = today.getFullYear(); // 获取当前年份 let …

    人工智能概论 2023年5月25日
    00
  • Mybatis分页插件的实例详解

    Mybatis作为一款流行的ORM框架,在开发过程中经常需要对查询结果进行分页操作。而Mybatis分页插件可以帮助我们轻松地实现分页功能。本文将详细介绍Mybatis分页插件的使用方法。 1. Mybatis分页插件介绍 Mybatis提供了一个分页插件,其核心代码在mybatis-3-mybatis-generator.jar包中的org.apache.…

    人工智能概论 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部