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

QQ登录

只需一步,快速开始

查看: 16624|回复: 38

[处理中3] 规则里有多人时,表达式方式。

[复制链接]

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
发表于 2018-8-13 15:43:25 | 显示全部楼层 |阅读模式
本帖最后由 zyygod 于 2018-8-13 15:48 编辑

比如通知多个人时,表达式或者范围表达式应该给定什么样的格式。一个list集合里面用空格隔开吗?[张三 李四 王五 ],是这种格式吗?还是有其他的格式,具体表现形式是什么。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-8-13 16:12:53 | 显示全部楼层
自己调用list的add添加数据就是需要的格式
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
 楼主| 发表于 2018-8-13 16:23:22 | 显示全部楼层
本帖最后由 zyygod 于 2018-8-13 16:26 编辑
jishuang 发表于 2018-8-13 16:12
自己调用list的add添加数据就是需要的格式

编码: JUSTEP180226; 提示: 表达式"personFn(relationValue('QXJJBXXB',null,'QXJJBXXB.YWH = :getProcessData2()',null,'XJYWH','/app/business/oa/holidayManager/backleave/data'))"计算的结果不是组织单元列表。

[姚智,  王思宇,  陈健(办)]这是我list add进去后取到的值。。
19.png

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-8-13 16:38:23 | 显示全部楼层
List<OrgUnit>的

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



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

使用道具 举报

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
 楼主| 发表于 2018-8-13 16:54:12 | 显示全部楼层
本帖最后由 zyygod 于 2018-8-13 17:10 编辑
jishuang 发表于 2018-8-13 16:38
List的

list中的要是OrgUnit的才可以

findPersonMembersByIDList(personFn(relationValue('QXJJBXXB',null,'QXJJBXXB.YWH = :getProcessData2()',null,'XJYWH','/app/business/oa/holidayManager/backleave/data')))

[28099750D35A43358A7A2DE989191604, 231A63A95724482F82051BBD5F6931F2, EB0547E0C3B04CD882BDE3B47022000B]list<String>取到的值
[, [28099750D35A43358A7A2DE989191604, ,  231A63A95724482F82051BBD5F6931F2, ,  EB0547E0C3B04CD882BDE3B47022000B]]List<List<String>>取到的值
20.png 21.png
结果是不报错了,但是没有取到值。
  1. public static List<List<String>> personFn(String XJYWH) {
  2.                  List<List<String>> list1 = new ArrayList<List<String>>();
  3.                  List<String> list3 = new ArrayList<String>();
  4.                 System.out.println(XJYWH);
  5.                 String sql = "Select a.PERSONID from SPQKB a where a.YWH ='" + XJYWH + "' ";
  6.                 System.out.println(sql+"12312312312312312");
  7.                 Table table = SQL.select(sql, null, "/app/business/oa/holidayManager/backleave/data", null);
  8.                 Iterator<Row> rows = table.iterator();
  9.                 List<String> list2 = new ArrayList<String>();
  10.                 while (rows.hasNext()) {
  11.                  Row row = rows.next();
  12.                  list2.add(row.getString("PERSONID"));
  13.                 };
  14.                  System.out.println(list2);
  15.                  String[] strArray = list2.toArray(new String[list2.size()]);
  16.                  String strArrays = Arrays.toString(strArray) ;
  17.                  String[] per = strArrays.split(",");
  18.          for (int i = 0; i < per.length; i++) {
  19.                          list3.add("");
  20.                 list3.add(per[i]);
  21.                 list1.add(list3);
  22.          }
  23.          System.out.println(list3);
  24.                 return list1;
  25.         };
复制代码



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-8-13 17:25:32 | 显示全部楼层
http://bbs.wex5.com/forum.php?mo ... 4&pid=165004035把sql语句到出来,看看输出的sql中用这些值做条件查询的sql是什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
 楼主| 发表于 2018-8-14 08:42:39 | 显示全部楼层
jishuang 发表于 2018-8-13 17:25
http://bbs.wex5.com/forum.php?mod=redirect&goto=findpost&ptid=33524&pid=165004035把sql语句到出来,看 ...

两个问题。一、查人员的表是哪张表。二、我用的是findPersonMembersByIDList,控制台打印出来的结果是
[, [28099750D35A43358A7A2DE989191604, ,  231A63A95724482F82051BBD5F6931F2, ,  EB0547E0C3B04CD882BDE3B47022000B]]。这样符合findPersonMembersByIDList的要求吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-8-14 08:55:53 | 显示全部楼层
1.这个不是一个简单的只查人员表的sql,是关联查询的,参考我前面发的输出sql就能看到

2.执行sql语句是打出来的这个?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
 楼主| 发表于 2018-8-14 09:59:51 | 显示全部楼层
jishuang 发表于 2018-8-14 08:55
1.这个不是一个简单的只查人员表的sql,是关联查询的,参考我前面发的输出sql就能看到

