复习步骤6-Activiti任务参数与附件

activiti 每个模块都有其对应的服务组件,任务也有,就是TaskService

     1. 任务参数   1.1 基本数据类型参数,1.2 序列化参数     

     2.   参数作用域 -  本地参数,全局参数

      2.1本地参数 :生命周期从属于单个节点,参数仅在当前的任务中有效,在这个任务还可以拿到这个参数,当流程流转到下一个节点,这个参数就获取不到了。

      2.2全局参数: 生命周期从属于整个流程,只要这个流程还没有结束,参数在各流程节点都可以获取

 

项目结构如图

Person.java

package com.xiangshuai.act.c10;

 

import java.io.Serializable;

 

public class Person implements Serializable{

    private static final long serialVersionUID = 1L;

    private String id;

    private String name;

    private String age;

    public String getId() {

       return id;

    }

    public void setId(String id) {

       this.id = id;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    public String getAge() {

       return age;

    }

    public void setAge(String age) {

       this.age = age;

    }

    public Person() {

       super();

       // TODO Auto-generated constructor stub

    }

    public Person(String id, String name, String age) {

       super();

       this.id = id;

       this.name = name;

       this.age = age;

    }

    @Override

    public String toString() {

       return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";

    }

   

   

}

 

TaskServiceTest.java

package com.xiangshuai.act.c9;

 

import java.util.List;

import java.util.UUID;

 

import org.activiti.engine.IdentityService;

import org.activiti.engine.ProcessEngine;

import org.activiti.engine.ProcessEngines;

import org.activiti.engine.TaskService;

import org.activiti.engine.identity.User;

import org.activiti.engine.task.Task;

 

/**

 * @author lqx

 * 文件在 E:\学习文档子目录压缩\框架\工作流引擎\Activiti6.0\window\复习步骤5-Activiti任务操作

 * 或 我的网盘\我的笔记学习文档子目录压缩\框架\工作流引擎\Activiti6.0\window\复习步骤5-Activiti任务操作

 *

 *任务,    任务候选人(组) 保存的三表为 中间表 act_ru_identitylink,act_ru_task,act_id_user(或act_id_group)

 *任务,     任务持有人  之前表数据不变会改变  act_ru_task的 OWNER_字段 的值

 *任务,     任务代理人  之前表数据不变会改变  act_ru_task的 ASSIGNEE_字段 的值

 *另外 任务声明 TaskService.claim方法

 *     任务完成 TaskService.complete 方法一调用,就会成功执行完此任务,调到下一个节点

 */

public class TaskServiceTest {

         public static void main(String[] args) {

                  //testCandidateUserAndTask();

                  //testOwnerAndTask();

         }

        

         //测试任务与任务候选人 的创建于查询

     public static void testCandidateUserAndTask(){

              ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

              IdentityService identityService = engine.getIdentityService();//获得操作用户的组织机构管理组件

              TaskService taskService = engine.getTaskService();//获得操作的任务管理组件

              

              //为了方便测试,这里直接新建任务了,实际WEB开发中,任务应该和流程图绑定的

              String taskid = UUID.randomUUID().toString();

              Task task = taskService.newTask(taskid);

              task.setName("任务与任务候选人的测试任务");

              taskService.saveTask(task);

              

              //创建候选人

              String userid = UUID.randomUUID().toString();

              User user = identityService.newUser(userid);

              user.setFirstName("xiaoming");

              identityService.saveUser(user);

              

              /*

              设置 任务 与任务候选人(组)-就是将关联关系insert到act_ru_identitylink中间表,

              百度TaskService API  设置 任务 与任务候选人方法 addCandidateUser(String taskId, String userId)

              */

              taskService.addCandidateUser(task.getId(), user.getId());

              

              //在实际WEB开发 如果要查询一个用户有多少可以 执行的任务权限,用以下方法即可

              List<Task> list = taskService.createTaskQuery().taskCandidateUser(userid).list();

              System.out.println("id为"+userid+"的人有如下任务权限--");

              list.forEach((temp)->{

                      System.out.println(temp.getName());

              });

              

     }

    

    /*

     测试任务与任务持有人 的创建于查询  --会在act_ru_task表的 OWNER_字段设值为持有人的id,表示这个任务被这个ID值的人持有

     代理人也一样,调taskService.claim(java.lang.String, java.lang.String) --和setOwner 一样第一参数是 任务task id,

     第二个参数是代理人user 的id

      字段为ASSIGNEE_为代理人的id

     */

     public static void testOwnerAndTask(){

              ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

              IdentityService identityService = engine.getIdentityService();//获得操作用户的组织机构管理组件

              TaskService taskService = engine.getTaskService();//获得操作的任务管理组件

              

              //为了方便测试,这里直接新建任务了,实际WEB开发中,任务应该和流程图绑定的

              String taskid = UUID.randomUUID().toString();

              Task task = taskService.newTask(taskid);

              task.setName("任务与持有人的测试任务");

              taskService.saveTask(task);

              

              //创建候选人

              String userid = UUID.randomUUID().toString();

              User user = identityService.newUser(userid);

              user.setFirstName("xiaoming--持有人");

              identityService.saveUser(user);

              

              /*

              设置 任务与任务持有人-不会将关联关系insert到act_ru_identitylink中间表,只会在act_ru_task表的 OWNER_字段设值为持有人的id

              即改变act_ru_task表的 OWNER_字段的值,

        代理人也一样,调taskService.claim(java.lang.String, java.lang.String) --和setOwner 一样第一参数是 任务task id,

     第二个参数是代理人user 的id

      字段为ASSIGNEE_为代理人的id

              百度TaskService API  设置 任务与任务持有人 setOwner(String taskId, String userId)

               */

              taskService.setOwner(task.getId(), user.getId());

              

              //在实际WEB开发 如果要查询一个用户 持有的任务是

              List<Task> list = taskService.createTaskQuery().taskOwner(userid).list();

              System.out.println("id为"+userid+"的人持有如下任务--");

              list.forEach((temp)->{

                      System.out.println(temp.getName());

              });

              

     }

    

    

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值