纷享销客与K3 Wise数据同步:K3 Wise 增加自定义api接口原创
11人赞赏了该文章
1,040次浏览
编辑于2020年12月07日 17:27:47
在纷享销客与金蝶K3 Wise 14.3数据同步的项目中发现,K3 Wise 14.3 API很不完善,一是接口不完善,比如:没有即时库存查询接口,没有直接SQL报表接口,而这两个 接口只有升级到15.0以后才有。除了接口不完善外,还有很多基础资料、单据的字段不全,比如:基础资料里的物料,没有创建时间和修改时间字段,这样就很不方便,这些都是数据同步的基础条件,为了解决这些问题,跟金蝶研发进行了一番交流,他们提供了增加自定义API接口的一个demo,C#语言开发,经过测试,能够在K3 Wise 14.3和K3 Wise 15.0版本下正常运行。
(增加K3 Wise自定义API接口)
//第三步的SQL INSERT INTO t_APIComponents(FComponentID,FClassID,FController,FComponentName) VALUES(70,7000,'Demo' , 'k3api_custom|demo'); //第四步的SQL INSERT INTO t_APIMethodTemplate(FMethodID,FKey,FOpera,FName_CHS,FName_CHT,FName_EN,FDesc_CHT,FDesc_CHS,FDesc_EN,FIndex,FMask,FScope,FRequestType)VALUES(20,'Test',0,'test', 'test','test', 'TEST 1%','TEST 1%', 'TEST 1%' ,20,0,0,'POST');
public ActionResponseResult GetInventory(Dictionary<string, string> dict) { ActionResponseResult result = new ActionResponseResult(); result.StatusCode = 200; result.Message = "ok"; JavaScriptSerializer serializer = new JavaScriptSerializer(); StringBuilder sb = new StringBuilder(); String jsonString = dict["k3data"]; JavaScriptSerializer json = new JavaScriptSerializer(); DataItem postdata = (DataItem)json.Deserialize<DataItem>(jsonString); string sql = postdata.StrSQL; RemoteCommunication oComm = new RemoteCommunication(MMTS.ServerName); DataTable dt = ((DataSet)oComm.RemoteCall(BOSServerClass.BusinessDataReaderService, "GetData", MultiAcctInfoMgr.GetK3Connect(this.m_sAcctID), sql)).Tables[0]; result.Data = dt; string sql2 = "UPDATE t_Accessory SET FFileName = 'test' WHERE FID=1"; int i = ((int)oComm.RemoteCall(BOSServerClass.BusinessDataUpdateService, "UpdateData", MultiAcctInfoMgr.GetK3Connect(this.m_sAcctID), sql2)); return result; }
这个方法接受的请求接口参数就是:dict,dict["k3data"],就是我们在请求接口时,POST过来的JSON字符串,可以把这个字符串解析出来,用于拼接SQL,查询需要的数据(dt),并返回。
这方面资料比较少,在金蝶社区也没有找到相关内容,分享出来,供有需要的小伙伴参考。
作者:王志锋
微信:188-1065-8738
邮箱:wangzhifeng@tongdog.com.cn
欢迎各行业朋友交流CRM相关问题!赞 11
11人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读