二开案例-【Python】设置生产用料清单发料组织
【应用场景】
需求描述:物料清单未设置发料组织,且没有设置供料方式,生产订单为组织委托加工时,生产用料清单的发料组织设置为货主,前提货主类型必须为组织。
【注意事项】
该实现方案涉及到生产订单保存自动生成生产用料清单的过程中,更改发料组织的值,非标准业务场景,二开需注意仅限于特殊场景下的特殊应用,拷贝代码进行测试时,需要理解代码含义,针对不同场景进行修改,另外代码中Logger.Info语句为记录日志语句,输出日志,方便查看各个变量的值,可删除。
【实现步骤】
<1>编写生产用料清单保存操作插件,示例采用Python开发,具体代码如下:
''' 需求描述:物料清单未设置发料组织,且没有设置供料方式,生产订单为组织委托加工时,用料清单的发料组织设置为货主,前提货主类型必须为组织 ''' clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.Log') clr.AddReference('Kingdee.BOS.ServiceHelper') from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Log import * from Kingdee.BOS.ServiceHelper import * def OnPreparePropertys(e): e.FieldKeys.Add("FMOType"); e.FieldKeys.Add("FOwnerTypeId"); e.FieldKeys.Add("FOwnerID"); e.FieldKeys.Add("FSupplyOrg"); def BeginOperationTransaction(e): billDatas = e.DataEntitys; if len(billDatas)>0: for billData in billDatas: moBillType=billData["MOType_Id"]; Logger.Info("CS001", str(moBillType)); billTypePara = BusinessDataServiceHelper.LoadBillTypePara(this.Context, "MoBillTypeParaSetting",moBillType); IsEntrust=billTypePara["IsEntrust"]; Logger.Info("CS002", str(IsEntrust)); if bool(IsEntrust): entryDatas = billData["PPBomEntry"]; for entryData in entryDatas: ownerTypeId=entryData["OwnerTypeId"]; Logger.Info("CS003", str(ownerTypeId)); if ownerTypeId=='BD_OwnerOrg': ownerId=entryData["OwnerID_Id"]; Logger.Info("CS004", str(ownerId)); entryData["SupplyOrg_Id"]=ownerId;
<2>BOSIDE扩展生产用料清单,将代码注册到生产用料清单保存操作插件上,保存元数据,开发完毕,具体注册如图所示:
【功能验证】
<1>登录业务站点,新增生产订单,查看生产用料清单上发料组织是否设置正确。
【金蝶云星空BOS二次开发案例演示】
https://vip.kingdee.com/article/94751030918525696
二开案例-【Python】设置生产用料清单发料组织
【应用场景】需求描述:物料清单未设置发料组织,且没有设置供料方式,生产订单为组织委托加工时,生产用料清单的发料组织设置为货主,前提...
点击下载文档
本文2024-09-23 03:21:32发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-158350.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章