zoukankan      html  css  js  c++  java
  • Activiti工作流(三)——流程变量

    流程变量可以是流程中一系列参数,比如办理人(Assignee),消息(message)等。这些流程变量使得activiti能够应用于更为复杂的业务中,使得流程变得更加灵活可控。


    场景(一)

    图一:没有使用流程变量
    这里写图片描述

    图二:使用流程变量

    这里写图片描述

    上面两个流程定义只是是否应用流程变量的一个简单例子,但可以看出,应用流程变量可以使得流程图更符合我们的业务需要。

    场景(二)

    图一:

    将Assignee办理人配死

    这里写图片描述

    如果需要改变办理人,怎么办?

    图二:

    代码中控制办理人

    这里写图片描述


    在启动流程时,给参数赋值。

         //设置流程参数,办理人
            Map<String,Object> map=new HashMap<String,Object>();
            map.put("inputUser","小李");



    场景(三)

    在项目开发中,最常用的是与业务相结合的变量参数了。比如员工管理中的员工姓名、性别等信息,请假管理中的请假人员、请假时长、请假原因等。

    需求:新员工报道流程,保存员工信息。

    // 与任务相关的service
            TaskService taskService = processEngine.getTaskService();
            //假定一个任务id
            String taskId = "1604";
            // 方法一:设置流程变量,使用基本数据类型
    
            /*taskService.setVariableLocal(taskId, "请假天数", 5); // local 与任务绑定
            taskService.setVariable(taskId, "请假日起", new Date());
            taskService.setVariable(taskId, "请假原因", "回家探亲。hi");*/
    
            //方法二:使用javabean类型
            Person person=new Person();
            person.setId(122);
            person.setName("ysx");
            taskService.setVariable(taskId, "人员信息",person);

    上篇博客我们介绍了与activiti自带的数据库,其中,act_hi_varinst,act_ru_variable都与流程变量的存储相关。员工信息保存到业务数据库后,流程变量信息会保存到流程库的这两张表中。

  • 相关阅读:
    数据可视化需要简化编程
    设计模式之工厂模式
    LinCode落单的数
    怎样安装解压版MySQL
    程序阅读:简单C++学生信息管理系统
    中缀式变后缀式
    jquery动态创建表格
    Android笔记——Activity中的回传数据案例(装备选择)
    A mail sent to Google chromium.org Groups for Help
    Eclipse导入MyEclipseproject(web项目显示为java项目解决的方法)
  • 原文地址:https://www.cnblogs.com/saixing/p/6730240.html
Copyright © 2011-2022 走看看