
@[TOC](目录)
## 背景
标准产品委外收料通知单保存时会校验关联的委外订单的领料套数与累计交货数量之间的数量关系,如果当前单据的交货数量与历史收料的交货数量之和大于领料套数就会抛出提示。有客户个性化场景想将该校验从保存操作上挪动到提交或者审核操作上,比如接口对接需触发保存操作,但是接口时的数据可能并不完整必须要先保存后续再修改的情况。以取消【保存】操作校验并注册到【提交】操作上为例
## 步骤及对应python脚本
### 1、移除保存操作校验器

```python
import clr
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__ == 'ReceiveMatchValidator', vdts));
if (len(vdt) > 0):
for item in vdt:
e.Validators.Remove(item)
```
### 2、到提交操作上注册校验器

```python
import clr
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.K3.SCM.App.Pur.ServicePlugIn')
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.K3.SCM.App.Pur.ServicePlugIn.ReceiveBill import *
def OnPreparePropertys(e):
e.FieldKeys.Add("FStockOrgId")
e.FieldKeys.Add("FMaterialID")
e.FieldKeys.Ad