
# 对接第三方系统常用方式
``` python
import clr
clr.AddReference("System")
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Newtonsoft.Json")
from Kingdee.BOS.Util import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Metadata.FormElement import *
from System import *
from System.Net import *
from System.IO import *
from System.Linq import *
from System.Text import *
from Newtonsoft.Json import *
from Newtonsoft.Json.Linq import *
class dog:
tenantId=0
relationshipId="12621517591749"
id=""
key=""
def AfterExecuteOperationTransaction(e):
billid="";
Billno = "";
this.OperationResult.IsShowMessage = True;
#保存之后 Operation_Save
#提交之后 Operation_Submit
#审核之后 Operation_Audit
if this.FormOperation.OperationId == FormOperation.Operation_Save:
obj = e.DataEntitys;
for item in obj:
billid = item["Id"].ToString();
Billno = item["BillNo"].ToString();
SendData(billid,Billno); #发送到第三方服务器
def post(url,postdata):
encode = "UTF-8";
webRequest = HttpWebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
paraUrlCoded = postdata;
payload = Encoding.GetEncoding(encode.ToUpper()).GetBytes(paraUrlCoded);
webRequest.ContentLength = payload.Length;
writer = webRequest.GetRequestStream();
writer.Write(payload, 0, payload.Length);
writer.Close();
response = webRequest.GetResponse();
sr = StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encode));
res = sr.ReadToEnd();
return res;
def SendData(billid, Billno):
url = "http://127.0.0.1:8052/SendData";
dog.id = billid;
result_str = post(url,JsonConvert.SerializeObject(dog));
postresult = JObject.Parse(result_str);
result = OperateResult();
if postresult != None:
if postresult["code"].ToString() == "200":
#注意解析返回格式:接口返回格式 {"code":"200","msg":"success"}
#TojObjectresult = JObject.Parse(postresult["result"].ToString());
result.SuccessStatus = True;
result.PKValue = billid;
result.Number = Billno;
result.Message = postresult["msg"].ToString(); #"【{0}】- 同步成功【主键值:{