import clr#添加对cloud插件开发的常用组件的引用clr.AddReference('Kingdee.BOS')clr.AddReference('Kingdee.BOS.Core')clr.AddReference('Kingdee.BOS.App')clr.AddReference('Kingdee.BOS.WebApi.FormService')clr.AddReference('Kingdee.BOS.ServiceFacade.KDServiceFx')clr.AddReference('Newtonsoft.Json')#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)from Kingdee.BOS import *from Kingdee.BOS.Core import *from Kingdee.BOS.Core.Bill import *from Kingdee.BOS.Core.DynamicForm.PlugIn import *from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *from System import *from Kingdee.BOS.App.Data import *from Kingdee.BOS.WebApi.FormService import *from Kingdee.BOS.ServiceFacade.KDServiceFx import *from Newtonsoft.Json.Linq import *clr.AddReference('Newtonsoft.Json')#重载cloud插件模型的主菜单按钮点击事件def AfterExecuteOperationTransaction(e): #fid=str(this.View.Model.GetPKValue()); #fid=str(e.DataEntitys[0]["id"]); for item in e.DataEntitys: fid=str(item["id"]); fsql="/*dialect*/ exec [YYW_ZDBOM] "+fid; #fsql="/*dialect*/ exec [YYW_ZDBOM] 106954"; DBUtils.Execute(this.Context,fsql); billNo = str(item["BillNo"]).split('-')[1]; entry =item["SaleOrderEntry"]; for rowobj in entry: wlcode=rowobj["MaterialId"]["Number"] kczzid=rowobj["StockOrgId_Id"] if kczzid==4266156 or kczzid==4266158 :#只处理这二个组织的 #str(kczzid) #str(wlcode) newwlcode=wlcode.replace('0000',billNo) strsql="/*dialect*/ update t_bd_material set FCREATEORGID="+str(kczzid)+" where fnumber='"+newwlcode+"' and FUSEORGID="+str(kczzid)+" and FUSEORGID<>FCREATEORGID" DBUtils.Execute(this.Context,strsql); strsql="/*dialect*/ select FMATERIALID from t_bd_material where fnumber='"+newwlcode+"' and FUSEORGID="+str(kczzid) objwl=DBUtils.ExecuteDynamicObject(this.Context,strsql); wlid=str(objwl[0]['FMATERIALID']) jsonData='''{"PkIds":"wlid","TOrgIds":"113062","IsAutoSubmitAndAudit":"true"}''' json1=jsonData.Replace("wlid",str(wlid)) WebApiServiceCall.Allocate(this.Context,"BD_MATERIAL",json1)