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

QQ登录

只需一步,快速开始

查看: 5113|回复: 4

[结贴] 如何判断流程走过哪个节点

[复制链接]

767

主题

1914

帖子

3827

积分

论坛元老

Rank: 8Rank: 8

积分
3827
QQ
发表于 2019-4-28 16:57:08 | 显示全部楼层 |阅读模式
有这样的需求,就是判断流转过来的数据是否为某个分支的,请问如何判断走过哪个节点。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2019-4-28 17:22:25 | 显示全部楼层
js中通过this.getContext().getActivity()
获取当前Activity
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

767

主题

1914

帖子

3827

积分

论坛元老

Rank: 8Rank: 8

积分
3827
QQ
 楼主| 发表于 2019-4-30 10:33:10 | 显示全部楼层
本帖最后由 malixin 于 2019-4-30 13:18 编辑
jishuang 发表于 2019-4-28 17:22
js中通过this.getContext().getActivity()
获取当前Activity

我想在流程的分支节点使用这个函数可以吗?
场景是在分支的时候判断某个节点是否走过。


用了inputFromActivity('businessActivity2')这个函数,提示流程上下文中的当前环节实例为空


isFlowTo('conditionActivity1')这个函数也不起作用,里面参数随便填都是执行的true
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2019-4-30 14:53:42 | 显示全部楼层
平台默认没有提供这样的函数,需要自己定义一个函数
com.justep.system.process.ProcessUtils.getPI().getAIs()返回的是List<ActivityInstance> 自己遍历
看看ActivityInstance中的环节是否包含你需要的环节

ActivityInstance提供的有API获取环节名的,具体可以看API中的说明
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

33

主题

140

帖子

869

积分

高级会员

Rank: 4

积分
869
QQ
发表于 2021-12-13 18:57:58 | 显示全部楼层
本帖最后由 akshay 于 2021-12-13 19:07 编辑
jishuang 发表于 2019-4-30 14:53
平台默认没有提供这样的函数,需要自己定义一个函数
com.justep.system.process.ProcessUtils.getPI().getA ...

平台中提供了InputFromActivity函数,只是函数使用了会报错,或者不响应,冗余的函数,建议平台删掉,不要留着。我重新写了一个,后面需要的开发者可以参考下,应该可以结帖了

  1. //函数判断流程是否经过某个环节ID或环节名
  2.         public static Boolean isInputFromActivityName(String ActivityName) {
  3.                 if(ActivityName == null || ActivityName.isEmpty()){
  4.                         throw new RuntimeException("isInputFromActivityName环节名称不能为空");
  5.                 }
  6.                 //根据当前流程环节名称,查询当前流程实例中所有已经过的环节
  7.                 List<ActivityInstance> aIs = ProcessUtils.getPI().getAIs();
  8.                 ArrayList<ActivityInstance> arrayList1 = new ArrayList<ActivityInstance>();
  9.                 for (ActivityInstance a2 : aIs) {
  10.                         if (a2.getActivityName().equals(ActivityName) && a2.getTask().getStatus().equals("tesFinished")){
  11.                                 arrayList1.add(a2);
  12.                         }
  13.                 }
  14.                 return arrayList1.size()>0;
  15.         }

  16.         public static Boolean isInputFromActivityID(String ActivityID) {
  17.                 if(ActivityID == null || ActivityID.isEmpty()){
  18.                         throw new RuntimeException("isInputFromActivityID环节模版ID不能为空");
  19.                 }
  20.                 //根据当前流程环节ID,查询当前流程实例中所有已经过的环节
  21.                 List<ActivityInstance> aIs = ProcessUtils.getPI().getAIs();
  22.                 ArrayList<ActivityInstance> arrayList1 = new ArrayList<ActivityInstance>();
  23.                 for (ActivityInstance a2 : aIs) {
  24.                         if (a2.getActivityID().equals(ActivityID) && a2.getTask().getStatus().equals("tesFinished")){
  25.                                 arrayList1.add(a2);
  26.                         }
  27.                 }
  28.                 return arrayList1.size()>0;
  29.         }
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 19:57 , Processed in 0.085303 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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