操作插件(python)对接系统 测试记录原创
金蝶云社区-dzz
dzz
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