必须要吐槽 金蝶的接口文档,简直就是噩梦,文档和示例牛头不对马嘴,示例代码都是错误的
准备工作,金蝶倒是写的很全, 金蝶云星空 OpenApI
这里有一个注意点,就是 kdwebapi.properties 配置

## 账套ID ,在第三方登录授权配置获取
X-KDApi-AcctID=123123123
## APPID ,在第三方登录授权配置获取
X-KDApi-AppID=229492_SYbOQwvH7plexfys4+6MzbUt1q47TNlG12312
## 秘钥 ,在第三方登录授权配置获取
X-KDApi-AppSec=c1cc65ee19dd4be19eb27ec667e123123bf6ed3123123123123
## 调用接口的用户名 ,在第三方登录授权配置获取
X-KDApi-UserName=æŽæ¨123123
## 固定 2052
X-KDApi-LCID=2052
## 这个是你的金蝶云星空产品部署的服务器访问地址
X-KDApi-ServerUrl=http://12.19.119.240/k3cloud/
SDK

解压 后导入 Eclipse 或者 Idea, 结构目录:

Idea, 打开项目设置,点 + 号Jar包加入到项目中

比如我现在要调用 生产制造-生产订单-订单列表接口, 金蝶 单据查询 就是 列表接口

这里有一个很大的坑就是 FieldKeys 显示字段这个坑,这个字段必填,用于指定返回哪些字段,接口文档并没有写有哪些字段可以选择
不知道字段 可以去 保存接口中查看
例如,我现在调用的 是 生产订单列表接口,我不知道选择哪些字段返回,可以去 保存接口当中找

找到 data.Model.FTreeEntity这个对象参数,里面就是 列表当中存在的字段

还有一个注意点,就是 接口返回的数据 必须用对象映射
通用代码
import com.alibaba.fastjson.JSONObject;
import com.kingdee.bos.webapi.sdk.K3CloudApi;
import com.kingdee.bos.webapi.sdk.QueryParam;
import lombok.Data;
import org.junit.Test;
import java.util.List;
/**
* <h2>金蝶测试</h2>
* <p>
*
* </p>
*
* @author Evan <1922802352@qq.com>
* @since 2022年06月24日 15:02
*/
public class TestKingdee {
@Test
public void TEST_PRD_MOExecuteDetailRpt(){
//注意 1:此处不再使用参数形式传入用户名及密码等敏感信息,改为在登录配置文件中设置。
//注意 2:如果还未配置第三方系统登录授权信息,必须先配置后,再进行业务操作,详情参考各语言版本SDK介绍中的登录配置文件说明。
K3CloudApi client = new K3CloudApi();
String formId="PRD_MO";
try {
List<TestKingdee.proMo> list = client.executeBillQuery(new QueryParam().setFormId(formId).setFieldKeys("FPlanStartDate, FPlanFinishDate").setLimit(100), TestKingdee.proMo.class);
System.out.println(JSONObject.toJSONString(list));
System.out.println(list.size());
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Data
public static class proMo{
private String FPlanStartDate;
private String FPlanFinishDate;
}
}