|
|
【myApps/OBPM版本号】:v4.4- sp 21
【浏览器类型】:Chrome/其他
【联系方式-QQ】:请留下您的QQ号码
【联系电话】: 请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:
问:
您这是您的表单里面有个用户名称或者用户ID的字段吗?
回复:是的,这个是获取我表单里面用户选择框的值,来作为审批的对象
问:这是值是user对象还是名称还是ID?
回复 :根据用户的id去创建用户的对象
问:也就是说直接获取当前用户不行,需要通过用户ID重新创建一个用户对象才行?
回复:流程审批人一般都是用用户对象的,虽然听我同事说过可以拿用户id
问:我几乎照着你的,结果还是出错
回复:你用的是启动流程按钮?把脚本发一下,还有就是试试换个自定义按钮看下
问:不是,自定义按钮的动作后执行脚本
(function(){
var doc=getCurrentDocument();
var appid=getApplication();//获取appid
var docProcess = getDocProcess(appid);//获取DOC业务处理类
var domainid=getDomainid();//获取domainid
var params = getParamsTable();
var comment = ""; //备注
var flowOption =86;//流程操作参数
var nextNodeId = new Array();
nextNodeId[0] = getItemValueAsString("nextNodeId");//到达节点
var currNodeId = getItemValueAsString("currNodeId");//当前节点
var flowid=getItemValueAsString("流程ID");
params.setParameter("_flowid", flowid);
var Subscriber=doc.getItemValueAsString("Subscriber");
var userProcess = createProcess("cn.myapps.authtime.user.service.UserProcess"); //获取用户业务处理类
var whuser=getUserProcess().doView(Subscriber);
if(isNotNull(whuser)){
var userv = userProcess.getUserByLoginno(whuser.getLoginno(),domainid);//domainId
var webuser2 = new Packages.cn.myapps.base.web.WebUser(userv);
docProcess.doFlow(doc,params,currNodeId,nextNodeId,flowOption,comment,webuser2);
}
})();
问:我发现一个问题,是不是我动作执行前脚本里面有了一个process.doStartFlowOrUpdate(doc,params,webuser)? 你给注释掉了
回复: 是的,刚刚我在调试,我直接把脚本放一起了
问:测试了,完全好用了。
|
|