业务背景
项目前期,业务流程在金蝶上管理
随着自研系统上线,开始由自研系统管理业务,相关数据也存在自研系统中
出于财务审计需要,现在通过金蝶k3cloud webapi将商品进销存数据从自研系统同步至金蝶云星空
开发准备
1.环境
拿到金蝶云星空生产环境、测试环境
拿到金蝶生产环境的administrator、api对接用户的账号密码
联系金蝶售后团队将生产环境的配置、数据同步到测试环境,方便开发、测试
2.api对接账号配置
获取对接所需的数据中心ID、应用ID、用户名称(即上述api对接用户)、秘钥
方式一:联系金蝶售后团队配置
方式二:使用Administrator账号登录云星空后台,搜索“第三方系统登录”并新增一条配置,如图所示
点击“生成测试链接”得到:数据中心ID、应用ID、用户名称,点击“查看秘钥”得到秘钥
3.sdk准备
-
官网下载https://openapi.open.kingdee.com/ApiSdkCenter
-
sdk上传到公司maven仓库
mvn deploy:deploy-file -DgroupId=com.kingdee -DartifactId=k3cloud-webapi
-Dversion=8.0.6
-Dpackaging=jar -Dfile=k3cloud-webapi-sdk8.0.6.jar
-DrepositoryId=你的repositoryId -Durl=你的url -
pom文件配置sdk依赖
4.配置文件
金蝶开发手册要求将配置信息放在名为“kdwebapi.properties”的配置文件中,此做法不适用于本项目
根据本项目需要的配置信息,以下分成两个部分绕开这个问题,一部分是api对接账号配置,另一部分是网络请求代理配置
4.1账号配置
本项需要用到的账号信息,包括以下5项
X-KDApi-AcctID
X-KDApi-AppID
X-KDApi-AppSec
X-KDApi-UserName
X-KDApi-LCID
这几项我们配置在项目本身的配置文件application.properties中
在初始化K3CloudApi时将账号信息赋值给IdentifyInfo,并使用这个IdentifyInfo去构造K3CloudApi,如图
4.2请求代理配置
本项目生产环境网络请求需要代理,因为金蝶读取代理配置只能通过配置文件,所以重新写一个com.kingdee.bos.webapi.utils.HttpUtils,改写其中的getProxy方法,并从application.properties读取代理配置,如图
开发调试
API文档
区别于公开文档(https://openapi.open.kingdee.com/ApiDoc),实际可用的API文档需要使用Administrator账号登录云星空后台,搜索“Web API”,界面如图所示
点击“在线测试WebAPI”可以对业务请求进行在线验证,适用于调试、debug。生产环境、测试环境均可用。
API调用
初始化K3CloudApi对象,并根据业务选择调用方法
方法参数的构造通过上述“在线测试WebAPI”确定
其他
单据类型查看
Administrator账号登录云星空后台,基础管理-基础资料-单据类型列表
单据转换规则查看
下载BOS设计器
使用金蝶云账号(不是云星空账号!)登录BOS设计器,点击文件-单据转换,即可查看
更多参考资料
金蝶云星空OpenAPI介绍
金蝶云星空系统集成汇总
公有云第三方授权
云星空使用教程(与数据对接开发无关)
金蝶云天梯操作指南(遇到问题可以提工单)