K3Cloud服务操作接口(ExcuteOperation)实战及更新冻结人字段(续篇)
/// <summary> /// 服务接口(同步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudExcuteOperation(string formid, string type, string data) { List<object> Parameters = new List<object>(); Parameters.Add(formid); Parameters.Add(type); Parameters.Add(data); var result = HttpClientHelper_HttpPost(CloudLinkConfigModel.excuteOperationUrl, JsonConvert.SerializeObject(Parameters)); return result == null ? new CloudResult() : JsonConvert.DeserializeObject<CloudResult>(result); } using Model; namespace K3CloudLink { public interface ICloudLink { /// <summary> /// 登陆验证 /// </summary> /// <returns></returns> bool CloudLogin(); /// <summary> /// 登陆验证(异步) /// </summary> /// <returns></returns> Task<bool> CloudLoginAsync(); /// <summary> /// 根据单号或者ID查询数据 /// </summary> /// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param> /// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param> /// <returns>单据数据包JOSN</returns> string CloudView(string formid, string data); /// <summary> /// 根据单号或者ID查询数据(异步) /// </summary> /// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param> /// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param> /// <returns>单据数据包JOSN</returns> Task<string> CloudViewAsync(string formid, string data); /// <summary> /// 保存 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudSave(string formid, string data); /// <summary> /// 保存(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudSaveAsync(string formid, string data); /// <summary> /// 批量保存 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudBatchSave(string formid, string data); /// <summary> /// 批量保存(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudBatchSaveAsync(string formid, string data); /// <summary> /// 删除 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudDelete(string formid, string data); /// <summary> /// 删除(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudDeleteAsync(string formid, string data); /// <summary> /// 审核 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudAudit(string formid, string data); /// <summary> /// 审核(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudAuditAsync(string formid, string data); /// <summary> /// 反审核 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudUnAudit(string formid, string data); /// <summary> /// 反审核(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudUnAuditAsync(string formid, string data); /// <summary> /// 用语句查询数据库 /// </summary> /// <param name="sql">数据库语句</param> /// <returns></returns> (string status, string errmsg, string result) CloudDbWebApi(string sql); /// <summary> /// 用语句查询数据库(异步) /// </summary> /// <param name="sql">数据库语句</param> /// <returns></returns> Task<(string status, string errmsg, string result)> CloudDbWebApiAsync(string sql); /// <summary> /// 下推 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudPush(string formid, string data); /// <summary> /// 下推(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudPushAsync(string formid, string data); /// <summary> /// 分配 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudAllocate(string formid, string data); /// <summary> /// 分配(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudAllocateAsync(string formid, string data); /// <summary> /// 暂存 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudDraftSave(string formid, string data); /// <summary> /// 暂存(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudDraftSaveAsync(string formid, string data); /// <summary> /// 提交 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> CloudResult CloudSubmit(string formid, string data); /// <summary> /// 表单查询 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> string CloudExecuteBillQuery(string data); /// <summary> /// 表单查询(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> Task<string> CloudExecuteBillQueryAsync(string data); /// <summary> /// 服务接口(异步) /// </summary> /// <param name="formid"></param> /// <param name="type">服务类型</param> /// <param name="data"></param> /// <returns></returns> Task<CloudResult> CloudExcuteOperationAsync(string formid, string type, string data); /// <summary> /// 服务接口(同步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudExcuteOperation(string formid, string type, string data); } } using Common; using Model; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Diagnostics; namespace K3CloudLink { public class CloudLinkN : ICloudLink { static CloudLinkN() { ConfigInitialization(); } /// <summary> /// 初始化配置 /// </summary> private static void ConfigInitialization() { if (string.IsNullOrEmpty(CloudLinkConfigModel.dbId)) { CloudLinkConfigModel.dbId = ConfigManager.AppSettings("dbId").ToString(); CloudLinkConfigModel.userName = ConfigManager.AppSettings("userName").ToString(); CloudLinkConfigModel.userPassword = ConfigManager.AppSettings("userPassword").ToString(); CloudLinkConfigModel.saveUrl = ConfigManager.AppSettings("saveUrl").ToString(); CloudLinkConfigModel.submitUrl = ConfigManager.AppSettings("submitUrl").ToString(); CloudLinkConfigModel.unAuditUrl = ConfigManager.AppSettings("unAuditUrl").ToString(); CloudLinkConfigModel.viewUrl = ConfigManager.AppSettings("viewUrl").ToString(); CloudLinkConfigModel.validateUserUrl = ConfigManager.AppSettings("validateUserUrl").ToString(); CloudLinkConfigModel.executeBillQueryUrl = ConfigManager.AppSettings("executeBillQueryUrl").ToString(); CloudLinkConfigModel.deleteUrl = ConfigManager.AppSettings("deleteUrl").ToString(); CloudLinkConfigModel.auditUrl = ConfigManager.AppSettings("auditUrl").ToString(); CloudLinkConfigModel.customWebApiUrl = ConfigManager.AppSettings("customWebApiUrl").ToString(); CloudLinkConfigModel.pushUrl = ConfigManager.AppSettings("pushUrl").ToString(); CloudLinkConfigModel.allocateUrl = ConfigManager.AppSettings("allocateUrl").ToString(); CloudLinkConfigModel.draftUrl = ConfigManager.AppSettings("draftUrl").ToString(); CloudLinkConfigModel.excuteOperationUrl = ConfigManager.AppSettings("ExcuteOperationUrl").ToString(); CloudLinkConfigModel.batchSaveUrl = ConfigManager.AppSettings("batchSaveUrl").ToString(); } } public async Task<string> HttpClientHelper_HttpPostAsync(string Url, string Content) { JObject jObj = new JObject(); jObj.Add("format", 1); jObj.Add("useragent", "ApiClient"); jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString()); jObj.Add("parameters", Content); jObj.Add("timestamp", DateTime.Now); jObj.Add("v", "1.0"); return await HttpClientHelper.HttpPostAsync(Url, jObj.ToString(), null, "application/json"); } public string HttpClientHelper_HttpPost(string Url, string Content) { JObject jObj = new JObject(); jObj.Add("format", 1); jObj.Add("useragent", "ApiClient"); jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString()); jObj.Add("parameters", Content); jObj.Add("timestamp", DateTime.Now); jObj.Add("v", "1.0"); try { return HttpClientHelper.HttpPost(Url, jObj.ToString(), null, "application/json"); } catch (OperationCanceledException oce) { //https://github.com/dotnet/runtime/issues/21965 // Check ex.CancellationToken.IsCancellationRequested here. // If false, it's pretty safe to assume it was a timeout. if (false==oce.CancellationToken.IsCancellationRequested) { Log.Default.Process(Log.F_LEVEL.Error, $"oce_HttpClientHelper_HttpPost_{oce.ToString()}_具体报错调用串:{jObj.ToString()}"); throw new Exception("oce_HttpClientHelper_HttpPost请求超时错误!"); } else throw oce; } catch (Exception ex) { Log.Default.Process(Log.F_LEVEL.Error, "HttpClientHelper_HttpPost_"+ ex.ToString() + "_具体报错调用串:" + jObj.ToString()); throw ex; } } /// <summary> /// 登陆验证 /// </summary> /// <returns></returns> public bool CloudLogin() { List<object> Parameters = new List<object>(); Parameters.Add(CloudLinkConfigModel.dbId);//帐套Id Parameters.Add(CloudLinkConfigModel.userName);//用户名 Parameters.Add(CloudLinkConfigModel.userPassword);//密码 Parameters.Add(2052); string url = CloudLinkConfigModel.validateUserUrl; string postData = JsonConvert.SerializeObject(Parameters); string res =HttpClientHelper_HttpPost(url, postData); var iResult = JObject.Parse(res)["LoginResultType"].Value<int>(); //HttpClientHelper.HttpPostAsync() if (iResult == 1) return true; else return false; } /// <summary> /// 登陆验证 /// </summary> /// <returns></returns> public async Task<bool> CloudLoginAsync() { List<object> Parameters = new List<object>(); Parameters.Add(CloudLinkConfigModel.dbId);//帐套Id Parameters.Add(CloudLinkConfigModel.userName);//用户名 Parameters.Add(CloudLinkConfigModel.userPassword);//密码 Parameters.Add(2052); string url = CloudLinkConfigModel.validateUserUrl; string postData = JsonConvert.SerializeObject(Parameters); string res = await HttpClientHelper_HttpPostAsync(url, postData); var iResult = JObject.Parse(res)["LoginResultType"].Value<int>(); //HttpClientHelper.HttpPostAsync() if (iResult == 1) return true; else return false; } /// <summary> /// 根据单号或者ID查询数据 /// </summary> /// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param> /// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param> /// <returns>单据数据包JOSN</returns> public string CloudView(string formid, string data) { List<object> Parameters = new List<object>(); Parameters.Add(formid); Parameters.Add(data); var result = HttpClientHelper_HttpPost(CloudLinkConfigModel.viewUrl, JsonConvert.SerializeObject(Parameters)); return result == null ? "" : result; } /// <summary> /// 根据单号或者ID查询数据(异步) /// </summary> /// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param> /// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param> /// <returns>单据数据包JOSN</returns> public async Task<string> CloudViewAsync(string formid, string data) { List<object> Parameters = new List<object>(); Parameters.Add(formid); Parameters.Add(data); return await HttpClientHelper_HttpPostAsync(CloudLinkConfigModel.viewUrl, JsonConvert.SerializeObject(Parameters)); } /// <summary> /// Cloud表单查询 /// </summary> /// <param name="data">CloudExecuteBillQueryModel 反序列化后Json格式</param> /// <returns></returns> public string CloudExecuteBillQuery(string data) { List<object> Parameters = new List<object>(); Parameters.Add(data); var result = HttpClientHelper_HttpPost(CloudLinkConfigModel.executeBillQueryUrl, JsonConvert.SerializeObject(Parameters)); return result == null ? "" : result; } /// <summary> /// Cloud表单查询(异步) /// </summary> /// <param name="data">CloudExecuteBillQueryModel 反序列化后Json格式</param> /// <returns></returns> public async Task<string> CloudExecuteBillQueryAsync(string data) { List<object> Parameters = new List<object>(); Parameters.Add(data); return await HttpClientHelper_HttpPostAsync(CloudLinkConfigModel.executeBillQueryUrl, JsonConvert.SerializeObject(Parameters)); } /// <summary> /// 用语句查询数据库 /// </summary> /// <param name="sql">数据库语句</param> /// <returns></returns> public (string status, string errmsg, string result) CloudDbWebApi(string sql) { Stopwatch watch = new Stopwatch(); watch.Start(); List<object> parameters = new List<object>(); parameters.Add(sql); var result = HttpClientHelper_HttpPost(CloudLinkConfigModel.customWebApiUrl, JsonConvert.SerializeObject(parameters)); JObject jo = (JObject)JsonConvert.DeserializeObject(result); string status_ = jo["status"] != null ? jo["status"].ToString() : "0"; string errmsg_ = jo["errmsg"] != null ? jo["errmsg"].ToString() : ""; string result_ = jo["data"] != null ? jo["data"].ToString() : ""; watch.Stop(); if (watch.ElapsedMilliseconds > 60000L) Log.Default.Process(Log.F_LEVEL.Error, string.Format("调用:{0},用语句查询数据库CloudDbWebApi_运行时长:{1}秒", sql,(watch.ElapsedMilliseconds / 1000.00))); return (status_, errmsg_, result_); } /// <summary> /// 用语句查询数据库(异步) /// </summary> /// <param name="sql">数据库语句</param> /// <returns></returns> public async Task<(string status, string errmsg, string result)> CloudDbWebApiAsync(string sql) { List<object> parameters = new List<object>(); parameters.Add(sql); var result =await HttpClientHelper_HttpPostAsync(CloudLinkConfigModel.customWebApiUrl, JsonConvert.SerializeObject(parameters)); JObject jo = (JObject)JsonConvert.DeserializeObject(result); string status_ = jo["status"] != null ? jo["status"].ToString() : "0"; string errmsg_ = jo["errmsg"] != null ? jo["errmsg"].ToString() : ""; string result_ = jo["data"] != null ? jo["data"].ToString() : ""; return (status_, errmsg_, result_); } /// <summary> /// Cloud 非查询调用方法 /// </summary> /// <param name="formid">业务对象ID</param> /// <param name="data">数据包Json</param> /// <returns></returns> private CloudResult CloudNoQuery(string formid, string data, string Url) { List<object> Parameters = new List<object>(); Parameters.Add(formid); Parameters.Add(data); var result = HttpClientHelper_HttpPost(Url, JsonConvert.SerializeObject(Parameters)); return result == null ? new CloudResult() : JsonConvert.DeserializeObject<CloudResult>(result); } /// <summary> /// Cloud 非查询调用方法(异步) /// </summary> /// <param name="formid">业务对象ID</param> /// <param name="data">数据包Json</param> /// <returns></returns> private async Task<CloudResult> CloudNoQueryAsync(string formid, string data, string Url) { List<object> Parameters = new List<object>(); Parameters.Add(formid); Parameters.Add(data); var result =await HttpClientHelper_HttpPostAsync(Url, JsonConvert.SerializeObject(Parameters)); return result == null ? new CloudResult() : JsonConvert.DeserializeObject<CloudResult>(result); } /// <summary> /// 保存 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudSave(string formid, string data) { Stopwatch watch = new Stopwatch(); watch.Start(); var res = CloudNoQuery(formid, data, CloudLinkConfigModel.saveUrl); watch.Stop(); if (watch.ElapsedMilliseconds > 60000L) Log.Default.Process(Log.F_LEVEL.Error, string.Format("调用:{0},保存CloudSave_运行时长:{1}秒", data, (watch.ElapsedMilliseconds/1000.00) )); return res; } /// <summary> /// 保存(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudSaveAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.saveUrl); } /// <summary> /// 暂存 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudDraftSave(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.draftUrl); } /// <summary> /// 暂存(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudDraftSaveAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.draftUrl); } /// <summary> /// 批量保存 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudBatchSave(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.batchSaveUrl); } /// <summary> /// 批量保存(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudBatchSaveAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.batchSaveUrl); } /// <summary> /// 删除 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudDelete(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.deleteUrl); } /// <summary> /// 删除(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudDeleteAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.deleteUrl); } /// <summary> /// 审核 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudAudit(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.auditUrl); } /// <summary> /// 审核(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudAuditAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.auditUrl); } /// <summary> /// 提交 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudSubmit(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.submitUrl); } /// <summary> /// 反审核 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudUnAudit(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.unAuditUrl); } /// <summary> /// 反审核(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudUnAuditAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.unAuditUrl); } /// <summary> /// 下推 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudPush(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.pushUrl); } /// <summary> /// 下推(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudPushAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.pushUrl); } /// <summary> /// 分配 /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public CloudResult CloudAllocate(string formid, string data) { return CloudNoQuery(formid, data, CloudLinkConfigModel.allocateUrl); } /// <summary> /// 分配(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudAllocateAsync(string formid, string data) { return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.allocateUrl); } /// <summary> /// 服务接口(异步) /// </summary> /// <param name="formid"></param> /// <param name="data"></param> /// <returns></returns> public async Task<CloudResult> CloudExcuteOperationAsync(string formid,string type, string data) { List<object> Parameters = new List<object>(); Parameters.Add(formid); Parameters.Add(type); Parameters.Add(data); var result = await HttpClientHelper_HttpPostAsync(CloudLinkConfigModel.excuteOperationUrl, JsonConvert.SerializeObject(Parameters)); return result == null ? new CloudResult() : JsonConvert.DeserializeObject<CloudResult>(result); //return await CloudNoQueryAsync(formid, data, CloudLinkConfigModel.excuteOperationUrl); } /// <summary> /// 服务接口(同步) /// </summary> &
K3Cloud服务操作接口(ExcuteOperation)实战及更新冻结人字段(续篇)
/// <summary> /// 服务接口(同步) /// </summary> /// <param name="formid"></param> /// <param name="dat...
点击下载文档
本文2024-09-16 18:37:14发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23327.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf
热门文章