二开案例.WebApi上传附件字段原创
18人赞赏了该文章
719次浏览
编辑于2024年06月12日 14:22:57
接口说明:
在物料上加了2个附件字段,一个单附件,一个多附件,ID分别是F_UNW_Attachment_83g、F_UNW_Attachments_qtr
K3CloudApiClient apiClient; private string url = "http://localhost/k3cloud/"; private string dbid = "65b8.......d06"; private string userName = "demo"; private string password = "888888"; private int lcid = 2052; void Main() { apiClient = new K3CloudApiClient(url); var isLoginOk = apiClient.Login(dbid, userName, password, lcid); if (!isLoginOk) return; var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); //上传附件 var uploadResultJson1 = apiClient.UploadFile(javaScriptSerializer.Serialize(new { FileName = "text1.txt", IsLast = true, SendByte = Convert.ToBase64String(Encoding.UTF8.GetBytes("content1 " + DateTime.Now)) })); var fileId1 = (javaScriptSerializer.Deserialize<Dictionary<string, object>>(uploadResultJson1)["Result"] as Dictionary<string, object>)["FileId"].ToString(); var uploadResultJson2 = apiClient.UploadFile(javaScriptSerializer.Serialize(new { FileName = "text2.txt", IsLast = true, SendByte = Convert.ToBase64String(Encoding.UTF8.GetBytes("content2 " + DateTime.Now)) })); var fileId2 = (javaScriptSerializer.Deserialize<Dictionary<string, object>>(uploadResultJson2)["Result"] as Dictionary<string, object>)["FileId"].ToString(); //获取附件信息 var fileInfos = apiClient.ExecuteBillQuery(javaScriptSerializer.Serialize(new { FormId = "BOS_FileServerFileInfo", FieldKeys = "FFileId,FFileName,FFileSize", FilterString = $"ffileid in ('{fileId1}','{fileId2}')" })) .Select(r => new { fileId = r[0], fileName = r[1], fileSize = r[2] }).ToList(); //保存附件 var FNumber = "A" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); var FName = FNumber; var saveResult = apiClient.Save("BD_MATERIAL", javaScriptSerializer.Serialize( new { NeedReturnFields = new string[] { "F_UNW_Attachment_83g", "F_UNW_Attachments_qtr" }, Model = new { FNumber, FName, //单附件字段 F_UNW_Attachment_83g = fileInfos[0].fileId, //多附件字段 F_UNW_Attachments_qtr = fileInfos.Select(fi => new { ServerFileName = fi.fileId, FileName = fi.fileName, FileBytesLength = fi.fileSize }) } })); //修改附件 var billId = (javaScriptSerializer.Deserialize<Dictionary<string, object>>(saveResult)["Result"] as Dictionary<string, object>)["Id"].ToString(); var modifyResult = apiClient.Save("BD_MATERIAL", javaScriptSerializer.Serialize( new { NeedUpDateFields = new string[] { "F_UNW_Attachment_83g", "F_UNW_Attachments_qtr" }, NeedReturnFields = new string[] { "FID", "FNumber", "F_UNW_Attachment_83g", "F_UNW_Attachments_qtr" }, Model = new { FMATERIALID = billId, //单附件字段 F_UNW_Attachment_83g = fileInfos[1].fileId, //多附件字段 F_UNW_Attachments_qtr = new object[]{ new { ServerFileName = fileInfos[1].fileId, FileName = fileInfos[1].fileName, FileBytesLength = fileInfos[1].fileSize }} } })); }
WebApi报文:
上传附件1 http://[IP]/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.UploadFile.common.kdsvc {"FileName":"text1.txt","IsLast":true,"SendByte":"Y29udGVudDEgMjAyNC81LzIyIDE0OjE5OjAy"} 上传结果: {"Result":{"ResponseStatus":{"IsSuccess":true,"Errors":[],"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":0},"FileId":"0e6df974470d4bc29e697e5b6c6c20ab","Message":""}} 上传附件2 http://[IP]/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.UploadFile.common.kdsvc {"FileName":"text2.txt","IsLast":true,"SendByte":"Y29udGVudDIgMjAyNC81LzIyIDE0OjE5OjAy"} 上传结果: {"Result":{"ResponseStatus":{"IsSuccess":true,"Errors":[],"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":0},"FileId":"647a195dd6dd4f20bbc655985c51a50c","Message":""}} 获取附件信息 http://[IP]/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc {"FormId":"BOS_FileServerFileInfo","FieldKeys":"FFileId,FFileName,FFileSize","FilterString":"ffileid in (\u00270e6df974470d4bc29e697e5b6c6c20ab\u0027,\u0027647a195dd6dd4f20bbc655985c51a50c\u0027)"} 获取附件信息结果 [["0e6df974470d4bc29e697e5b6c6c20ab","text1.txt",27],["647a195dd6dd4f20bbc655985c51a50c","text2.txt",27]] 保存单据: {"NeedReturnFields":["F_UNW_Attachment_83g","F_UNW_Attachments_qtr"],"Model":{"FNumber":"AX20240522141902286","FName":"AX20240522141902286","F_UNW_Attachment_83g":"0e6df974470d4bc29e697e5b6c6c20ab","F_UNW_Attachments_qtr":[{"ServerFileName":"0e6df974470d4bc29e697e5b6c6c20ab","FileName":"text1.txt","FileBytesLength":27,"FileLength":27},{"ServerFileName":"647a195dd6dd4f20bbc655985c51a50c","FileName":"text2.txt","FileBytesLength":27,"FileLength":27}],"FAttachment":"0e6df974470d4bc29e697e5b6c6c20ab"}} 保存结果: {"Result":{"ResponseStatus":{"IsSuccess":true,"Errors":[],"SuccessEntitys":[{"Id":152058,"Number":"AX20240522141902286","DIndex":0}],"SuccessMessages":[],"MsgCode":0},"Id":152058,"Number":"AX20240522141902286","NeedReturnData":[{"FMATERIALID":152058,"F_UNW_Attachment_83g":"0e6df974470d4bc29e697e5b6c6c20ab","F_UNW_Attachments_qtr":"[{\"ServerFileName\":\"0e6df974470d4bc29e697e5b6c6c20ab\",\"FileName\":\"text1.txt\",\"FileBytesLength\":27,\"FileLength\":27},{\"ServerFileName\":\"647a195dd6dd4f20bbc655985c51a50c\",\"FileName\":\"text2.txt\",\"FileBytesLength\":27,\"FileLength\":27}]"}]}}
赞 18
18人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读