物料/供应商已经被禁用了,为什么供应链单据还能正常提交审核呢?该如何做控制呢?

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

物料/供应商已经被禁用了,为什么供应链单据还能正常提交审核呢?该如何做控制呢?

适用版本:所有版本


一、现状说明:

1、供应链单据目前只在新增单据时对F7范围做了过滤,但若单据是复制、关联生成、导入时,未在提交、审核时再次校验(部分单据可能有在补丁中做处理,但因需要每个单据每个字段单独做控制,故未统一处理),故会造成物料已被禁用,但是单据仍可正常执行的问题。

2、9.0版本已通过风控平台做控制,且支持自定义风控模型,由客户自行配置需要管控的基础数据、单据及管控方式(强控或者弱控),但低版本仍未做全面管控。

二、低版本DEP脚本处理指导,可参考以下案例:

1、采购申请单控制物料未核准不允许提交为例:

(1)DEP扩展,将脚本放在对应实体的对应操作的前置脚本中,如下图:

(2)、脚本如下,本脚本与单据无关,任何单据需要控制物料状态,均可用此脚本。

var ctx = pluginCtx.getContext();
var objectValue = methodCtx.getParamValue(0);
var entries = objectValue.getEntries();
if(entries.size() > 0){
	for (var i = 0;i < entries.size(); i++) {
		var entryInfo = entries.get(i);
		var material = entryInfo.getMaterial();
		if(material != null && material.getId() != null){
			var id = material.getId().toString();
			var sic = new com.kingdee.bos.metadata.entity.SelectorItemCollection();
			sic.add(new com.kingdee.bos.metadata.entity.SelectorItemInfo("id"));
			sic.add(new com.kingdee.bos.metadata.entity.SelectorItemInfo("number"));
			sic.add(new com.kingdee.bos.metadata.entity.SelectorItemInfo("status"));
			sic.add(new com.kingdee.bos.metadata.entity.SelectorItemInfo("name"));
			var materialInfo = com.kingdee.eas.basedata.master.material.MaterialFactory.getLocalInstance(ctx).getMaterialInfo(new com.kingdee.bos.dao.ormapping.ObjectUuidPK(id),sic);
			if(materialInfo.getStatus() != com.kingdee.eas.basedata.master.material.UsedStatusEnum.APPROVED){
				throw new com.kingdee.bos.BOSException("物料:"+ materialInfo.getName() + "未核准,提交失败!");
				}
			}
		}
	}

2、采购入库单控制供应商未核准不允许提交为例:

(1)DEP扩展,将脚本放在对应实体的对应操作的前置脚本中,如下图:

(2)、脚本如下,本脚本与单据无关,任何单据需要控制供应商状态,均可用此脚本。

var ctx = pluginCtx.getContext(); var info = methodCtx.getParamValue(0); var supplierId = info.getSupplier().getId(); var sic = new com.kingdee.bos.metadata.entity.SelectorItemCollection(); sic.add("usedStatus"); sic.add("id"); var supplier = com.kingdee.eas.basedata.master.cssp.SupplierFactory.getLocalInstance(ctx). getSupplierInfo(new com.kingdee.bos.dao.ormapping.ObjectUuidPK(supplierId), sic); if(supplier.getUsedStatus() != com.kingdee.eas.basedata.master.cssp.UsedStatusEnum.APPROVED){    throw new com.kingdee.bos.BOSException("供应商不是核准状态,不允许提交"); }

物料/供应商已经被禁用了,为什么供应链单据还能正常提交审核呢?该如何做控制呢?

适用版本:所有版本一、现状说明:1、供应链单据目前只在新增单据时对F7范围做了过滤,但若单据是复制、关联生成、导入时,未在提交、审核...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息