zoukankan      html  css  js  c++  java
  • Activiti reassign task to another user

    //早先胡乱尝试的其他方法,可能对于以后深入学习Activiti有些用处。
    //taskService.delegateTask(taskId, receiveUserId);
    //taskService.addCandidateUser(taskId, receiveUserId);
    //taskService.setOwner(taskId, receiveUserId);
    //taskService.claim(taskId, receiveUserId);


    //比较权威的参考资料
    //https://community.alfresco.com/thread/217952-reassign-task-to-another-user
    //https://community.alfresco.com/thread/231396-reassign-a-task
    //https://community.alfresco.com/thread/221688-task-reassign
    //https://stackoverflow.com/questions/38767052/activiti-assign-reassign-process
    //https://www.activiti.org/userguide/index.html#_update_a_task
    //https://www.activiti.org/userguide/index.html#bpmnUserTaskAssignment

    //上述第一个网址,说得很清楚。遇到同样的问题,并用如下代码解决了。
    //ndt
    //2011-12-15 下午5:30
    //Had same problem, using this code solved it
    //task.setAssignee(user.getId());
    //getTaskService().setAssignee(task.getId(), user.getId());

    task.setAssignee(receiveUserId);
    taskService.setAssignee(task.getId(), receiveUserId);

    //TOOD 上面的代码不奏效,既然是调用的Activiti的标准API,传递的参数也没问题。
    //两个参数,其中taskId这个肯定没问题。
    //而receiveUserId是咱们系统pf_user表的Id,而不是act_id_user表里的Id。
    //Activiti框架不了解我们自定义用户模块,它的API只能处理它的用户表里的Id。
    //因此,虽然调用的API方法没问题,传递userId也是有效值,但这个有效值并不是Activiti框架期望的值(存在act_id_user表里的Id)

    //集中可能的解决方案:
    //1 把我们的用户模块整合到Activiti框架中相关的act_id_xxx表中;
    //2不调用Activiti框架上述的两个API方法,我们想法搞一套。
    //3 重新启动一个新工作流,估计用户不会买账。
    //哪个方案都不简单,综合来说只有1是一套循规蹈矩的方案。
    //按照通用解决方案,很多系统直接对接,都是做集成,要想不用Activiti框架的用户模块,
    //要么自己遵循Activiti的用户模块的接口自己开发一套系统,要么大企业似的用LDAP(Active Directory){没有的IT基础的,不考虑了}。

  • 相关阅读:
    MySQL数据库优化的八种方式(经典必看)
    HTTP状态码详解
    一周学会HTML----Day03常用标签(下)
    一周学会HTML----Day02常用标签(上)
    SEO优化---10分钟学会建立高转化率的网站关键词库
    C# 命名的基本约定【转】
    arraylist是接口list的实现类
    API
    new与malloc区别(转)
    获取系统时间
  • 原文地址:https://www.cnblogs.com/rgqancy/p/7132461.html
Copyright © 2011-2022 走看看