天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

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

用脚本怎样查询表单的流程历史

[复制链接]
huangxj 发表于 2011-7-11 11:02:58 | 显示全部楼层 |阅读模式
本帖最后由 shary 于 2011-7-11 14:53 编辑

我的表单中有几个选项卡,想用脚本查询出表单的流程历史,然后通过它走过的流程来判断选项卡是否显示。但是Document中只有查询表单当前流程状态的方法,不知道怎样查询流程历史。
shary 发表于 2011-7-11 14:52:42 | 显示全部楼层
var doc = getCurrentDocument();
var relationHisProcess = createProcess("cn.myapps.core.workflow.storage.runtime.ejb.RelationHISProcess");
var datas=relationHisProcess.doQuery(doc,doc.getFlowid());
循环遍历dates历史数据信息就可以了。
 楼主| huangxj 发表于 2011-7-11 15:52:05 | 显示全部楼层
回复 2# shary
var relationHisProcess = createProcess("cn.myapps.core.workflow.storage.runtime.ejb.RelationHISProcess");
这句会报错,控制台显示信息如下:

    org.mozilla.javascript.WrappedException: Wrapped java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given (baselib#1108)
at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1757)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:170)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:243)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
at org.mozilla.javascript.gen.c9146._c64(baselib:1108)
at org.mozilla.javascript.gen.c9146.call(baselib)
at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)
shary 发表于 2011-7-11 15:56:11 | 显示全部楼层
你把这句改成
var relationHisProcess = Packages.cn.myapps.core.workflow.storage.runtime.ejb.RelationHISProcessBean(getApplication());
 楼主| huangxj 发表于 2011-7-11 16:06:04 | 显示全部楼层
回复 2# shary


    在一个已经走了很多步流程的表单中,查询出来的datas的size是0,也就是说没有任何值
shary 发表于 2011-7-11 16:21:06 | 显示全部楼层
不会吧。你的脚本再哪里写的。你看下你表单对应的前台的那个流程历史那里有没有记录
 楼主| huangxj 发表于 2011-7-11 16:26:10 | 显示全部楼层
本帖最后由 huangxj 于 2011-7-11 16:28 编辑

回复 6# shary


    代码写在表单选项卡的隐藏脚本里面,在选项卡脚本里面调用了函数库的代码。
  下面是函数库里的代码。:

function concealByState(doc,lable){
var ret=true;
    println("YYYYYYYYYYYYYYYY"+1);
var rhProcess = Packages.cn.myapps.core.workflow.storage.runtime.ejb.RelationHISProcessBean(getApplication());                                                                                      
println("YYYYYYYYYYYYYYYY"+doc.getFlowid());
var lables=rhProcess.doQuery(doc,doc.getFlowid());
println("YYYYYYYYYYYYYYYY"+lables.size());
for(var iter = lables.iterator(),a=0; iter.hasNext();a++)
{
    var temp=iter.next();
    println("YYYYYYYYYYYYYYYY"+temp);
    if(temp.equals(lable)){
     ret=false;
    }
  }
ret;
}


println("YYYYYYYYYYYYYYYY"+lables.size());//些句在控制台打印结果是:YYYYYYYYYYYYYYYY0


前台流程历史里面也是有记录的:
huangxj2011-07-08 16:27:23开始
huangxj2011-07-08 16:27:27填写申请资料
huangxj2011-07-08 16:27:34单位领导审核
admin2011-07-08 16:27:35送发改局
huangxj2011-07-08 16:27:50概算受理(承办人)
huangxj2011-07-08 16:28:00填写审批结果
huangxj2011-07-08 16:28:08概算审议(承办人)
huangxj2011-07-08 16:29:07概算决策
huangxj2011-07-08 16:33:04概算批复
huangxj2011-07-08 16:34:38收发文
huangxj2011-07-11 10:08:16概算决策
shary 发表于 2011-7-14 16:57:56 | 显示全部楼层
您好,您的doc获取的是当前文档对象吗?

本版积分规则

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

GMT+8, 2026-8-12 12:26

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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