操作插件(python)对接系统 测试记录原创
3人赞赏了该文章
52次浏览
编辑于2024年09月27日 10:20:56
#引入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.DataEntity') clr.AddReference('Kingdee.BOS.Contracts') clr.AddReference('Kingdee.BOS.ServiceHelper') clr.AddReference('Newtonsoft.Json') #导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入) from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Contracts import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.DataEntity import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Core.DynamicForm import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * from System import * from System.Data import * from Kingdee.BOS.App.Data import * from System.Collections.Generic import List from Kingdee.BOS.ServiceHelper import * from Newtonsoft.Json import JsonConvert from Newtonsoft.Json.Linq import * from clr import AddReference AddReference("System") AddReference("System.Net.Http") AddReference("Newtonsoft.Json") from System.Text import * from System.Net.Http import HttpClient,StringContent from Newtonsoft.Json import JsonConvert AddReference("System") from System.Net import SecurityProtocolType,ServicePointManager AddReference("Kingdee.BOS.App") from Kingdee.BOS.App.Data import DBUtils def BeginOperationTransaction(e): #这里获取单据数据包方式和前面一样 for billObj in e.DataEntitys: billId=billObj["Id"];#单据ID billNo=billObj["Number"];#单据编号 #追加自定义提示信息,参考如下 sql = """ SELECT * FROM JK_BOM where BOMBB = '%s' """%billNo returnData = DBUtils.ExecuteEnumerable(this.Context,sql)#返回的是动态字符 s= "" b="" OrderInfoList = [] for i in returnData: b = { "ProductRootCode": i["ZXWLBM"].ToString(), "ProductName": i["ZXWLMC"].ToString(), "Version": i["BOMBB"].ToString(), "Sequence": "2300", "BaseQtyN": "1", "BaseQtyD": "1", "UnitQty": "3", "Qty": "4", "TotalQty": "5", "LossRate": "6", "Location":i["GDSH"].ToString(), "BomDetailDescription": "", "ErpId": '', "OrderQty": '', "ProductTypeId": '', "DisabledDateTime": i["MXSHIXRQ"].ToString(), "EnabledDateTime": i["MXSHENGXRQ"].ToString(), "StationCode": "ZJ2-46", "StationDescription": "摩擦焊(母)", "IsProduction": "false", "IsKeyPart": '', "UserDescription": "韩龙", "CreateDateTime": i["CJRQ"].ToString(), "RowVersion": '', "UsedOrganizationId": '' } s= {"from":"WLQDBOM", "data": { "ProductBomCode": i["BOMBB"].ToString(), "ProductRootCode": i["FXWLBM"].ToString(), "ProductName": i["FZWLMC"].ToString(), "WorkflowRootCode": "", "Version": i["BOMBB"].ToString(), "IsDefault": "false", "Qty": "1", "BomDescription": i["MS"].ToString(), "ErpId": "", "BomType": "测试", "BindObjectId": "0", "UserDescription": "韩文龙", "CreateDateTime": i["CJRQ"].ToString(), "DisabledDateTime": "", "IsDisabled": "false", "RowVersion": "0", "OrganizationCode": "ZJI", "OrganizationDescription": "钻机车间", "FileId": "", "TcmId": "", "FileName": "", "Fileurl": "", "OrderInfoList":[] } } OrderInfoList.append(b) s["data"]["OrderInfoList"] = OrderInfoList url = "http://" data=s JsonObjString = JsonConvert.SerializeObject(data)#构造json格式数据类型 httpContent = StringContent(JsonObjString,Encoding.UTF8, "application/json")#转换成符合http的数据类型 client = HttpClient() #实例化对象 response = client.PostAsync(url,httpContent) text = response.Result.Content.ReadAsStringAsync().Result.ToString() textnumber = text.split(',')[0][-2:-1]; result=OperateResult(); if textnumber=="2": e.CancelOperation=True;#取消操作 e.CancelFormService = True;#取消表单服务 result.SuccessStatus=False; result.Message = "接口失败,单据已经反审核:%s"%text this.OperationResult.OperateResult.Add(result); elif textnumber == "1": result.SuccessStatus=True; result.Message = "提示信息:%s"%text this.OperationResult.OperateResult.Add(result); 结尾附带代码 网页缩进有问题
daima.zip(2.03KB)
赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0