单据转换插件实现基础资料赋值(python)

【业务背景】
单据转换 A -> B -> C,其中B -> C 转换路线中需要用到分组功能,设置根据明细分录中的"采购供应商"(基础资料属性,取物料档案中采购的默认供应商)合并分录下推,B中的物料供应商由A下推物料时,默认自动携带。
【需求分析】
由于在转换中分组合并无法选择"基础资料属性"的字段,只能在B中在扩展一个基础资料属性,由B -> C时,根据物料供应商进行生成下游多张单据C,这涉及一个问题,从A -> B时,需要对"物料供应商"(基础资料字段)进行赋值,在单据转换中赋值有3种方式:
1、字段映射自定义公式:基础资料 = 物料.采购.默认供应商,跨级的引用,BOS不支持,类型报错
2、表单策略无法实现
3、单据转换插件
【插件实现】

import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference("Kingdee.BOS.App.Core")
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference("Kingdee.BOS.Contracts")
from System import *
from System import StringComparison
from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import *
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.Metadata import SelectorItemInfo
from Kingdee.BOS.Core.SqlBuilder import QueryBuilderParemeter
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.App.Core import *
def AfterConvert(e):
dataObjs = e.Result.FindByEntityKey("FBillHead")
viewService = ViewService()
field = e.TargetBusinessInfo.GetField("F_KCY_Base")
for obj in dataObjs:
entrys = obj.DataEntity["FEntity"]
for entry in entrys:
material = entry["MaterialId"]
if material is not None:
p = QueryBuilderParemeter()
单据转换插件实现基础资料赋值(python)
【业务背景】单据转换 A -> B -> C,其中B -> C 转换路线中需要用到分组功能,设置根据明细分录中的"采购供应商"(基础资料属性,...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



