二开案例-【Python】实现校验生产订单行号重复不允许保存

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

二开案例-【Python】实现校验生产订单行号重复不允许保存

        由于未知原因,客户生产订单数据会有部分行号重复的保存成功,造成下达时,后续成本归集数据异常,因此通过Python插件实现生产订单保存时,出现行号重复时,不允许保存。该Python插件注册在生产订单保存操作上,如图:

Snipaste_2022-05-31_10-22-42.webp


代码如下:

import clr
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')

from System import *
from System.Data import *
from System.Collections.Generic import List
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Log import *
from Kingdee.BOS.Core.Validation import *

def OnAddValidators(e):
   extMoProducTypeValidator=ExtMoProducTypeValidator()
   extMoProducTypeValidator.EntityKey="FBillHead"
   extMoProducTypeValidator.TimingPointString=",Save"
   e.Validators.Add(extMoProducTypeValidator)

class ExtMoProducTypeValidator(AbstractValidator):
   def Validate(self,dataEntities,validateContext,ctx):
      for bill in dataEntities:
         billId=str(bill["Id"]);
         entryData=bill.DataEntity["TreeEntity"];
         list1=[]
         for entryInfo in entryData:
            seq=entryInfo["Seq"];
            if seq in list1:
               errorInfo=ValidationErrorInfo(" ",billId,bill.DataEntityIndex,bill.RowIndex,billId,"明细表体存在分录行号重复,不允许保存","",ErrorLevel.Error)
               validateContext.AddError(None,errorInfo)
            else:
               list1.append(seq);


二开案例-【Python】实现校验生产订单行号重复不允许保存

由于未知原因,客户生产订单数据会有部分行号重复的保存成功,造成下达时,后续成本归集数据异常,因此通过Python插件实现生产订单...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息