找回密码
 注册成为天翎用户
查看: 1073|回复: 5

[已解决] 获取上一节点状态标签报错(cm)

[复制链接]
JT38180318 发表于 2014-9-29 11:15:24 | 显示全部楼层 |阅读模式
本帖最后由 kharry 于 2014-9-29 17:57 编辑

http://www.teemlink.com/bbs/view ... F%D2%BB%BD%DA%B5%E3
参照这个方法,报错:
org.mozilla.javascript.WrappedException: Wrapped java.lang.ClassNotFoundException: cn/myapps/core/workflow/storage/runtime/ejb/FlowStateRTProcessBeanBean (baselib#1117)
at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(Unknown Source)
at org.mozilla.javascript.NativeJavaMethod.call(Unknown Source)
at org.mozilla.javascript.optimizer.OptRuntime.call1(Unknown Source)
at org.mozilla.javascript.gen.c3836._c64(baselib:1117)
at org.mozilla.javascript.gen.c3836.call(baselib)
at org.mozilla.javascript.optimizer.OptRuntime.callName(Unknown Source)
at org.mozilla.javascript.gen.c14007._c0(Activity Action(11e4-4209-c933ee7f-8732-ebbf83eca017).撤回工单beforeActionScript:27)
at org.mozilla.javascript.gen.c14007.call(Activity Action(11e4-4209-c933ee7f-8732-ebbf83eca017).撤回工单beforeActionScript)
at org.mozilla.javascript.ContextFactory.doTopCall(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.doTopCall(Unknown Source)
at org.mozilla.javascript.gen.c14007.call(Activity Action(11e4-4209-c933ee7f-8732-ebbf83eca017).撤回工单beforeActionScript)
at org.mozilla.javascript.gen.c14007.exec(Activity Action(11e4-4209-c933ee7f-8732-ebbf83eca017).撤回工单beforeActionScript)
at cn.myapps.core.macro.runner.JavaScriptRunner.run(JavaScriptRunner.java:139)
at cn.myapps.core.dynaform.activity.action.ActivityRunTimeAction.doRunbeforeactionscript(ActivityRunTimeAction.java:310)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:233)
at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:198)
at cn.myapps.base.web.filter.OBPMFilterDispatcher.doFilter(OBPMFilterDispatcher.java:43)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.myapps.base.web.filter.AjaxMultiLanguageFilter.doFilter(AjaxMultiLanguageFilter.java:55)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.myapps.km.base.filter.KMPersistenceFilter.doFilter(KMPersistenceFilter.java:20)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.myapps.base.web.filter.PersistenceFilter.doFilter(PersistenceFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.myapps.base.web.filter.SecurityFilter.doFilter(SecurityFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:197)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.myapps.core.sso.cas.filter.OBPMAuthenticationFilter.doFilter(OBPMAuthenticationFilter.java:87)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cn.myapps.base.web.filter.EncodingFilter.doFilter(EncodingFilter.java:28)
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:662)
Caused by: java.lang.ClassNotFoundException: cn/myapps/core/workflow/storage/runtime/ejb/FlowStateRTProcessBeanBean
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at cn.myapps.protection.util.WarpProcessFactory.createProcess(WarpProcessFactory.java:179)
at cn.myapps.protection.util.WarpProcessFactory.createProcess(WarpProcessFactory.java:204)
at sun.reflect.GeneratedMethodAccessor2895.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
... 72 more


脚本:
            var docid = doc.getId();
            var flowid = doc.getFlowid();
            var his = "";
            //获取最后一条流程历史。docid为文档对象ID;flowid为表单绑定的流程ID。
            if (flowid != null && flowid.trim().length() > 0) {
                his = getLastRelationHis(docid, flowid);
            }
            var staid = his.getFlowStateId(); //获取最后一条记录的流程实例ID
            var rtprocess = createProcess("cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcessBean");
            var statert = rtprocess.doView(staid); //获取流程实例
            var father_node = statert.getStateLabel(); //获取上一节点状态标签

系统版本:sp8,6月最新补丁
qq:12831784
kharry 发表于 2014-9-29 13:12:20 | 显示全部楼层
楼主的问题是在createProcess的时候找不到FlowStateRTProcessBeanBean   请注意是否写错
回复

使用道具 举报

 楼主| JT38180318 发表于 2014-9-29 14:02:11 | 显示全部楼层
var rtprocess = createProcess("cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcessBean");
改成:
var rtprocess = createProcess("cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcess");
这行就不报错了(27行)

但是:
var statert = rtprocess.doView(staid); //获取流程实例
这行报错,说doview对象不能为null。

我打印了一下staid,是流程提交前flowrt的id,
我的代码写在【回撤】执行前脚本,是不是此时该条flowrt已经不存在了,所以才提示null?
回复

使用道具 举报

kharry 发表于 2014-9-29 14:30:46 | 显示全部楼层
var rtprocess = createProcess("cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcess");
var statert = rtprocess.findFlowStateRTByDocidAndFlowid(docid,flowid)
回复

使用道具 举报

 楼主| JT38180318 发表于 2014-9-29 15:48:27 | 显示全部楼层
已解决,代码如下:
var docid = doc.getId();
var flowid = doc.getFlowid();
var applicationid = getApplication();
var rtprocess= new Packages.cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcessBean(applicationid);
var statert = rtprocess.findFlowStateRTByDocidAndFlowid(docid,flowid); //获取流程实例
var father_node = statert.getPrevAuditNode(); //获取上一节点状态标签
回复

使用道具 举报

kharry 发表于 2014-9-29 16:03:43 | 显示全部楼层
感谢楼主反馈 该帖结贴
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 01:38

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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