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

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

[已解决] 审批时限问题

[复制链接]
上海普兰金融 发表于 2014-3-13 13:31:49 | 显示全部楼层 |阅读模式
流程中有节点    A  B  C

其中B C的审批人为同一人。在C中写审批时限脚本如下:

function getApproveDeadLine(nodeid) {

        var lastApprover = getLastApprover();
        var deadLine = "2100-01-01 00:00:00";
        var doc = $CURRDOC.getCurrDoc();
        var stateMachineUtil = new Packages.cn.myapps.core.workflow.engine.StateMachineUtil();
        var params = getParamsTable();
        var fd = doc.getState().getFlowVO().toFlowDiagram();
        var node = fd.getElementByID(nodeid);
        var domainid = getDomainid();
        var applicationid = getApplication();
        var webUser = getWebUser();
        var users = stateMachineUtil.getPrincipalList(doc, params, node, domainid,
                        applicationid, webUser);
        println(users + "======approve=users====");
        for (var iter = users.iterator(); iter.hasNext();) {
                var uservo = iter.next();
                println("lastApprover:"+lastApprover.getActorid());
                println("curentApprover:"+uservo.getId());
                if (lastApprover.getName().equals(uservo.getName())) {
                        deadLine = "2014-01-01 00:00:00";
                        break;
                }
        }
        println("deadLine"+deadLine+" nodeid: "+nodeid);
        return deadLine;
}

经过测试,这段脚本是在B提交的时候执行的,这时候var lastApprover = getLastApprover();
获得的值实际上是A节点的审批人,所以它没有办法跳过C节点,请问这是否是BUG?
david 发表于 2014-3-13 18:06:27 | 显示全部楼层
getLastApprover();是获得当前文档最后审批人,放在B节点,此时B正在处理(未处理完),所以获得的肯定是A,因此需要把这段脚本放在C节点。有问题再沟通。
 楼主| 上海普兰金融 发表于 2014-3-14 08:45:10 | 显示全部楼层
这段脚本本来就是放在C的审批时限脚本里,但是取到的是A的审批人
david 发表于 2014-3-14 10:19:06 | 显示全部楼层
楼主用那个版本的程序,本地测试一下。
david 发表于 2014-4-15 19:19:44 | 显示全部楼层
该帖距上次回复已经超过一个月,楼主未表示异议,该帖结贴。楼主如有疑问,请重新发帖提问。

本版积分规则

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

GMT+8, 2026-8-13 13:47

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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