activiti7__06UEL表达式

UEL表达式

◆EL为表达式语言( Expression Language)
◆UEL统一表达式语言( Unified Expression Language)

表达式描述

◆表达式以“$(“开始,以"}结束,例如${day>100}
◆支持逻辑运算${ userName" bajie" and pwd“123″}
支持变量与实体类赋值

对应 Activiti数据表

◆ act_ru_variable运行时参数表
◆ act_hi_varinst历史参数表

import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.HashMap;
import java.util.Map;

@SpringBootTest
public class Test06UEL {

    @Autowired
    private RuntimeService runtimeService;

    @Autowired
    private TaskService taskService;

    /**
     * 启动流程携带动态参数
     */
    @Test
    public void test111(){
        Map<String,Object> map = new HashMap<>();
        //BPMN图携带参数 {zhixingren}
        map.put("zhixingren","bajie");
        ProcessInstance processInstance = runtimeService
                .startProcessInstanceByKey("myProcess_UEL_V1","bKey002",map);
        System.out.println(processInstance.getDeploymentId());
    }

    /**
     * 结束流程携带动态参数
     */
    @Test
    public void test222(){
        Map<String,Object> map = new HashMap<>();
        //BPMN图携带参数 ${pay<=100} ${pay>100}
        map.put("pay","101");
        String taskId ="";
        taskService.complete(taskId,map);
    }

    /**
     * 启动流程 携带实体类参数
     */
    @Test
    public void test333(){
        UELPOJO uel = new UELPOJO();
        uel.setZhxingren("bajie");
        Map<String,Object> map = new HashMap<>();
        //BPMN图携带参数 ${uelpojo.zhixingren}
        map.put("uelpojo",uel);
        ProcessInstance processInstance = runtimeService
                .startProcessInstanceByKey("myProcess_UEL_V3","",map);
        System.out.println(processInstance.getDeploymentId());
    }

    /**
     * 结束流程携带多个参数指定候选人
     */
    @Test
    public void test444(){
        Map<String,Object> map = new HashMap<>();
        //BPMN图携带参数 ${houxuanren}
        map.put("houxuanren","bajie,tangseng");
        String taskId ="";
        taskService.complete(taskId,map);
    }

    /**
     * 直接指定全局变量 多个流程实例通用
     * 多次赋值 后者覆盖前者
     */
    @Test
    public void test555(){
        String instanceId ="";
        //直接指定流程中使用的单个变量
        runtimeService.setVariable(instanceId,"pay","101");
        //直接指定流程中使用的多个变量
        Map<String,Object> map = new HashMap<>();
        //BPMN图携带参数 ${houxuanren}
        map.put("houxuanren","bajie,tangseng");
        runtimeService.setVariables(instanceId,map);
//        taskService.setVariable();
//        taskService.setVariables();

    }

    /**
     * 直接指定局部变量 某些特定节点特定流程使用
     * 多次赋值 后者覆盖前者
     */
    @Test
    public void test666(){
        String instanceId ="";
        runtimeService.setVariableLocal(instanceId,"pay","101");
        //直接指定流程中使用的多个变量
        Map<String,Object> map = new HashMap<>();
        //BPMN图携带参数 ${houxuanren}
        map.put("houxuanren","bajie,tangseng");
        runtimeService.setVariables(instanceId,map);
    }
}

class UELPOJO{
    private String zhxingren;
    private String pay;

    public String getZhxingren() {
        return zhxingren;
    }

    public void setZhxingren(String zhxingren) {
        this.zhxingren = zhxingren;
    }

    public String getPay() {
        return pay;
    }

    public void setPay(String pay) {
        this.pay = pay;
    }
}

posted @ 2021-01-02 07:21  s1332177151  阅读(1038)  评论(0)    收藏  举报