如何实现库存单据在提交时校验序列号必录

问题描述:目前星空系统中针对启用序列号管理的物料,库存单据保存时针对序列号必录的校验是交互式的,可以选择是跳过这个校验继续保存单据,只有在单据审核的时候才会强制校验序列号必录。但是很多情况下,在企业操作流程上并不想走到审核的时候才提示,需要在审核前也就是提交的时候校验序列号必录;
解决方法:单据的提交操作上注册python插件校验器,针对启用序列号管理的物料分录提交时校验序列号是否全部录入,未全部录入则不允许提交。
此处以生产入库单为例介绍:
1、 生产入库单提交操作上注册python插件,增加校验器,如下图所示:

2、python插件代码如下(注意格式:通过tab调整,不要使用空格):
import clr
clr.AddReference("System")
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata.EntityElement import*
from Kingdee.BOS.Core.Validation import*
def OnPreparePropertys(e):
e.FieldKeys.Add("FSerialNo")
e.FieldKeys.Add("FSNQty")
def OnAddValidators(e):
validator=ValidateSN()
validator.EntityKey="FBillHead"
validator.AlwaysValidate=True
e.Validators.Add(validator)
class ValidateSN(AbstractValidator):
def Validate(self,dataEntities,validateContext,ctx):
for bill in dataEntities:
billEntrys=bill.DataEntity["Entity"]
billId=bill["Id"]
for entry in billEntrys:
mseq=(entry["Seq"])
snQty=(entry["SNQty"])
material=entry["MaterialId"]
stocdate = material["MaterialStock"][0]
如何实现库存单据在提交时校验序列号必录
问题描述:目前星空系统中针对启用序列号管理的物料,库存单据保存时针对序列号必录的校验是交互式的,可以选择是跳过这个校验继续保存单据...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



