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

QQ登录

只需一步,快速开始

楼主: xiaoniu2008

[结贴] 关于条件分支

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-11-30 09:35:24 | 显示全部楼层
(currentOrgName()='起步软件')  or ( currentOrgName()='开发人员' )
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

40

主题

208

帖子

340

积分

中级会员

Rank: 3Rank: 3

积分
340
QQ
 楼主| 发表于 2016-11-30 10:11:31 来自手机 | 显示全部楼层
您好,这次写法对了,谢谢!还是这个流程,仍然有个疑问,麻烦您再帮忙指点指点,就是最后一个条件分支“是否财务经理”,这里的条件该怎么写呢?比如软件部经理经过总经理审批后流转到财务经理审批,财务经理经总经理审批后不需要再流转到自己审批,直接到出纳环节,因为这个条件分支放在总经理审批后,不知道该怎么写了,请指教,谢谢!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-11-30 11:02:35 | 显示全部楼层
同样可以通过角色判断啊
财务经理有财务经理审批这几个环节角色的权限,其他的没有这个角色权限,判断当前人是否有这个角色
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

40

主题

208

帖子

340

积分

中级会员

Rank: 3Rank: 3

积分
340
QQ
 楼主| 发表于 2016-11-30 11:33:55 来自手机 | 显示全部楼层
jishuang 发表于 2016-11-30 11:02
同样可以通过角色判断啊
财务经理有财务经理审批这几个环节角色的权限,其他的没有这个角色权限,判断当前 ...

您好,应该用哪个函数呢?财务经理这个角色,role表里存的scode是cwjl,我在条件分支写的条件是findOrgUnitsHasRoleByCode('cwjl',currentOgnId(),true),结果页面报错了,报错信息如下:计算表达式not(findOrgUnitsHasRoleByCode('cwjl',currentOgnId(),true))出错。是不是函数没用对?如果是该正确使用哪个函数呢?请指教,谢谢!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-11-30 13:28:41 | 显示全部楼层
findOrgUnitsHasRoleByCode(String roldCode, Object inOrg, Boolean isPersonMember)
获取拥有某个角色的组织单元
不是直接再判断条件用的


自己定义一个函数,函数中通过
List<String> roleList = ContextHelper.getOperator().getAllRoles();
         获取当前人的角色,然后判断你的角色是在里面返回true或者false,然后在条件分支表达式中调用自己定义的函数
http://pan.baidu.com/s/1cxHxro#list/path=%2F中有自定义函数的说明
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

40

主题

208

帖子

340

积分

中级会员

Rank: 3Rank: 3

积分
340
QQ
 楼主| 发表于 2016-11-30 15:04:47 来自手机 | 显示全部楼层
还是不懂,那个分支条件是“是否财务经理”,放在总经理审批后面,总经理审批通过后,会先进行财务经理判断,不论谁发起的流程,当前环节都是总经理审批,自定义函数可以判断当前通过总经理审批的人的角色吗?比如是财务经理,通过条件分支,直接进入出纳环节,不是的话则先进入财务审批再出纳。上面那个方法有例子吗???参考参考!!!刚接触,对java的类也不熟悉。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-11-30 15:23:15 | 显示全部楼层
没有案例,方案就是15楼说的,先看看自定义函数

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-11-30 15:39:28 | 显示全部楼层
或者通过权限判断,判断当前人是否有“财务经理审批这个环节”的权限
自定义的函数可以参考
  1.         public static boolean CurrentPersonIsManager(){
  2.                 //参数:是否包括所有父的管理者
  3.                 boolean find = false;
  4.                
  5.                 List<OrgUnit> orgs = new ArrayList<OrgUnit>();
  6.                 String deptId =  ContextHelper.getPersonMember().getDept().getID();
  7.                
  8.                 String process = ProcessUtils.getProcessInProcessContext().getFullName2();
  9.                 orgs = OrgUtils.findOrgUnitsHasActivity(process, "bizActivity2",  deptId,   true);
  10.         //        orgs = findOrgUnitsHasActivity(null,null,true)
  11.                
  12.                
  13.                 //orgs = ProcessUtils.findOrgUnitsHasCActivityInACDept("START", true); // = OrgUtils.findManagersOfCurrentDept(true);
  14.                 String personId = ContextHelper.getPersonMember().getPerson().getID();
  15.                 String fids[];
  16.                 String fID;
  17.                 String id;
  18.                 int endIndex;
  19.                 if (orgs.isEmpty()) {
  20.                         return true;
  21.                 } else {
  22.                         for (OrgUnit orgUnit : orgs) {
  23.                                
  24.                                 fids = orgUnit.getFID().split("/");
  25.                                 if (fids.length > 0) {
  26.                                         fID = fids[fids.length-1];
  27.                                        
  28.                                         endIndex = fID.indexOf("@");
  29.                                         if (endIndex == -1) {
  30.                                                 endIndex = fID.length()-1;
  31.                                         }
  32.                                         id = fID.substring(0, endIndex);
  33.                                         if (id.equals(personId)){
  34.                                                 find = true;
  35.                                                 break;
  36.                                         }
  37.                                        
  38.                                 }
  39.                         }
  40.                 }
  41.                 return find;
  42.         }
复制代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

40

主题

208

帖子

340

积分

中级会员

Rank: 3Rank: 3

积分
340
QQ
 楼主| 发表于 2016-11-30 20:00:37 | 显示全部楼层
jishuang 发表于 2016-11-30 15:39
或者通过权限判断,判断当前人是否有“财务经理审批这个环节”的权限
自定义的函数可以参考
...

您好,我按照这个方式写了自定义函数,但还是不行,这个函数里面取的deptID是总经理的,那个条件分支是放在总经理审批后面的,所以这个条件分支里的条件,怎么取都只能取到总经理的deptid和personid。比如现在流程发起人是财务经理,流程流转后直接到总经理审批,总经理审批后有个条件分支,想在这个条件分支里进行判断,如果报销人或者流程发起人是财务经理,总经理审批后直接到出纳环节,如果报销人或者流程发起人是软件部经理,总经理审批后,通过条件分支“是否是财务经理”判断,会先进入到财务经理审批,然后流转到出纳审批。这个放在“总经理审批”后面的条件分支通过什么方法能取到流程创建人(报销人)的角色名、或者权限等属性呢???,这个是解决的关键,条件分支的条件里试过了很多函数都不行,比如查找首环节的创建人的那个函数,也不行。流程现在就卡在这里了,或者流程需要改嘛,如果改的话,该如何走最后一个条件分支呢???请指教,谢谢。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-12-1 10:40:05 | 显示全部楼层
比如现在流程发起人是财务经理,流程流转后直接到总经理审批,总经理审批后有个条件分支,想在这个条件分支里进行判断,如果报销人或者流程发起人是财务经理,总经理审批后直接到出纳环节,如果报销人或者流程发起人是软件部经理,总经理审批后,通过条件分支“是否是财务经理”判断,会先进入到财务经理审批,然后流转到出纳审批。

如果是这样的就直接用findActivityExecutor(String activity) 获取指定环节的执行者 ,判断这个人不是财务经理
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 00:21 , Processed in 0.074378 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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