|

楼主 |
发表于 2017-5-10 15:21:27
|
显示全部楼层
前台代码://调用action的批量流转代码
Model.prototype.batchTask=function(fid){
//定义参数类型
var param = new biz.Request.ActionParam();
// 流程控制对象,内含流转目标org对象
//fid为人员id
param.setString('control', fid);
//sid为任务id
param.setString('sid', sid);
biz.Request.sendBizRequest({
"context" : this.getContext(),
"dataType" : "application/json",
"action" : "batchAdvance",
"parameters":param,
"directExecute" : true,// 在批事务中是立即执行这个action
"callback" : function(result) {
if (result.state) {
} else {
throw new Error("调用失败!" + result.response.message);
}
}
});
};
java代码:
public static void batchAdvance(String sid,String control){
//sid任务id control 人员id
//查询对应的任务(转发:转给同级办理)
ProcessControl cur = ProcessUtils.transferTaskQuery(task);
//修改流转目标org对象(流转目标)
modifyFlowToExecutor(cur,control);
//查询对应的任务(转发:转给同级办理)
ProcessUtils.transferTask(task, cur);
}
private static void modifyFlowToExecutor(ProcessControl cur, String control){
Iterator<ProcessControlItem> it = cur.getFlowTos().iterator();
//循环遍历任务分支
while (it.hasNext()){
ProcessControlItem item = it.next();
item.clearExecutors();
//根据FID转换成对应对象
item.addExecutors(OrgUtils.findOrgUnitsByID(control));
}
}
实测 除转发外任何流程活动都不会丢失字段
|
|