电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

单据转换多个单据体转换Python实现案例

来源:金蝶云社区作者:金蝶2024-09-168

单据转换多个单据体转换Python实现案例

业务需求:一个单据有多个个单据体,想在单据转换中配置多个单据体下推,可是不支持多单据体字段转换映射的配置

示例:将收料通知单明细信息下推到检验单上的二开单据体上。

1678850248.webp

image.webp



#引入clr运行库

import clr

#添加对cloud插件开发的常用组件的引用

clr.AddReference('System')

clr.AddReference('System.Data')

clr.AddReference('Kingdee.BOS')

clr.AddReference('Kingdee.BOS.Core')

clr.AddReference('Kingdee.BOS.App')

clr.AddReference("Kingdee.BOS.App.Core")

clr.AddReference('Kingdee.BOS.Contracts')

clr.AddReference('Kingdee.BOS.DataEntity')

clr.AddReference('Kingdee.BOS.ServiceHelper')

#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)

from Kingdee.BOS import *

from Kingdee.BOS.Core import *

from Kingdee.BOS.Core.Bill import *

from Kingdee.BOS.Orm.DataEntity import *

from Kingdee.BOS.Contracts import *

from Kingdee.BOS.App import *

from Kingdee.BOS.Core.DynamicForm.PlugIn import *

from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *

from System import *

from System.Data import *

from System.Text import *

from System.Collections import *

from System import StringComparison

from Kingdee.BOS.App.Data import *

from System.Collections.Generic import List

from Kingdee.BOS.ServiceHelper import *

from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args import *

from Kingdee.BOS.Core.Metadata import SelectorItemInfo 

from Kingdee.BOS.Core.SqlBuilder import QueryBuilderParemeter 

from Kingdee.BOS.Contracts import *

from Kingdee.BOS.App.Core import *


global FBillNo

def OnGetSourceData(e):

global FBillNo

sourceData = e.SourceData;

FBillNo =  List[str]()

for row in sourceData:

FBillNo.Add(Convert.ToString(row["FID"]));

FBillNo = set(FBillNo)#定义变量,获取源单ID


def AfterConvert(e):

global FBillNo

mainEntity = e.TargetBusinessInfo.GetEntity("F_SHUU_Entity");

billDataEntitys = e.Result.FindByEntityKey("FBillHead");

obj = e.TargetBusinessInfo.GetEntryEntity("F_SHUU_Entity");

viewService = ViewService()

for item in billDataEntitys:

dataObject = item.DataEntity;

secondEntryRows = mainEntity.DynamicProperty.GetValue(dataObject)

secondEntryRows.Remove(secondEntryRows[0]);


for i in FBillNo:

sql = "/*dialect*/select * from T_PUR_ReceiveEntry where F_ZL_CheckBox='1' and fid in ('{0}')".format(i)#自行用SQL查找需要的字段

doc = DBServiceHelper.ExecuteDynamicObject(this.Context, sql,None)

for  OB in doc:

newRow =  DynamicObject(obj.DynamicObjectType)

Service = ServiceHelper.GetService<IViewService>()

FPAYMATERIALIDz = Convert.ToString(OB["FMaterialId"]);

if FPAYMATERIALIDz is not None and Convert.ToInt64(FPAYMATERIALIDz) > 0:

baseDataField = e.TargetBusinessInfo.GetField("F_SHUU_Base1")

vendor = vi

单据转换多个单据体转换Python实现案例

业务需求:一个单据有多个个单据体,想在单据转换中配置多个单据体下推,可是不支持多单据体字段转换映射的配置示例:将收料通知单明细信息...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信