流程修改了,如何使之前的任务转到新的流程中

act_re_procdef中找到要更新的流程记录


根据version来判断版本,这里上一版本id值为askForLeave1:2:72505,最新版本的id_值为:askForLeave1:1:67505

更新如下表中的记录

update act_ru_task set proc_def_id_ = ‘askForLeave1:2:72505’ where proc_def_id_ = ‘askForLeave1:1:67505’;
update act_hi_taskinst set proc_def_id_ = ‘askForLeave1:2:72505’ where proc_def_id_ = ‘askForLeave1:1:67505’;
update act_hi_procinst set proc_def_id_ = ‘askForLeave1:2:72505’ where proc_def_id_ = ‘askForLeave1:1:67505’;
update act_hi_actinst set proc_def_id_ = ‘askForLeave1:2:72505’ where proc_def_id_ = ‘askForLeave1:1:67505’;
update act_ru_execution set proc_def_id_ = ‘askForLeave1:2:72505’ where proc_def_id_ = ‘askForLeave1:1:67505’;

将任务修改为最新流程的前提是,最新的流程和上一版本的流程的节点不能有变化,不然会导致逻辑错误。

设置会签任务

  1. 在流程图中添加一个任务,并且设置以下属性
  • Sequential:执行顺序,true表示多实例顺序执行,false表示多实例并行。
  • Loop Cardinality:循环基数,选填,会签人数。
  • Completion Condition:完成条件,Activiti预定义了3个变量,可以在UEL表达式中直接使用,可以根据表达式设置按数量、按比例、一票通过、一票否定等条件。
    • nrOfInstances:总实例数,Collection中的数量。
    • nrOfCompletedInstances:已经完成的实例数。
    • nrOfActiveInstances:表示当前处于活动状态(尚未完成或取消)的实例数量
    • nrOfActiveTokens:对于并行执行的多实例,表示当前正在执行的令牌数量。
  • Collection:任务处理人集合(Assignee)集合,可以在启动实例时赋值变量。
  • Element Variable:任务处理人定义,必须和Assignee一样。
  1. 或者直接编写xml,填入如下代码(此为实例,根据实际情况修改)
1
2
3
<multiInstanceLoopCharacteristics activiti:collection="workers" activiti:elementVariable="worker"  isSequential="false">
<completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.5}</completionCondition>
</multiInstanceLoopCharacteristics>

本站总访问量:次本站总访问数:人
本站由 Peng Tong 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。