2.执行sql语句是打 ...
  1. Select a.PERSONID from SPQKB a where a.YWH ='201807310385'
  2. 2018-08-14 09:59:31 excute stream action, params:{"accept":"application/json","action":"externalAdvanceProcessQueryAction","actionFlag":"__action_0__","activity":"backleaveActivity","contentType":"application/json","executeContext":"","executor":"","parameters":{"task":"D958C429361A4EBD839277CD4EC096EB"},"process":"/app/business/oa/holidayManager/backleave/process/backleave/backleaveProcess"}
  3. java.lang.reflect.InvocationTargetException
  4.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  5.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  6.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  7.         at java.lang.reflect.Method.invoke(Method.java:497)
  8.         at com.justep.system.action.Engine.invokeActions(Native Method)
  9.         at com.justep.system.action.Engine.invokeActions(Unknown Source)
  10.         at com.justep.business.server.BusinessServer.doAction(Unknown Source)
  11.         at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
  12.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  13.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  14.         at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
  15.         at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  16.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  17.         at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  18.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  19.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  20.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  21.         at com.justep.micro.service.MicroServiceFilter.doFilter(Unknown Source)
  22.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  23.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  24.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  25.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  26.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  27.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  28.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  29.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  30.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  31.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  32.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  33.         at java.lang.Thread.run(Thread.java:745)
  34. Caused by: java.lang.reflect.InvocationTargetException
  35.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  36.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  37.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  38.         at java.lang.reflect.Method.invoke(Method.java:497)
  39.         at com.justep.system.action.Engine.invokeAction(Native Method)
  40.         at com.justep.system.action.Engine.invokeAction(Unknown Source)
  41.         at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
  42.         at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
  43.         at com.justep.system.action.ActionUtils.invokeAction(Unknown Source)
  44.         at com.justep.system.process.ProcessUtils.advanceProcessQuery(Unknown Source)
  45.         at ExternalProcessProcedure.advanceProcessQuery(ExternalProcessProcedure.java:26)
  46.         ... 30 more
  47. Caused by: com.justep.model.exception.ModelException: 编码: JUSTEP154064; 提示: 计算表达式findPersonMembersByIDList(personFn(relationValue('QXJJBXXB',null,'QXJJBXXB.YWH = :getProcessData2()',null,'XJYWH','/app/business/oa/holidayManager/backleave/data')))出错
  48.         at com.justep.model.exception.ModelException.create(Unknown Source)
  49.         at com.justep.system.ksql.parser.ExpressionImpl.evaluate(Unknown Source)
  50.         at com.justep.system.process.ExpressEngine.calculate(Unknown Source)
  51.         at com.justep.system.process.ProcessRuleEngine.exprToOrgUnit(Unknown Source)
  52.         at com.justep.system.process.ProcessRuleEngine.executorRangeToProcessControlItem(Unknown Source)
  53.         at com.justep.system.process.ProcessRuleEngine.noticeRuleToProcessControlItem(Unknown Source)
  54.         at com.justep.system.process.ProcessRuleEngine.processNoticeRuleToProcessControl(Unknown Source)
  55.         at com.justep.system.process.ProcessQueryEngine.makeProcessNotice(Unknown Source)
  56.         at com.justep.system.process.AdvanceProcessQueryEngine.execute(Unknown Source)
  57.         at com.justep.system.process.ProcessEngine.advanceQuery(Unknown Source)
  58.         at ProcessProcedure.advanceProcessQuery(ProcessProcedure.java:343)
  59.         ... 41 more
  60. Caused by: com.justep.model.exception.ModelException: 编码: JUSTEP154075; 提示: 调用函数findPersonMembersByIDList出错
  61.         at com.justep.model.exception.ModelException.create(Unknown Source)
  62.         at com.justep.system.ksql.parser.ExpressionImpl.functionExpression(Unknown Source)
  63.         at com.justep.system.ksql.parser.ExpressionImpl.constExpression(Unknown Source)
  64.         at com.justep.system.ksql.parser.ExpressionImpl.unaryExpression(Unknown Source)
  65.         at com.justep.system.ksql.parser.ExpressionImpl.multiExpression(Unknown Source)
  66.         at com.justep.system.ksql.parser.ExpressionImpl.addExpression(Unknown Source)
  67.         at com.justep.system.ksql.parser.ExpressionImpl.compExpression(Unknown Source)
  68.         at com.justep.system.ksql.parser.ExpressionImpl.notExpression(Unknown Source)
  69.         at com.justep.system.ksql.parser.ExpressionImpl.andExpression(Unknown Source)
  70.         at com.justep.system.ksql.parser.ExpressionImpl.orExpression(Unknown Source)
  71.         ... 51 more
  72. Caused by: java.lang.reflect.InvocationTargetException
  73.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  74.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  75.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  76.         at java.lang.reflect.Method.invoke(Method.java:497)
  77.         ... 60 more
  78. Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
  79.         at java.util.ArrayList.rangeCheck(ArrayList.java:653)
  80.         at java.util.ArrayList.get(ArrayList.java:429)
  81.         at com.justep.system.opm.OrgUtils.doFindPersonMembersByID(Unknown Source)
  82.         at com.justep.system.opm.OrgUtils.findPersonMembersByIDList(Unknown Source)
  83.         at OrgFn.findPersonMembersByIDList(OrgFn.java:137)
  84.         ... 64 more
复制代码

  1. public static List<List<String>> personFn(String XJYWH) {
  2.                 try {
  3.                 String sql = "Select a.PERSONID from SPQKB a where a.YWH ='" + XJYWH + "' ";
  4.                 System.out.println(sql);
  5.                 Table table = SQL.select(sql, null, "/app/business/oa/holidayManager/backleave/data", null);
  6.                 Iterator<Row> rows = table.iterator();
  7.                 List<List<String>> list1 = new ArrayList<List<String>>();
  8.                 while (rows.hasNext()) {
  9.                         Row row = rows.next();
  10.                         List<String> list2 = new ArrayList<String>();
  11.                         list2.add(row.getString("PERSONID"));
  12.                         list1.add(list2);
  13.                 };
  14.                 return list1;
  15.                 } catch (Exception e) {
  16.                         e.printStackTrace();
  17.                         return null;
  18.                 }
复制代码


这是什么错,怎么这么多unknowsource..上面是sql以及报的错,下面是java代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-8-14 10:04:15 | 显示全部楼层
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
findPersonMembersByIDList传的参数不正确
往list找那个放的时候自己判断是否有值,没值就不要add加到list中


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



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 19:22 , Processed in 0.077147 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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