|
|
请问,你们这上面的代码有没有经过测试证实的。 我在这边运行有很多的错, 比如说, 方法所传递的类型都已经是不正确的啦。
process.doChangeAuditor(pdoc,params,author);
这个方法的最后一个参数类型应该是 webUser的类型。这里author的类型是UserVO, 根本就运行不起来。
当然我做了一些调整,但是运行到后面也报错了。
// 添加任务处理人权限
var pdoc = getParentDocument();
var pdocProcessorId = ""; //父文档的当前处理人
if(pdoc != null){
if(doc.getState() != null){
var actors = doc.getState().getActors();
if (actors != null) {
for(var it = actors.iterator(); it.hasNext(); ) {
var actorrt = it.next();
if (actorrt.getIsprocessed()) {
continue;
}
pdocProcessorId += actorrt.getActorid() + ",";//获取审批人ID
}
pdocProcessorId = pdocProcessorId.substring(0,pdocProcessorId.length-1);//去除最后一个多余的逗号
}
}
var process = getDocumentProcess();//申明文档业务处理类
var StateMachine = new Packages.cn.myapps.core.workflow.engine.StateMachine();
//var userd = pdoc.getAuthor();
var webUser = getWebUser();
var doc = getCurrentDocument(); //获得选中记录的文档对象
println("1====>" + pdocProcessorId);
var receiverId = doc.getItemValueAsString("Receiver");//任务接受者
if(receiverId != null){
pdocProcessorId += pdocProcessorId + "," + receiverId; //增加子表单的审批人。
var receiverVO = getUserById(receiverId);
println("2====>" + receiverId + "==" + name);
var name = receiverVO.getName();
//获取当前文档所在的流程节点ID
//getCurrUserNodeRT的第二个参数必须是第一个参数的审批人
var nodert = StateMachine.getCurrUserNodeRT(pdoc, webUser, null);
var nodeid = nodert.getNodeid();
//设置文档审批人参数
pdoc.setAuditorList("{\"" + nodeid + "\":["+ pdocProcessorId +"]}"); //json格式
pdoc.setAuditorNames(name);
pdoc.setLastmodifier(receiverId);
//设置流程节点IDauthorid
var params = createParamsTable();
params.setParameter("_currid", nodeid);
process.doChangeAuditor(pdoc, params, webUser);
}
}
|
|