Python快速处理业务单据仓位校验器的添加和移除

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:2

Python快速处理业务单据仓位校验器的添加和移除

一、【业务需求】

仓库启用了仓位,单据在保存的时候会提示仓位必录,如入库单,但是有些业务场景单据是通过对接第三方系统生成,需要把仓位必录校验转移到提交或者审核的时候进行处理


二、【功能分析】

仓位必录的校验是独立的校验器处理的,在各个单据的保存插件中默认预置了该校验器,如果需要将校验从保存操作转移到提交或者审核进行处理,则可通过Python脚本简单处理


参考文章:

【如何移除通版退货通知单对序列号的校验器】

【客户需求】单据操作如何增加或移除通用校验器(python)


以其他出库单为例:

1、保存操作移除仓位校验

clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
def OnAddValidators(e):
    vdts = e.Validators;
    vdt = list(filter(lambda x: x.__class__.__name__ == 'StockLocValueValidator', vdts));
    j=len(vdt);
    if (j> 0):
        for i in range(0,j):
            e.Validators.Remove(vdt[i]);


image.webp


2、审核操作添加仓位校验

clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.K3.BD.App.Core')
clr.AddReference('Kingdee.K3.SCM.App')
clr.AddReference('Kingdee.K3.MFG.App')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.K3.BD.App.Core import *
from Kingdee.K3.BD.App.Core.Validator import *
from Kingdee.K3.SCM.App import *
from Kingdee.K3.SCM.App.Validator import StockLocValueValidator
def OnAddValidators(e):
    outLocValueValidator = StockLocValueValidator()
    outLocValueValidator.AlwaysValidate = True
    outLocValueValidator.EntityKey = "FEntity"  # 单据体明细标识
    outLocValueValidator.MaterialName = "MaterialID"  # 物料编码绑定实体属性
    outLocValueValidator.StockName = "StockId"   # 仓库绑定实体属性
    outLocValueValidator.StockLocKey = "FStockLocId" # 仓位标识
    e.Validators.Add(outLocValueValidator)


1.webp



image.webp

Python快速处理业务单据仓位校验器的添加和移除.rar


好功能

Python快速处理业务单据仓位校验器的添加和移除

一、【业务需求】仓库启用了仓位,单据在保存的时候会提示仓位必录,如入库单,但是有些业务场景单据是通过对接第三方系统生成,需要把仓位...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息