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

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

[已解决] 流程异常问题,急切!

[复制链接]
北京智源普华 发表于 2023-5-28 16:32:50 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.0- sp1
【浏览器类型】:360
【联系方式-QQ】:991466514
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:
遇到了分支节点并行流程,想要的是提交后,对应的节点审批人登录后,其对应的签字按钮会显示,不属于他的签字按钮不显示,其中用到了两个函数:

//1111111111函数1:
//当前流程处理节点其中有signname时返回false;否则返回true;
//可用于设置签字按钮只在signname流程节点可使用
function readonly_sign(signname){
        var rtn=true;
        var nodename = "";
        var curDoc = getCurrentDocument();
// println("curDoc========"+curDoc)
        var state_la = curDoc.getStateLabel();
  println("state_la--------"+state_la)
        var userid = getWebUser().getId();
        var uservo = getWebUser();
        var acotrid="";
        if(isNotNull(state_la)&&curDoc.getState()!=null){
                var actors = curDoc.getState().getActors();
           println("curDoc========"+actors)
                if (actors != null) {
                        for(var it = actors.iterator(); it.hasNext(); ) {
                                var actor = it.next();
                                acotrid += actor.getActorid()+";";
                        }
                   //println("acotrid========"+acotrid)
                   //println("userid========"+userid)
                        if(acotrid.indexOf(userid)>=0){
                                //var uservo = getUserById(userid);
                                var webUser = Packages.cn.myapps.base.web.WebUser(uservo);
                                var nodeRt = Packages.cn.myapps.runtime.workflow.engine.StateMachine.getCurrUserNodeRT(curDoc,webUser);
                                if(nodeRt != null){
                                        nodename = nodeRt.getName();
                                  println("nodename========"+nodename)
                                }
                        }
                }
        }
        if(signname.equals(nodename)){
                rtn=false;
        }
//println("sss==="+signname+"+++nnn==="+nodename);
        return rtn;
}


//22222222函数2:
//field_name签章字段,为空时返回false;不为空返回true;
//用于签章按钮签章后隐藏
function hide_sign(field_name){
        var value = getItemValueAsString(field_name);
  println("value+++++++"+value)
        var retvar = true;
        if(value==null || value.trim().length()<=0) {
                retvar = false;
        }
        return retvar;
}

-----------------分割线-------

//签字按钮隐藏条件脚本:
var bool=false;
#include "sys_sign_and_seal";
var bol1 = hide_sign('经办项目负责人');
var bol2 = readonly_sign("施工单位项目经理");
if(bol1==true ||bol2==true ){
bool= true;
}       
bool;








该方式在M3版本是可行的,在5.0版本如果流程无分支的话也是可以的,但是有分支的话就有如下问题:

①经办人分别提给两个分支节点(安全和质量)之后,对应的审批人A,B登录后签字按钮都不显示,这时候得到的acotrid正常来说应该是A和B的userid,但是print出来后是上一个提交者的userid,然后诡异的来了,后台保存下业务表单后,A和B再点进表单,签字按钮就出现了,也能print正常的这俩人的acotrid了:

②然后A,B继续提给对应的负责人的时候,①描述的问题依然存在,而且,当图里圈起来的两个节点是同一个审批人的话,比方质量技术人员和安全人员先后提给了C,则审批人C会出现两条待办,回退的饿时候,任选一条点进去,回退的时候都显示后提交的那根线,也就是安全人员那条,只有将这条回退过去后,另一个待办再退才显示另一个线(质量技术人员)

说简单点
①acotrid获取不到正确的值,是脚本问题还是新版本bug,该如何解决
②分支流程中不同审批节点是相同审批人的话,回退的时候只显示后提交那根线是不是也是bug?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
lillian828 发表于 2023-6-6 18:53:21 | 显示全部楼层

在微信群协助中

本版积分规则

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

GMT+8, 2026-8-12 17:19

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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