
原理参考:【[单据保存时如何自动生成批号](https://vip.kingdee.com/article/329936268761261824?productLineId=1)】
### python实现(以采购订单为例)
> 由于是直接在保存操作插件中调用的自动获取,支持导入时自动获取
```python
import clr
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.K3.SCM.Contracts')
clr.AddReference('Kingdee.K3.Core')
clr.AddReference('Kingdee.BOS.DataEntity')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
from Kingdee.BOS.Core.Base import *
from Kingdee.K3.SCM.Contracts import *
from Kingdee.K3.Core.SCM.STK import *
from Kingdee.BOS.Orm.DataEntity import *
def OnPreparePropertys(e):
e.FieldKeys.Add("FLot")
def BeforeDoSaveExecute(e):
lotField = this.BusinessInfo.GetField("FLot")
if lotField == None or lotField.OrgFieldKey == "" or lotField.ControlFieldKey == "" or lotField.InputModel != lotField.Enum_InputModel.TextAndSelect:
return
exEntitySet = ExtendedDataEntitySet()
exEntitySet.Parse(e.DataEntities, this.BusinessInfo)
entitys = exEntitySet.FindByEntityKey(lotField.EntityKey)
lotService = ServiceFactory.GetLotService(this.Context)
codeRet = lotService.GenerateLotMasterByCodeRule(this.Co