创建脚本后不生效的问题请教
首先,在流程应用中创建了一个脚本,如下图,主要是为了向上层组织查找领导。https://www.o2oa.net:443/x_file_assemble_control/jaxrs/file/f360f7ff-8f2c-4a16-8a84-6208e82f844c/download/stream
2. 在流程的审批人节点,配置处理人,脚本中内容如下(表单上生效能输出期望的审批人信息,但流程配置后,流转不下去):
https://www.o2oa.net:443/x_file_assemble_control/jaxrs/file/826d9800-0705-42ea-9520-6d012c0486d2/download/stream
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;
} 补充一下第一张图,自定义脚本中的代码,请帮忙看看到底是为啥:
//批量查询某组织中多个职务对应的身份数组
this.define("getAuditorListByDutyAndUnits2", function (dts, ut) {
var leaders = [];
for (var d = 0; d < dts.length; d++) {
var arr=this.getAuditorByDutyAndUnit2(dts, ut);
for(var i=0;i<arr.length;i++){
leaders.push(arr);
}
}
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);
}
else {
//向上级追溯
var supunits = this.org.listSupUnit(ut, false, false); //直接上级
var tmp=[];
if (supunits.length > 0 && supunits.level > 1) {
result=tmp.concat(this.getAuditorByDutyAndUnit2(dt, supunits));
}
}
return result;
}.bind(this)); 您好:服务器后台脚本,应该是无法引入前端脚本的! 您好,不使用引入的方法,直接在脚本处定义js方法也不能生效。请问这种需求一般怎么实现? 您可以加
print("调式")
看看到底执行到哪一步不对! 谢谢
页:
[1]