//早先胡乱尝试的其他方法,可能对于以后深入学习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基础的,不考虑了}。

Activiti reassign task to another user的更多相关文章

  1. activiti任务TASK

    一.概要 设计TASK的表主要是:ACT_RU_TASK,ACT_HI_TASKINST(见参考-activiti表): 任务主要有:人工任务(usertask),服务任务(servicetask)等 ...

  2. 流程开发Activiti 与SpringMVC整合实例

    流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...

  3. Activiti工作流学习(三)Activiti工作流与spring集成

    一.前言 前面Activiti工作流的学习,说明了Activiti的基本应用,在我们开发中可以根据实际的业务参考Activiti的API去更好的理解以及巩固.我们实际的开发中我们基本上都使用sprin ...

  4. activiti当前任务高亮(解决乱码问题)

    package com.xinwei; import java.io.File; import java.io.InputStream; import java.util.ArrayList; imp ...

  5. Liferay7 BPM门户开发之47: 集成Activiti待办已办任务清单和流程启动

    首先增加两个Portlet,分别用于待办处理.流程启动.待办是别人发起的流程,流到自己这里的流程:流程启动用于发起新的流程. 程序文件放置于 在ACtivit中待办概念分两种,1是指派给你的,专门的指 ...

  6. Activiti之 Exclusive Gateway

    一.Exclusive Gateway Exclusive Gateway(也称为XOR网关或更多技术基于数据的排他网关)经常用做决定流程的流转方向.当流程到达该网关的时候,所有的流出序列流到按照已定 ...

  7. activiti入门

    一.Activiti简介 Activiti 是一个针对商务人士. 开发人员和系统管理员的轻量级的工作流和业务流程管理 (BPM) 平台.它的核心是Java的高速和可靠的 BPMN 2 流程引擎.它是开 ...

  8. 创建Activiti项目

    1.创建项目 2.导入Activiti的jar包 项目上右击创建lib文件夹 将jar包复制进lib文件夹 3.导入数据库连接jar包 4.使用代码创建Activiti用来存放流程数据的23张表 pa ...

  9. activiti基础操作

    package activitiTest; import java.io.InputStream; import java.util.List; import java.util.zip.ZipInp ...

随机推荐

  1. cocos2d-x 3.0 安装及创建项目

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/LanerGaming/article/details/24146921 好久没实用过cocos2d- ...

  2. 如何在sublime编辑器中,执行命令行脚本

    我有个愿意,在执行命令行时,不打开那个黑乎乎命令行窗口,如果编辑器内置支持就好了. 打开vs code 和 sublime,分别按快捷键 Ctrl + ·(tab键上面那个键),vs code可以提供 ...

  3. centos7下安装docker(3.2创建镜像build)

    通过Dockerfile创建镜像 注:这个Dockerfile一开始真的不知道是在哪来的,还以为是在官网下载下来得(当然网上也有很多dockerfile的模板,参考:https://hub.docke ...

  4. UVA10562-Undraw the Trees(递归)

    Problem UVA10562-Undraw the Trees Accept: 1199  Submit: 8397 Time Limit: 3000 mSec Problem Descripti ...

  5. 「SNOI2019」通信

    题目 还好我没生在陕西啊 首先发现这个题不能\(dp\),数据范围不大,好像一种网络流的样子啊 哎等等,这样向后面连边不是一个\(DAG\)吗,这不是最小权路径覆盖的板子吗 于是我们套路的拆点,对于一 ...

  6. Git基础命令的使用——详细教程2

    Git安装默认完成后,在左面点击鼠标右键,鼠标右键菜单中会多出来两个选项: a)  Git GUI Here <—>  图型界面模式 b) Git Bash Here <—> ...

  7. vue - 状态管理器 Vuex

    状态管理 vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是data中需要共用的属性.

  8. 3902-luogu 最长不下降子区间

    题目 现有数列A1,A2,…An ,修改最少的数字,使得数列严格单调递增. 依旧是书上的题 但是书上的范围比较小 而 lg上的数据范围很大 按书上的 方法 是会超时 只能过一半的数据 但是 算法思路还 ...

  9. AIS系统(转)

    船舶自动识别系统(Automatic Identification System, 简称AIS系统)由岸基(基站)设施和船载设备共同组成,是一种新型的集网络技术.现代通讯技术.计算机技术.电子信息显示 ...

  10. C#深入理解AutoResetEvent和ManualResetEvent

    当在C#使用多线程时就免不了使用AutoResetEvent和ManualResetEvent类,可以理解这两个类可以通过设置信号来让线程停下来或让线程重新启动,其实与操作系统里的信号量很相似(汗,考 ...