
@[TOC](目录)
### 背景
分销购销销售出库单审核可以自动生成分销购销采购订单,其中采购订单的【供应商】字段会根据销售订单的【客户】字段绑定的对应组织信息与供应商列表进行匹配,返回同一对应组织的供应商。这一转换是在销售订单到采购订单转换转换插件中实现的,且触发时点是在`AfterConvert`事件中,该事件的时点晚于表单服务策略,因此在表单服务策略中是获取不到供应商字段数据的。然而供应商字段会存在部分属性需要在下推生成时自动携带到采购订单对应字段上,因此需要二开插件实现,同样在单据转换的`AfterConvert`事件中获取到供应商,然后获取其属性,最后设置采购订单的字段的值。
### 步骤
1.~~在供应商上新增字段~~(如使用已存在的字段则忽略)
2. ~~在采购订单上新增字段~~(如使用已存在的字段则忽略)
**下面以分销购销销售出库单审核自动生成分销购销采购订单自动携带供应商【负责部门】字段到采购订单【采购部门】为例**
3. 注册单据转换插件(python脚本见下方)

4. 根据自己的场景修改示例脚本中的字段的属性名称
### Python脚本
```python
import clr
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.K3.SCM.App')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.App import *
from Kingdee.K3.SCM.App.Utils import *
def AfterConvert(e):
#采购部门字段属性
purchaseDeptIdField = e.TargetBusinessInfo.GetField("FPurchaseDeptId")
#采购订单表头数据包
billHeads =e.Result.FindByEntityKey("FBillHead")
for billHead in billHeads:
#供应商数据包
supplierId = billHead["SupplierId"]
deptId = 0
if supplierId != None:
#供应商基本信息数据包
supplierBase = supplierId["SupplierBase"]
if supplierBase != None:
#供应商负责部门数据包
dept = supplierBase[0]["DeptId"]
if dept != None:
#供应商负责部门Id
deptId = dept["Id"]
#设置采购部门Id
billHead.DataEntity["PurchaseDeptId_Id"] = deptId
#设置采购部门数据包
FieldUtils.SetBaseDataFieldValue(this.Context, purchaseDeptIdField, billHead.DataEntity, deptId)
```
### 演示效果
1. 供应商负责部门

2. 销售订单审核

3. 采购订单携带供应商负责部门

**其他更多文章入口:**[https://vip.kingdee.com/link/s/lbRPP](https://vip.kingdee.com/link/s/lbRPP)