zoukankan      html  css  js  c++  java
  • activiti 7 + springboot2(八) Activiti流程实例动态设置assignee执行人

    (一)activiti流程图用流程变量设置节点执行人

     

    Activiti 使用 UEL 表达式, UEL 是 java EE6 规范的一部分, UEL(Unified Expression Language)即统一表达式语言, activiti 支持两个 UEL 表达式: UEL-value 和 UEL-method。 

    <!--UEL-value: user1 是一个流程变量 -->
    <userTask activiti:assignee="${user1}" activiti:exclusive="true" id="_3" name="申请人提交申请"/>
     
    <!--UEL-method: user 是一个流程变量对象, user1.assignee 表示通过调用 user1 的 getter 方法获取值  -->
    <userTask activiti:assignee="${user1.assignee}" activiti:exclusive="true" id="_3" name="申请人提交申请"/>

    (二)方法调用赋值

    ${userService.findUserById(userId)}

    userService 是 spring 容器的一个 bean, findUserById 是该 bean 的一个方法, userId 是流程变量。

    (三)监听器分配

    任务监听器是发生对应的任务相关事件时执行自定义java逻辑或表达式。

     

    Create:任务创建后触发
    Assignment:任务分配后触发
    Delete:任务完成后触发
    All:所有事件发生都触发

    定义任务监听类,且类必须实现org.activiti.engine.delegate.TaskListener接口

      

    package com.activiti.example;
    
    import org.activiti.engine.delegate.DelegateTask;
    import org.activiti.engine.delegate.TaskListener;
    
    public class MyTaskListener  implements TaskListener {
        @Override
        public void notify(DelegateTask delegateTask) {
            delegateTask.setAssignee("灭霸");
        }
    }

    (四)程序中动态指定任务实例执行人代码

        /**
         * 启动一个实例,动态设置设置assignee
         */
        @Test
        public void startProcessInstance() {
            //设置assignee,map键对应配置中的变量名
            Map<String,Object> map=new HashMap<>();
            map.put("user1","张三");
            map.put("user2","李四");
            map.put("user3","王五");
    
            //启动流程实例,同时还要设置流程定义的assignee的值
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1", map);
        }
  • 相关阅读:
    余佳文 超级课程表创始人
    JavaScript 运行机制详解:再谈Event Loop
    koa2 async和await 实战详解
    node.js
    Mac版MySQL安装最新教程
    nw.js 打包与发布
    【514】keras Dense 层操作三维数据
    【513】keras 后端函数说明
    【512】keras 中的核心网络层
    【511】Keras 函数式 API
  • 原文地址:https://www.cnblogs.com/zsg88/p/12188229.html
Copyright © 2011-2022 走看看