springboot与flowable(5):任务分配(表达式)

news2024/11/23 21:58:08

        在做流程定义时我们需要给相关的用户节点指派对应的处理人。在flowable中提供了三种分配的方式。

一、固定分配

        在分配用户时选择固定值选项确认即可。

二、表达式

1、值表达式

2、方法表达式

三、表达式流程图测试

1、导出并部署

        导出流程图,复制到项目中

        部署流程

package org.example.flowabledemo2;

import org.flowable.engine.RepositoryService;
import org.flowable.engine.repository.Deployment;
import org.flowable.engine.repository.DeploymentBuilder;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class FlowableDemo2ApplicationTests {
    // 提供对流程定义和部署的存储库的访问。
    @Autowired
    private RepositoryService repositoryService;

    @Test
    void contextLoads() {
        DeploymentBuilder deployment = repositoryService.createDeployment();
        deployment.addClasspathResource("process01/Example01.bpmn20.xml");
        deployment.name("表达式流程图");
        Deployment deploy = deployment.deploy();
        System.out.println("deploy.getId() = " + deploy.getId());
    }
}

        在act_re_deployment流程定义表中查看部署的信息

2、值表达式测试

/**
     * 发起流程
     */
    @Test
    public void startProcess() {
        String id = "Example01:1:099febed-2a3a-11ef-a0cf-644ed7087863";
        // 根据流程定义ID启动流程
        ProcessInstance processInstance = runtimeService.startProcessInstanceById(id);
    }

        获取zhangsan的待办事项,进行审批

    /**
     * 根据用户查询待办信息
     */
    @Test
    public void findFlow() {
        List<Task> list = taskService.createTaskQuery().taskAssignee("zhangsan").list();
        // 根据id进行审批
        for (Task task : list) {
            completeTask(task.getId());
        }
    }

    /**
     * 根据Id审批任务
     */
    public void completeTask(String taskId) {
        taskService.complete(taskId);
    }

        此时会报错,原因是没有给myAssign1赋值。

        需要个给myAssign1赋予一个值。

    /**
     * 根据Id审批任务
     */
    public void completeTask(String taskId) {
        // 给表达式绑定一个值。
        Map<String, Object> variables = new HashMap<String, Object>();
        variables.put("myAssign1", "lisi");
        taskService.complete(taskId, variables);
    }

        查询任务进度,到达审批用户2,审批人lisi

3、方法表达式测试

        创建一个对应的java类。

package org.example.flowabledemo2.bean;

import org.springframework.stereotype.Component;

