【流程助手&移动bos】流程助手单据界面不同审批节点显示不同的字段

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

【流程助手&移动bos】流程助手单据界面不同审批节点显示不同的字段

【更新日志】

2021.10.18,优化内容描述


需求:流程助手单据界面怎么根据不同的审批节点显示不同的内容?

方案:移动bos拓展表单脚本控制,详见下面。


1、参考链接拓展开发表单,https://vip.kingdee.com/article/125556599124439296

表单做好之后,设置默认字段的显示、隐藏之类的属性,如果想要控制一个字段在某个节点的时候不显示,那就默认状态是显示,脚本设置隐藏。也可以反着来,根据需求。默认设置见下图


2、编写服务端脚本,函数名为getActDefId,脚本为:

var ctx = context.getBosContext();

    //获取方法参数

var assignid = context.getParamAsString(0);

var sql2 = "SELECT FACTDEFID FROM T_WFR_ASSIGN WHERE  FASSIGNID  = '"+assignid +"'";

var list = context.getDBUtil().executeQueryAsList(sql2);

context.setResult(list);

直接复制不用改

操作见下图


3、【事件】里面编写脚本控制

进入【事件】之后,编写脚本

mbos("entity").bind("afterLoad",function(e){

  try{

    var assignId = _assignInfo.assignId;

    mbos.eas.invokeScript("getActDefId",[assignId],function(data){

      var factdefid = data[0].factdefid;

      if(factdefid == "XXXXXXXX" || factdefid=="XXXXXXXX"){

       

      }

    })

  }catch(e){

       console.log();

  }

})

factdefid是流程节点定义id,获取方式在后面

红色部分需要修改

具体见下图


单据头和分录的开头有区别

单据头:

mbos("entity").bind("afterLoad",function(e){

……..

})

 

分录:

mbos('entries').bind('afterRendered',function(e){

……..

})

 

脚本说明:

if(factdefid == "XXXXXXXX" || factdefid=="XXXXXXXX"){

这里写需要控制的字段属性

}

这部分逻辑就是,当流程走到节点XXXXXXXX或者XXXXXXXX的时候,字段怎么怎么。。。。。

 

显示/隐藏,

mbos(id).show();

mbos(id).hide();

 

启用/禁用,

mbos(id).enable();

mbos(id).disable();

还有很多类似的控制

 

特别注意,分录字段需要写成mbos(id,e.index).show();设置其他属性也都要加上e.index

 

id获取参考下图


例如,


4、脚本中的factdefid的获取需要从待办任务表t_wfr_assign中获取

SELECT * FROM T_WFR_ASSIGN where FPROCDEFNAME_L2  = '流程实例名称'

通过活动定义名称获取活动定义内码(FACTDEFID),就是脚本中的factdefid

流程实例名称获取就是移动bos绑定流程节点时候的流程的名称


【流程助手&移动bos】流程助手单据界面不同审批节点显示不同的字段

【更新日志】2021.10.18,优化内容描述需求:流程助手单据界面怎么根据不同的审批节点显示不同的内容?方案:移动bos拓展表单脚本控制,详...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息