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

在2021年1月发布的星空通版补丁中,在退货通知单上添加了序列号功能,默认也会有对序列号的校验,如退货通知单分录上的序列号单位数量要和序列号页签中的序列号个数一致,如下图1-1所示:

图1-1
3月之后,陆续发现客户对此功能的抱怨,有些客户在录退货通知单环节时还不知道序列号是什么,或者此环节根本不会录序列号,可能是直到收到退货后才能知晓序列号,因此,这种校验是多余的。本文介绍如何通过BOS添加python插件移除此校验器。
打开BOSIDE,找到退货通知单上的保存操作上的插件列表,注册一个python插件,如下图1-2所示:

图1-2
python插件内容如下:(注:直接复制下面的文本会有问题,其中的空格会经过论坛转化,需要重新删除所有空格再重新敲空格,建议使用附件中的文本或自己输入):
import clr
clr.AddReference("System")
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
from System import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
def OnAddValidators(e):
for validator in e.Validators:
if (validator.GetType().ToString().Contains("ReturnNoticeSerialValidator")):
e.Validators.Remove(validator);
break;保存后可以看到校验通过,如下图1-3所示

图1-3
当然,也可以使用C#插件,不过这样就得写程序集并在BOS中添加插件(适合传统销售模式的客户或单租户),以下附上C#插件代码:
[Description("移除标准退货通知单序列号校验器插件")]
public class RemoveSNValidator : AbstractOperationServicePlugIn
{
public override void OnAddValidators(BOS.Core.DynamicForm.PlugIn.Args.AddValidatorsEventArgs e)
{
base.OnAddValidators(e);
var validator = e.Validators.Where(w => w如何移除通版退货通知单对序列号的校验器
在2021年1月发布的星空通版补丁中,在退货通知单上添加了序列号功能,默认也会有对序列号的校验,如退货通知单分录上的序列号单位数量...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



