JAVA 对接金蝶K3 Cloud WebAPI接口

1.登录金蝶云星空的客户端,金蝶测试环境的账号:demo 密码:888888,登录界面如下:

金蝶系统比较复杂,对接接口之前,最好请金蝶的售前人员对业务流程培训一下,确认好要对接的接口

2.查看web api接口文档,接口地址

 

3.找到要对接的接口,这里我们以物料接口为例:

4.物料接口的字段非常多,而且没有java对接的事例的,java开发人员看到这里一般都想爆粗口,这特么什么接口?当初我也是这样的。接下来,我讲一下接口对接具体流程

      1.调用金蝶的登录接口

      2.登录成功获取金蝶的kdservice-sessionid

      3.调用金蝶保存接口,并带上kdservice-sessionid,否则调用不成功

      4.调用金蝶的提交接口,并带上kdservice-sessionid

      5.调用金蝶的审核接口,并带上kdservice-sessionid

      一般来说,通过这几步整个接口的流程也就完成,如果有还有其他需求的,比如要查询,或者不要提交、审核的,在加上查询或去掉第四部第五步就行了,其他接口的调用方式都一下。

5.上面讲了,接口调用的具体流程,接下来讲一下物料基础数据的构造,上面看到了物料的字段非常多,我们根本就不知道要传那些数据,这里有个简单的方法,步骤如下:

这里你就拿到物料接口需要的数据了,接下来可以把测试数据,拷贝出来,转换成json格式,保存到一个文件里面,当做物料接口的基础数据。当然如果你不怕麻烦,你也可以建对应的java对象,然后构造成物料接口需要的数据格式。

6.基础数据有了,接下来就简单了,在来看物料接口的api

上面这三个字段是接口的必须字段,刚刚我们获取的基础数据就是data里面的数据

formid就是接口对应的表单id,物料接口对应的就是BD_MATERIAL,不同的接口对应的表单id不同,不知道表单id的可以找到对应的api,然后选择保存,在事例里面就可以找到对应的表单id

 

7.接下来开始编码

金蝶接口配置,配置为yml格式:

kingdee:url: http://192.168.0.215/K3Cloud/login: Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc #登录接口view: Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc #查看表单数据接口viewList: Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc #表单数据查询接口save: Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc #保存接口batchSave: Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave.common.kdsvc #批量保存接口submit: Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc #提交接口audit: Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc #审核接口statusConver: Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.StatusConvert.common.kdsvc #状态转换接口

 

K3CloundConfig.java
KDFormIdEnum.java
package com.kn.common.enums;import lombok.Getter;@Getter
public enum  KDFormIdEnum {MATERIAL("BD_MATERIAL"),//物料OUT_STOCK("SAL_OUTSTOCK"),//出库单STOCK("BD_STOCK"),//仓库CUSTOMER("BD_Customer");//客户private String formid;KDFormIdEnum(String formid) {this.formid = formid;}
}

 

HttpUtil.java

package com.kn.common.utils.http;import org.springframework.http.*;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;public class HttpUtil {private HttpUtil(){}/*** 连接超时时间*/private static final int CONN_TIMEOUT = 30000;/*** 请求超时时间*/private static final int READ_TIMEOUT = 30000;private static RestTemplate restTemplate = null;static{//设置超时时间SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();requestFactory.setConnec


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部