问题
一直以为 获取当前流程节点 只要用 WfForm.getBaseInfo().nodeid 就可以获取的到,而且泛微的接口文档中也是这么说明的。
获取当前打开请求的基础信息
说明:包括路径id、节点id、表单id、主次账号信息
getBaseInfo: function()
console.log(WfForm.getBaseInfo()); //返回当前请求基础信息
//输出对象说明:
{
f_weaver_belongto_userid: "5240" //用户信息
f_weaver_belongto_usertype: "0"
formid: -2010 //表单id
isbill: "1" //新表单/老表单
nodeid: 19275 //节点id
requestid: 4487931 //请求id
workflowid: 16084 //路径id
}
getGlobalStore: function()
//获取当前操作人员
WfForm.getGlobalStore().commonParam.currentUserid
//获取当前操作人员名称
WfForm.getGlobalStore().commonParam.lastname
//获取当前节点名称
WfForm.getGlobalStore().commonParam.nodename
结果实际操作发现,只要是流程节点操作人员打开, WfForm.getBaseInfo().nodeid 获取到的 节点ID 就会是 对应的 操作人员节点ID , 而并非是 当前节点的ID。
解决
最后发现 通过 wfform.getGlobalStore().commonParam.currentnodeid 获取到的,才是 当前节点的ID , 不管是不是流程中的 节点操作人员打开,都是获取的 流程 当前节点的ID。 但是用 这个方式获取节点ID 也有一个问题, 就是在 创建节点时,currentnodeid 是没有值的,获取到的是 undefined 。
所以最终获取流程当前节点ID 方式应该是 两种获取方式结合使用。在开始节点 用 WfForm.getBaseInfo().nodeid 在其它节点用wfform.getGlobalStore().commonParam.currentnodeid 获取。
具体代码如下:
nodeid = wfform.getGlobalStore().commonParam.currentnodeid == undefined?WfForm.getBaseInfo().nodeid:wfform.getGlobalStore().commonParam.currentnodeid;