美文网首页
一、工作流 Activiti7-9.UEL表达式

一、工作流 Activiti7-9.UEL表达式

作者: 那钱有着落吗 | 来源:发表于2021-04-01 16:59 被阅读0次
image.png image.png

在使用表达式的时候要避免保留字,这个可以在起变量名的时候跟自己的项目名来规避


image.png image.png

1.启动流程实例带参数

我们需要新构建一个流程图:


image.png
image.png

然后就是需要部署这个bpmn文件了,这个就不详细提了

下面是创建流程实例的代码,因为带参数,所以创建流程实例的方法多了一个传参的变量,是个Map类型,我们就传入person的key,值为wang
注意:如果流程中有很多的变量,这里也可以加入很多值

@Test
    public void initProcessInstanceWithArgs(){

        //流程变量 ${person}
        Map<String,Object> variables = new HashMap<>();
        variables.put("person","wang");

        ProcessInstance processInstance = runtimeService
                .startProcessInstanceByKey("Process_UEL_V1","b-key001",variables);
        System.out.print("流程实例id:"+processInstance.getProcessInstanceId());

    }

然后我们查看任务就会发现,多了一个新的任务:


image.png

2.完成任务带参数,指定流程变量

下面我们再创建一个流程,这个流程多了一个网关,我们还是像之前一样把王二,张三,李四的受让人都填写好他的拼音作为id,然后记住整个流程的key,然后再网关中的变量UEL都写好,然后保存好,发布流程,然后创建流程实例我们就不加参数,在之后我们在使用参数完成任务来使用一下带参数的完成任务方法:


image.png
image.png

在部署好BPMN之后,创建实例,然后查询wanger的任务,发现有了一条:


image.png

然后记录好王二的taskid,然后传入参数pay 是101,这样理论上审核人应该是李四,下面我们使用完成任务:

// 完成任务带参数,指定流程变量 
    @Test
    public void completeTaskWithArgs(){

        //流程变量 ${pay}
        Map<String,Object> variables = new HashMap<>();
        variables.put("pay","101");

        taskService.complete("9fba4d13-8a52-11eb-8e18-acde48001122",variables);
        System.out.println("执行完成任务");
    }

然后我们查看李四的任务:


image.png

确实是有一条的,然后查看张三,是没有数据的:


image.png

3.完成任务带参数,使用实体类

我们需要创建一个新的流程:


image.png
image.png
image.png

我们创建一个类


image.png
 // 完成任务带参数,使用实体类
    @Test
    public void completeTaskWithClassArgs(){

        UELInfo uelInfo = new UELInfo();
        uelInfo.setName("zhangyajuan");

        //流程变量 ${person}
        Map<String,Object> variables = new HashMap<>();
        variables.put("uelinfo",uelInfo);

        ProcessInstance processInstance = runtimeService
                .startProcessInstanceByKey("UEL3","b-key001",variables);
        System.out.print("流程实例id:"+processInstance.getProcessInstanceId());
    }

完成任务带参数,指定多个候选人


image.png

在执行完之后,我们会发现查询任务的时候,Assingnee是null,为什么呢,因为虽然指定了很多人,但是任务还没有拾取,所以这里是null。

image.png

相关文章

  • 一、工作流 Activiti7-9.UEL表达式

    在使用表达式的时候要避免保留字,这个可以在起变量名的时候跟自己的项目名来规避 1.启动流程实例带参数 我们需要新构...

  • 五分钟了解Activiti工作流

    什么是工作流 说到工作流,一图胜万言。 工作流 Georgakopoulos给出的工作流定义是:工作流是将一组任务...

  • Java 实现简单工作流

    工作流主要运用到反射机制 创建一张工作流表如:主键 | 工作流Code | 工作流内容 其中工作流,内容为Json...

  • Activiti工作流

    1.工作流简介 1.1工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如...

  • Git工作流指南

    今天看了一下翻译的git工作流指南,简单总结一下。 Git工作流指南Git工作流指南:集中式工作流Git工作流指南...

  • springboot2整合Activiti7

    【1】初识activiti 1.1. 工作流与工作流引擎 工作流工作流(workflow)就是工作流程的计算模型,...

  • Activiti教程(一)初识

    【1】初识activiti 1.1. 工作流与工作流引擎工作流工作流(workflow)就是工作流程的计算模型,将...

  • Java | 在 Java 中执行动态表达式语句: 前中后缀、O

    在一些规则集或者工作流项目中,经常会遇到动态解析表达式并执行得出结果的功能。 规则引擎是一种嵌入在应用程序中的组件...

  • Common Workflow Language [五]

    二十一 嵌套工作流 问题:如何将多个工作流连接在一起? 目标:了解如何从多个CWL工作流构造嵌套工作流。 工作流是...

  • Java工作流详解(附6大工作流框架对比)

    目录 1.什么是工作流 2.工作流应用场景 3.工作流实现方式 4.有哪些工作流框架? 什么是工作流工作流(Wor...

网友评论

      本文标题:一、工作流 Activiti7-9.UEL表达式

      本文链接:https://www.haomeiwen.com/subject/xwwocltx.html