@Component
public class MyBean {
    public String getAssignee() {
        System.out.println("MyBean.getAssignee()");
        return "wangwu";
    }
}

        使lisi通过审批查看效果。

    /**
     * 根据用户查询待办信息
     */
    @Test
    public void findFlow() {
        List<Task> list = taskService.createTaskQuery().taskAssignee("lisi").list();
        // 根据id进行审批
        for (Task task : list) {
            completeTask(task.getId());
        }
    }

    /**
     * 根据Id审批任务
     */
    public void completeTask(String taskId) {
        taskService.complete(taskId);
    }

        查看任务进度,当前进度是审批用户3,审批人wangwu。

        在使用王五进行审批,当前任务结束。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1831691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集合进阶(泛型、泛型通配符、数据结构(二叉树、平衡二叉树、红黑树

一、泛型类、泛型方法、泛型接口 1、泛型概述 泛型&#xff1a;是JDK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。泛型的格式&#xff1a;<数据类型>注意&#xff1a;泛型只能支持引用数据类型。 泛型的好处 1、统一数据类型。 …

【深度学习】GELU激活函数是什么?

torch.nn.GELU 模块在 PyTorch 中实现了高斯误差线性单元&#xff08;GELU&#xff09;激活函数。GELU 被用于许多深度学习模型中&#xff0c;包括Transformer&#xff0c;因为它相比传统的 ReLU&#xff08;整流线性单元&#xff09;函数能够更好地近似神经元的真实激活行为。…

HardFault Err,无法调试,错误定位

一、简介 在平时开发的时候&#xff0c;经常会遇到程序报错的情况。对于裸机来说&#xff0c;可以通过在线调试的方式进行定位问题。但是对于RTOS系统来时&#xff0c;很多MCU/SOC是不支持在线调试的&#xff0c;此时&#xff0c;如果系统报错&#xff0c;我们就需要根据系统的…

节假日零售数据分析:节假日销售的得力助手

在奥威BI零售数据分析方案预设了一张BI节假日分析报表&#xff08;BI数据可视化报表&#xff09;&#xff0c;它能够帮助零售企业深入理解节假日期间的销售动态&#xff0c;从而做出更精准的市场策略调整。以下是利用该报表进行数据分析的具体步骤和要点&#xff1a; 一、数据…

burp靶场xss漏洞(中级篇)上

靶场地址 http://portswigger.net/web-security/all-labs#cross-site-scripting 第一关&#xff1a;DOM型&#xff08;使用document.write函数&#xff09; 1.点击随机商品后找到搜索框&#xff0c;后在URL中添加storeId查询参数&#xff0c;并输入一个随机字母数字字符串作为…

从入门到精通:一步步打造稳定可靠的API服务

引言 在当今的软件开发周期中&#xff0c;API服务已经成为重要的组成部分&#xff0c;它们允许不同的应用程序和服务之间进行通信和数据交换。打造一个稳定可靠的API服务对于任何商业应用来说都是至关重要的。本文将作为指南&#xff0c;从基础知识到高级技术&#xff0c;一步…

知乎号开始运营了,宣传一波

知乎号开始发布一些小说、散文还有诗歌了&#xff0c;欢迎大家多来关注 知乎链接&#xff1a;姜亚轲 每篇小说都改编成网易云音乐&#xff0c;文章中也有链接&#xff0c;我做的词&#xff0c;Suno编曲和演唱&#xff0c;欢迎大家来听听

访问jlesage/firefox镜像创建的容器中文乱码问题

目录 介绍总结 介绍 最近在使用jlesage/firefox镜像创建容器的时候&#xff0c;发现远程管理家里网络的时候中文会出现乱码&#xff0c;导致整个体验非常的不好&#xff0c;网上查找资料说只要设置环境变量ENABLE_CJK_FONT1 就可以解决问题&#xff0c;抱着试一试的态度还真的成…

如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法

&#x1f6e0;️ 如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错&#xff1a;找不到匹配的 host key 算法 摘要&#xff1a; 本文将带领大家深入学习如何解决 Xshell 使用 SSH 连接 Linux 服务器时报错“找不到匹配的 host key 算法”的问题。通过详细的操作步骤和代码案…

deepin学习-设置自己窗口为最高层级

deepin-设置自己窗口为最高层级 一、概述1. kwin 中的窗口层级定义2. dde-session-ui 中的消息弹窗3. k-win的调试器 一、概述 窗口协议&#xff1a;wayland 在wayland的窗口下&#xff0c;有时候使用qt开发接口并不能满足我们的要求&#xff0c;就需要看窗管的写法。 setWi…

详解|访问学者申请被拒原因有哪些?

访问学者项目为全球科研人员提供了一个难得的机会&#xff0c;让他们能够跨越国界&#xff0c;深入不同的学术环境&#xff0c;进行学术交流和合作。然而&#xff0c;并非所有申请者都能如愿以偿地获得这一机会。本文将对访问学者申请中常见的被拒原因进行详细解析&#xff0c;…

计算机游戏因为d3dcompiler_47.dll丢失无法启动怎么办?解决只要d3dcompiler_47.dll丢失无法启动游戏软件的方法

d3dcompiler_47.dll 是一个动态链接库文件&#xff0c;属于 Microsoft DirectX 的一部分&#xff0c;主要负责编译和运行 3D 图形程序。它是支持 Direct3D 功能的核心组件&#xff0c;Direct3D 是一种用于编程 3D 图形的 API&#xff0c;广泛应用于游戏和图形密集型应用程序中。…

如何设置天锐绿盾的数据防泄密系统

设置天锐绿盾的数据防泄密系统&#xff0c;可以按照以下步骤进行&#xff1a; 一、系统安装与初始化 在线或离线安装天锐绿盾数据防泄密系统&#xff0c;确保以管理员身份运行安装包&#xff0c;并按照安装向导的提示完成安装。输入序列号进行注册&#xff0c;激活系统。 二…

Vuex遇到浏览器刷新,store里存的数据还在吗?

我们在做Vue前端项目的时候&#xff0c;很可能会使用Vuex来做一些状态或者数据管理&#xff0c;希望在一定程度上&#xff0c;不发送网络请求&#xff0c;不经过密集的组件数据传输&#xff0c;也可以达到数据共享的目的。但如果浏览器页面刷新了&#xff0c;Vuex中store里存的…

摩根大通研究论文:大型语言模型+自动规划器用来作有保障的旅行规划

【摘要】旅行规划是一项复杂的任务,涉及生成一系列与访问地点相关的动作序列,需要满足约束条件并最大化某些用户满意度标准。传统方法依赖于以给定形式语言表示问题,从网络来源中提取相关的旅行信息,并使用适当的问题求解器生成有效解决方案。作为替代方案,最近基于大型语言模型…

Guitar Pro 8软件安装包下载

简介&#xff1a; Guitar Pro吉他软件为帮助所有吉他爱好者学习、绘谱、创作而设计——包含吉他的现有指法及音色&#xff0c; Guitar Pro能了解各类线谱&#xff0c;看谱练吉他&#xff0c;对谱听示范&#xff0c;记录初创声音。 在做弹拨乐器的滑音、倚音、推弦、揉弦、泛…

准备好迎接3D世界的AI革新了吗:Direct3D,让3D创作触手可及

DreamTech 推出原生 3D-DiT 大模型 Direct3D 前言 3D-DiT大模型Direct3D 就目前的AI市场而言&#xff0c;将文本和图像转化为高质量的3D资产一直很难实现&#xff0c;主要目前缺乏一种能够捕捉复杂几何结构而且还能够扩展的3D的方法。但 DreamTech 发布了一种名为Direct3D的新型…

麻了,5年Java竟然不知道幂等......

在分布式系统中&#xff0c;接口幂等性是确保操作一致性的关键特性。 啥是幂等性 幂等性 指的是在给定的条件下&#xff0c;无论操作执行多少次&#xff0c;其结果都保持不变。在接口设计中&#xff0c;幂等性意味着使用相同的参数多次调用接口&#xff0c;应产生与单次调用相…

reverse-android-淘最热点so

资源 1. com.maihan.tredian 2021版 淘最热点 2. 该 app 没有加壳 ,也没混淆。 登录抓包 POST: https://api.taozuiredian.com/api/v1/auth/login/sms POST /api/v1/auth/login/sms HTTP/1.1 Content-Type: application/json Connection: close Charset: UTF-8 User-Agen…

充电学习—5、healthed 电池服务

1、healthed服务监听接收内核kernel的电池事件&#xff0c;然后上传数据给framware层的batterysevice&#xff0c;BatteryService计算电池的电量&#xff0c;显示&#xff0c;绘制动画等 android电池系统框架&#xff1a; 2、healthd服务入口&#xff1a;android/system/cor…