起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10698|回复: 4

代码控制ProcessControl做流转

  [复制链接]

37

主题

713

帖子

3310

积分

内部用户

积分
3310
发表于 2012-12-26 09:27:18 | 显示全部楼层 |阅读模式
本帖最后由 jholy 于 2013-12-10 17:22 编辑
  1. //1、首先获取某个任务后续的流转数据结构
  2. ProcessControl control = ProcessUtils.advanceProcessQuery(task);
  3. //2、获得后续可能流转的环节
  4. List<ProcessControlItem> flowTos = control.getFlowTos();
  5. for (int i = flowTos.size() - 1; i >= 0 ; i--) {
  6.     ProcessControlItem flowTo = flowTos.get(i);
  7.     //3、获取环节ID做判断
  8.     String activity = flowTo.getUnit();
  9.     if (activity.equals("xxxxActivity")) {
  10.         //4、留下要流转的环节,并自定义执行者
  11.         flowTo.clearExecutors();
  12.         flowTo.addExecutor(ContextHelper.getPersonMember());
  13.     } else {
  14.         //5、移走后续不流转的环节
  15.         control.removeFlowTo(flowTo);
  16.     }
  17. }
  18. //6、按定制的ProcessControl流转
  19. ProcessUtils.advanceProcess(task, control);
复制代码

12

主题

2627

帖子

2866

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2866
发表于 2012-12-31 14:38:18 | 显示全部楼层
或者使用Iterator来实现也行,代码如下:
  1. //1、首先获取某个任务后续的流转数据结构
  2. ProcessControl control = ProcessUtils.advanceProcessQuery(task);
  3. //2、获得后续可能流转的环节
  4. Iterator<ProcessControlItem> flowTos = control.getFlowTos().iterator();
  5. while(flowTos.hasNext()) {
  6.     ProcessControlItem flowTo = flowTos.next();
  7.     //3、获取环节ID做判断
  8.     String activity = flowTo.getUnit();
  9.     if (activity.equals("xxxxActivity")) {
  10.         //4、留下要流转的环节,并自定义执行者
  11.         flowTo.clearExecutors();
  12.         flowTo.addExecutor(ContextHelper.getPersonMember());
  13.     } else {
  14.         //5、移走后续不流转的环节
  15.         flowTos.remove();
  16.     }
  17. }
  18. //6、按定制的ProcessControl流转
  19. ProcessUtils.advanceProcess(task, control);         
复制代码

41

主题

216

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
QQ
发表于 2013-7-25 13:50:29 | 显示全部楼层
  学习, 代码控制ProcessControl做流转
一二三四五,上山打老虎

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-12-10 17:20:10 | 显示全部楼层
下午因为业务需要试了下两位老师的代码,两位的代码都有点问题:
jholy老师:i++错了,应该是i--
hecr老师:flowTos.remove();把所有环节都删除了,不能起到删除特定环节的目的
QQ:179785966
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-25 13:50 , Processed in 0.095385 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表