1.金蝶ERP星空OPENAPI地址:
2.下载金蝶云星空的对应SDK包
3.引入SDK流程步骤
引入Kingdee.CDP.WebApi.SDK
右键项目添加引用,在打开的引用管理器中选择浏览页签,点击浏览按钮,找到从官网上下载的Kingdee.CDP.WebApi.SDK.dll文件,添加并确定。
引入SDK所需依赖包
右键项目选择“管理NuGet程序包”,搜索并安装Microsoft.Extensions.Configuration、Microsoft.Extensions.Configuration.FileExtensions、Microsoft.Extensions.Configuration.Json、Newtonsoft.Json。如果原程序已有安装可忽略。
配置文件说明
配置文件appsettings.json
由于链接产品需要读取配置文件,因此必须严格规范和审查配置文件的位置和内容。
appsetting.json文件必须放置在与项目内的Config文件夹下,如果没有Config文件夹则需要创建。
同时,appsetting.json文件的属性“复制到输出目录”的值应为:如果较新则复制。
配置参数说明
//第三方系统登录授权的账套ID "X-KDApi-AcctID": "6244******6bff", //第三方系统登录授权的应用ID "X-KDApi-AppID": "225***_***************************d4rLE", //第三方系统登录授权的应用密钥 "X-KDApi-AppSec": "2bb1d*********************80aeae", //第三方系统登录授权的用户 "X-KDApi-UserName": "demo", //账套语系,默认2052 "X-KDApi-LCID": "2052", //服务Url地址,以k3cloud/结尾 "X-KDApi-ServerUrl": "http://172.17.55.175/k3cloud/" |
如果集成用户的值为中文名,配置文件的编码集必须为utf-8。
调用示例
请参考OPENAPI官网(金蝶云星空开放平台)的API文档中的标准代码示例;
using Kingdee.CDP.WebApi.SDK;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KingdeeWebAPP.Utility.Helper
{
public static class K3CloudHelper
{
// 使用volatile关键字确保多线程环境下正确读取instance
private static volatile K3CloudApi clienter;
private static readonly object lockObject = new object();
// 公共静态方法,返回K3CloudApi实例
public static K3CloudApi Instance
{
get
{
// 第一次检查,无需锁
if (clienter == null)
{
lock (lockObject)
{
// 第二次检查,确保在多线程环境中只有一个线程会创建实例
if (clienter == null)
{
clienter = new K3CloudApi();
}
}
}
return clienter;
}
}
}
}
4.通过金蝶云星空的webapi接口查看对应的FormId字段,查询字段,过滤条件字段等
[HttpGet]
public WebApiCallBack GetSalesOutboundOrderList()
{
var jm = new WebApiCallBack();
// 输出字符串以验证
string filter = $"FSaleOrgId.FNumber='154' and FDocumentStatus='C' and FCustomerID.FNumber='C0115748' and FApproveDate > '2025-02-20'";
var param = new QueryParam()
{
FormId = "SAL_OUTSTOCK",
FieldKeys = "FId,FBillNo,FMaterialID,FMaterialID.FNumber,FMaterialName,FMateriaModel,FRealQty,FStockID,FStockID.FNumber,FStockID.FName ",
FilterString = filter,
};
//调用单据查询接口
var returnInfo = K3CloudHelper.Instance.ExecuteBillQuery(param.ToJson());
if (returnInfo.Count > 0)
{
List<SAL_OUTSTOCK> salOutstockList = returnInfo.Select(row => new SAL_OUTSTOCK
{
FId = (long)row[0],
FBillNo = (string)row[1],
FMaterialID = (long)row[2],
FMaterialID_FNumber = (string)row[3],
FMaterialName = (string)row[4],
FMateriaModel = (string)row[5],
FRealQty = (double)row[6],
FStockID = (long)row[7],
FStockID_FNumber = (string)row[8],
FStockID_FName = (string)row[9]
}).ToList();
//对返回结果进行解析和校验,这里使用的是JsonPatch
var resultJObject = JsonConvert.SerializeObject(returnInfo);
Console.WriteLine("物料单据查询接口:" + resultJObject);
jm.otherData = resultJObject;
return jm;
}
return jm;
}