金蝶ERP星空对接流程

news2025/3/6 3:00:58

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;
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2310316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【随手笔记】利尔达NB模组

1.名称 移芯EC6263GPP 参数 指令备注 利尔达上电输出 [2025-03-04 10:24:21.379] I_AT_WAIT:i_len2 [2025-03-04 10:24:21.724] LI_AT_WAIT:i_len16 [2025-03-04 10:24:21.724] [2025-03-04 10:24:21.733] Lierda [2025-03-04 10:24:21.733] [2025-03-04 10:24:21.745] OK移…

Vue3的核心语法【未完】

Vue3的核心语法 OptionsAPI与CompositionAPI Options API&#xff08;选项式&#xff09; 和 Composition API &#xff08;组合式&#xff09;是 Vue.js 中用于构建组件的两种不同方式。Options API Options API Options API 是 Vue 2 中的传统模式&#xff0c;并在 Vue 3…

解决redis lettuce连接池经常出现连接拒绝(Connection refused)问题

一.软件环境 windows10、11系统、springboot2.x、redis 6 7 linux&#xff08;centos&#xff09;系统没有出现这问题&#xff0c;如果你是linux系统碰到的&#xff0c;本文也有一定大参考价值。 根本思路就是&#xff1a;tcp/ip连接的保活(keepalive)。 二.问题描述 在spr…

从DNS到TCP:DNS解析流程和浏览器输入域名访问流程

1 DNS 解析流程 1.1 什么是DNS域名解析 在生活中我们会经常遇到域名&#xff0c;比如说CSDN的域名www.csdn.net&#xff0c;百度的域名www.baidu.com,我们也会碰到IP&#xff0c;现在目前有的是IPV4&#xff0c;IPV6。那这两个有什么区别呢&#xff1f;IP地址是互联网上计算机…

解锁Egg.js:从Node.js小白到Web开发高手的进阶之路

一、Egg.js 是什么 在当今的 Web 开发领域&#xff0c;Node.js 凭借其事件驱动、非阻塞 I/O 的模型&#xff0c;在构建高性能、可扩展的网络应用方面展现出独特的优势 &#xff0c;受到了广大开发者的青睐。它让 JavaScript 不仅局限于前端&#xff0c;还能在服务器端大展身手&…

JavaWeb后端基础(4)

这一篇就开始是做一个项目了&#xff0c;在项目里学习&#xff0c;我主要记录在学习过程中遇到的问题&#xff0c;以及一些知识点 Restful风格 一种软件架构风格 在REST风格的URL中&#xff0c;通过四种请求方式&#xff0c;来操作数据的增删改查。 GET &#xff1a; 查询 …

【文献阅读】The Efficiency Spectrum of Large Language Models: An Algorithmic Survey

这篇文章发表于2024年4月 摘要 大语言模型&#xff08;LLMs&#xff09;的快速发展推动了多个领域的变革&#xff0c;重塑了通用人工智能的格局。然而&#xff0c;这些模型不断增长的计算和内存需求带来了巨大挑战&#xff0c;阻碍了学术研究和实际应用。为解决这些问题&…

OpenGL ES -> GLSurfaceView纹理贴图

贴图 XML文件 <?xml version"1.0" encoding"utf-8"?> <com.example.myapplication.MyGLSurfaceViewxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height…

DE2115实现4位全加器和3-8译码器(FPGA)

一、配置环境 1、Quartus 18.1安装教程 软件&#xff1a;Quartus版本&#xff1a;Quartus 18.1语言&#xff1a;英文大小&#xff1a;5.78G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09; 下载通道①百度网盘丨64位下载…

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

目录 一、前言 二、传统 PPT 制作问题 2.1 传统方式制作 PPT 2.2 AI 大模型辅助制作 PPT 2.3 适用场景对比分析 2.4 最佳实践与推荐 三、DeepSeek Kimi 高效制作PPT操作实践 3.1 Kimi 简介 3.2 DeepSeek Kimi 制作PPT优势 3.2.1 DeepSeek 优势 3.2.2 Kimi 制作PPT优…

run方法执行过程分析

文章目录 run方法核心流程SpringApplicationRunListener监听器监听器的配置与加载SpringApplicationRunListener源码解析实现类EventPublishingRunListener 初始化ApplicationArguments初始化ConfigurableEnvironment获取或创建环境配置环境 打印BannerSpring应用上下文的创建S…

面试-----每日一题

一、字节一面&#xff08;操作系统&#xff09; 什么是死锁&#xff1f;如何处理死锁问题&#xff1f; 死锁是指两个或两个以上的进程在执行过程中&#xff0c;由于竞争资源或者由于彼此通讯而造成的一种阻塞的现象&#xff0c;若无外力作用&#xff0c;它们都将无法推进下去。…

CentOS 7中安装Dify

Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等&#xff0c;让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时&#xff0c;会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…

qt-C++笔记之Linux下Qt环境变量设置及与QtCreator的关系

qt-C++笔记之Linux下Qt环境变量设置及与QtCreator的关系 code review! 文章目录 qt-C++笔记之Linux下Qt环境变量设置及与QtCreator的关系一.Qt关键的环境变量1.1.PATH1.2.LD_LIBRARY_PATH1.3.QML2_IMPORT_PATH二.若不手动设置这三个环境变量2.1.PATH 的默认路径2.2.LD_LIBRARY_…

Flutter 学习之旅 之 flutter 使用 carousel_slider 简单实现轮播图效果

Flutter 学习之旅 之 flutter 使用 carousel_slider 简单实现轮播图效果 目录 Flutter 学习之旅 之 flutter 使用 carousel_slider 简单实现轮播图效果 一、简单介绍 二、简单介绍 carousel_slider 三、安装 carousel_slider 四、简单案例实现 五、关键代码 一、简单介…

【JavaScript—前端快速入门】JavaScript 对象与函数

JavaScript 对象 1. JavaScripe 数组 创建数组的方式 使用 new 关键字创建 使用字面量方式创建 [常用] 注意&#xff0c;JavaScipt 不要求数组元素类型都相同&#xff1b; 数组操作 读&#xff1a;使用下标的方式访问数组元素&#xff08;从0开始) 保存代码&#xff0c;打开…

java中的局部变量

文章目录 一、定义二、作用域和作用位置三、声明周期和初始化四、内存管理五、Java内存区域划分六、例子 一、定义 在java中&#xff0c;局部变量指在方法、构造方法、代码块&#xff08;如{}包裹的语句块&#xff09;内部声明的变量 class work {{int a 10;}public work() {i…

(IDE接入DeepSeek)简单了解DeepSeek接入辅助开发与本地部署建议

重点&#xff1a;IDE接入DeepSeek是否收费 收费&#xff01; 本文章主要是为了给小白避雷&#xff0c;目前很多文章告诉大家怎么接入DeepSeek&#xff0c;但是并未告知大家是否收费。如果是想白嫖的&#xff0c;就可以不用去接入了。 一、引言 最近爆火的AI人工智能工具DeepSe…

【算法学习之路】5.贪心算法

贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳&#xff01;3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完&#xff0c;形成一套完整的算法体系&#xff0c;以及大量的各个难度的题目&#xff0c;目前算法也写了几篇&#xff0c;题单正在更新&#xf…

0x03 http协议和分层架构

HTTP协议 简介 Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议&#xff1a;面向连接&#xff0c;安全基于请求-响应模型&#xff1a;一次请求对应一次响应HTTP协议是无状态的协议&#xff…