查看: 12521|回复: 5

创建脚本后不生效的问题请教

qwe

升级   0.96%

12

主题

19

回帖

96

积分

注册会员

Rank: 2

积分
96
发表于 2021-8-16 18:09:57 | 显示全部楼层 |阅读模式
首先,在流程应用中创建了一个脚本,如下图,主要是为了向上层组织查找领导。


2. 在流程的审批人节点,配置处理人,脚本中内容如下(表单上生效能输出期望的审批人信息,但流程配置后,流转不下去):

3. 请问以上是有什么问题吗?为什么表单上写了,输出了期望的信息。然后流程中配置脚本后,却不能流转?更神奇的是,如果把输出的结果直接赋值(如下边的代码)就可以流转。
这种可以流转:
var checkers=[{
    "unitOrder": 99975000,
    "matchUnitName": "智能xx业务部",
    "matchUnitLevelName": "测试/智能xx业务部",
    "matchUnitLevel": 2,
    "matchUnitOrder": 99975000,
    "matchUnitDutyName": "总监",
    "matchUnitDutyId": "3a1939b5-0231-4af9-878b-ed27c29b09fc",
    "matchUnitDutyNumber": 1,
    "name": "陈某",
    "unique": "118790a6-71d5-4ab0-b0b8-60ef81b8741e",
    "distinguishedName": "陈某@118790a6-71d5-4ab0-b0b8-60ef81b8741e@I",
    "person": "陈某@ChenMou@P",
    "unit": "智能xx业务部@91@U",
    "unitName": "智能xx业务部",
    "unitLevel": 2,
    "unitLevelName": "测试/智能xx业务部",
    "orderNumber": 0
},
{
    "unitOrder": 99975000,
    "matchUnitName": "智能xx业务部",
    "matchUnitLevelName": "测试/智能xx业务部",
    "matchUnitLevel": 2,
    "matchUnitOrder": 99975000,
    "matchUnitDutyName": "分管高管",
    "matchUnitDutyId": "22db812f-d567-49df-bf51-88c3de2e6b7f",
    "matchUnitDutyNumber": 1,
    "name": "向某",
    "unique": "a8820bcd-2666-4d7a-8203-d394333e4e63",
    "distinguishedName": "向某@a8820bcd-2666-4d7a-8203-d394333e4e63@I",
    "person": "向某@XiangMou@P",
    "unit": "智能xx业务部@91@U",
    "unitName": "智能xx业务部",
    "unitLevel": 2,
    "unitLevelName": "测试/智能xx业务部",
    "orderNumber": 0
}];
这种也可以流转://var tt=["陈某@118790a6-71d5-4ab0-b0b8-60ef81b8741e@I","向某@a8820bcd-2666-4d7a-8203-d394333e4e63@I"];
但是调用脚本里的方法如下,后却不可以流转,是为啥?
this.include("getWorkersByUpUnit2");
//流程实例对象数据
var work = this.workContext.getWork();
//拟稿人
var creator = work.creatorIdentity;
//拟稿人所在组织
var unit = work.creatorUnitDn;
var dutys = ["副总监", "总监"];
var checkers=this.getAuditorListByDutyAndUnits2(dutys, unit);
if (checkers.length > 0) {
return checkers;
}
else {
    return creator;
}
回复

使用道具 举报

qwe

升级   0.96%

12

主题

19

回帖

96

积分

注册会员

Rank: 2

积分
96
发表于 2021-8-16 18:12:36 | 显示全部楼层
补充一下第一张图,自定义脚本中的代码,请帮忙看看到底是为啥:
//批量查询某组织中多个职务对应的身份数组
this.define("getAuditorListByDutyAndUnits2", function (dts, ut) {
    var leaders = [];
    for (var d = 0; d < dts.length; d++) {
        var arr=this.getAuditorByDutyAndUnit2(dts[d], ut);
        for(var i=0;i<arr.length;i++){
           leaders.push(arr[i]);
        }
    }
    return leaders;
}.bind(this));

//查询某组织某职务对应的身份
this.define("getAuditorByDutyAndUnit2", function (dt, ut) {
    var result = [];
    //所在组织的所有职务
    var dutyNameList = this.org.listDutyNameWithUnit(ut);
    if (dutyNameList.contains(dt)) { //当前组织包含所需职务
        var identityList = this.org.getDuty(dt, ut);
        result.push(identityList[0]);
    }
    else {
        //向上级追溯
        var supunits = this.org.listSupUnit(ut, false, false); //直接上级
        var tmp=[];
        if (supunits.length > 0 && supunits[0].level > 1) {
            result=tmp.concat(this.getAuditorByDutyAndUnit2(dt, supunits[0]));
        }
    }
    return result;
}.bind(this));
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2021-8-17 09:51:03 | 显示全部楼层
您好:服务器后台脚本,应该是无法引入前端脚本的!
回复

使用道具 举报

qwe

升级   0.96%

12

主题

19

回帖

96

积分

注册会员

Rank: 2

积分
96
发表于 2021-8-17 15:36:28 | 显示全部楼层
您好,不使用引入的方法,直接在脚本处定义js方法也不能生效。请问这种需求一般怎么实现?
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2021-8-18 14:45:43 | 显示全部楼层
您可以加
print("调式")
看看到底执行到哪一步不对!
回复

使用道具 举报

qwe

升级   0.96%

12

主题

19

回帖

96

积分

注册会员

Rank: 2

积分
96
发表于 2021-8-20 20:16:35 | 显示全部楼层
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread