zoukankan      html  css  js  c++  java
  • Activiti 基本操作之“受理人变量”

    Markdown

    在 Activiti 流程引擎中,尽管通过 setAssignee(taskId, userId) 可以设置受理人,但这毕竟要先把下一步的任务查出来才能设置,比较繁琐;借助 Activiti 的 activiti:assignee 属性就可以自动化设置,即在当前任务完成之时就给下一个任务的受理人赋值。

    这本质上是在设置一个局部变量,为流程的单个用户任务服务。

    不提倡的 setAssignee 的方式

    taskService.complete(task.getId(), vars);
    // 下一步的用户任务
    task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
    taskService.setAssignee(task.getId(), addModel.getCurrentTracer().toString());
    

    为了设置受理人,在已经完成任务后,还需要把下一步的任务再次查询出来,比较繁琐。

    提倡 activiti:assignee 动态设置

    1.在流程设计中为 Assignee 指定变量“${assigneeUserId}”

    Markdown

    其对应的 XML 配置为:

    <userTask id="usertask2" name="报项审核(业务经理)" activiti:assignee="${assigneeUserId}"></userTask>
    

    2. 针对变量赋值

    vars = new HashMap<>();
     
    // 完成任务
    vars.put("assigneeUserId", addModel.getCurrentTracer().toString());
    taskService.complete(task.getId(), vars);
    

    只需关心完成当前任务即可,Activiti 会自动把参数 assigneeUserId 的值作为下一步用户任务的 Assignee_ 字段的值。

    3. 验证

    查询运行时任务表 act_ru_task 的记录,可见 Assignee_ 字段已经有了值。

    Markdown

  • 相关阅读:
    星辉信息odoo教程
    星辉odoo教程
    Python 语言简介与入门
    DVWA漏洞演练平台
    植物大战僵尸:分析植物的攻击速度
    植物大战僵尸:寻找召唤僵尸关键CALL
    植物大战僵尸:查找植物叠加种植CALL
    植物大战僵尸:植物栏无冷却的找法
    植物大战僵尸:寻找向日葵的生产速度
    dpwwn: 1 Vulnhub Walkthrough
  • 原文地址:https://www.cnblogs.com/ramantic/p/7690633.html
Copyright © 2011-2022 走看看