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

QQ登录

只需一步,快速开始

查看: 4804|回复: 16

[结贴] 流程流转选择上级单位

[复制链接]

156

主题

748

帖子

2428

积分

金牌会员

Rank: 6Rank: 6

积分
2428
QQ
发表于 2019-11-6 15:51:23 | 显示全部楼层 |阅读模式
需求:二级公司流转流程时要求只能选择上级公司(一级公司)。问题:使用findOrgParents(currentOgnFID(), 'org',null, true, true)设计执行规则,报错SELECT  org.sFID AS sFID, org.sFName AS sFName FROM SA_OPOrg org  WHERE  (org.SVALIDSTATE = ?) AND ( (? LIKE org.sFID || ?) AND (org.sID) )   ORDER BY org.SSEQUENCE ASC, binds: [1, /ORG01.ogn/MuPOx8UtvklfvkDSqYR.ogn/flb2vgF8kZunjZ7Tfvk.ogn。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-11-6 17:05:07 | 显示全部楼层
报错发tomcat控制台完整的错误信息
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2428

积分

金牌会员

Rank: 6Rank: 6

积分
2428
QQ
 楼主| 发表于 2019-11-6 17:10:15 | 显示全部楼层
2019-11-06 17:09:44 excute stream action, params:{"accept":"application/json","action":"externalAdvanceProcessQueryAction","actionFlag":"__action_0__","activity":"businessActivity1","contentType":"application/json","executeContext":"","executor":"/ORG01.ogn/MuPOx8UtvklfvkDSqYR.ogn/flb2vgF8kZunjZ7Tfvk.ogn/DCLhpUNojM8cfON207F@flb2vgF8kZunjZ7Tfvk.psm","parameters":{"task":"BBF7F3CC14464838BB28E497B4DEE31E"},"process":"/tzxm/tzxm/process/bd_ndtzjh/ndtzjhProcess"}
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.justep.micro.service.MicroServiceFilter.doFilter(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeAction(Native Method)
        at com.justep.system.action.Engine.invokeAction(Unknown Source)
        at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
        at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
        at com.justep.system.action.ActionUtils.invokeAction(Unknown Source)
        at com.justep.system.process.ProcessUtils.advanceProcessQuery(Unknown Source)
        at ExternalProcessProcedure.advanceProcessQuery(ExternalProcessProcedure.java:26)
        ... 30 more
Caused by: com.justep.model.exception.ModelException: 编码: JUSTEP154064; 提示: 计算表达式findOrgParents(currentOgnFID(), 'org',null, true, true)出错
        at com.justep.model.exception.ModelException.create(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.evaluate(Unknown Source)
        at com.justep.system.process.ExpressEngine.calculate(Unknown Source)
        at com.justep.system.process.ProcessRuleEngine.exprToOrgUnit(Unknown Source)
        at com.justep.system.process.ProcessRuleEngine.executorRangeToProcessControlItem(Unknown Source)
        at com.justep.system.process.ProcessRuleEngine.executeRuleToProcessControlItem(Unknown Source)
        at com.justep.system.process.ProcessRuleEngine.executeRuleToProcessControl(Unknown Source)
        at com.justep.system.process.ProcessQueryEngine.makeFlowIn(Unknown Source)
        at com.justep.system.process.ProcessQueryEngine.makeTo(Unknown Source)
        at com.justep.system.process.ProcessQueryEngine.makeTo(Unknown Source)
        at com.justep.system.process.AdvanceProcessQueryEngine.doFlowOutNormal(Unknown Source)
        at com.justep.system.process.AdvanceProcessQueryEngine.doFlowOut(Unknown Source)
        at com.justep.system.process.AdvanceProcessQueryEngine.doExecute(Unknown Source)
        at com.justep.system.process.AdvanceProcessQueryEngine.execute(Unknown Source)
        at com.justep.system.process.ProcessEngine.advanceQuery(Unknown Source)
        at ProcessProcedure.advanceProcessQuery(ProcessProcedure.java:343)
        ... 41 more
Caused by: com.justep.model.exception.ModelException: 编码: JUSTEP154075; 提示: 调用函数findOrgParents出错
        at com.justep.model.exception.ModelException.create(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.functionExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.constExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.unaryExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.multiExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.addExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.compExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.notExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.andExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.orExpression(Unknown Source)
        ... 56 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        ... 65 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: select org.sFID, org.sFName from SA_OPOrg org where org.sValidState=1  and ((('/ORG01.ogn/MuPOx8UtvklfvkDSqYR.ogn/flb2vgF8kZunjZ7Tfvk.ogn' like concat(org.sFID, '%'))) and (org)) order by org.sSequence
--> sql: SELECT  org.sFID AS sFID, org.sFName AS sFName FROM SA_OPOrg org  WHERE  (org.SVALIDSTATE = ?) AND ( (? LIKE org.sFID || ?) AND (org.sID) )   ORDER BY org.SSEQUENCE ASC
--> binds: [1, /ORG01.ogn/MuPOx8UtvklfvkDSqYR.ogn/flb2vgF8kZunjZ7Tfvk.ogn, %]
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.KSQL.select(Unknown Source)
        at com.justep.system.opm.OrgUtils.doFindOrgUnits(Unknown Source)
        at com.justep.system.opm.OrgUtils.findOrgParents(Unknown Source)
        at OrgFn.findOrgParents(OrgFn.java:171)
        ... 69 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: SELECT  org.sFID AS sFID, org.sFName AS sFName FROM SA_OPOrg org  WHERE  (org.SVALIDSTATE = ?) AND ( (? LIKE org.sFID || ?) AND (org.sID) )   ORDER BY org.SSEQUENCE ASC, binds: [1, /ORG01.ogn/MuPOx8UtvklfvkDSqYR.ogn/flb2vgF8kZunjZ7Tfvk.ogn, %]出错
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
        ... 76 more
Caused by: java.sql.SQLException: ORA-00920: 无效的关系运算符

        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:796)
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1031)
        at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:836)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        ... 77 more
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-11-6 17:33:48 | 显示全部楼层
findOrgParents(currentOgnFID(), '',null, true, true)这样看看报错吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2428

积分

金牌会员

Rank: 6Rank: 6

积分
2428
QQ
 楼主| 发表于 2019-11-7 09:30:50 | 显示全部楼层
jishuang 发表于 2019-11-6 17:33
findOrgParents(currentOgnFID(), '',null, true, true)这样看看报错吗?

不报错,但是显示的全部由权限的公司,包括本公司的下级。还有一个问题,昨天跟踪java代码,进入biz层jar里,利用反编译工具,不能再类上打断点,也不能跟踪具体的执行过程,这是什么原因你呢
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-11-7 11:10:58 | 显示全部楼层
请仔细看看函数的说明是需要拼条件的,不是直接写org就可以的
函数具体调用的API是不提供源码的
org.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2428

积分

金牌会员

Rank: 6Rank: 6

积分
2428
QQ
 楼主| 发表于 2019-11-7 15:09:39 | 显示全部楼层
jishuang 发表于 2019-11-7 11:10
请仔细看看函数的说明是需要拼条件的,不是直接写org就可以的
函数具体调用的API是不提供源码的

拼接条件之后,返回的是一级公司的Fid,Fname。但是流程流转框里显示的一级公司及一级公司下属的所有二级公司(包括自己),我想要的效果是,用二级公司用户登陆,只能看到二级公司的一级公司下有权的用户,其余的二级公司包括自己都不能看到
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-11-7 15:51:23 | 显示全部楼层
后面两个参数都设置为false
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2428

积分

金牌会员

Rank: 6Rank: 6

积分
2428
QQ
 楼主| 发表于 2019-11-7 17:18:48 | 显示全部楼层
jishuang 发表于 2019-11-7 15:51
后面两个参数都设置为false

1 findOrgParents(currentOgnFID(),'',null, false, false),使用这个表达式,最终的sql:SELECT        org.sFID AS sFID,
        org.sFName AS sFName
FROM
        ( SA_OPOrg org LEFT JOIN SA_OPOrg SA_OPOrg__1 ON org.sID = SA_OPOrg__1.sParent )
WHERE
        ( org.SVALIDSTATE = '1' )
        AND ( SA_OPOrg__1.sID = 'Nqs2IxqLnZpoNWuyXxB' ) (一级公司的SID
ORDER BY
        org.SSEQUENCE ASC

2 使用带条件findOrgParents(currentOgnFID(),'org.sname=x',{x='ddddd'}, false, false) 表达式报错 ,想问下条件如何设置


TIM截图20191107171405.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-11-7 17:43:26 | 显示全部楼层
可以自己定义一个函数去实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 18:07 , Processed in 0.071492 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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