ETL技术在金蝶云星空与旺店通WMS集成中的应用
金蝶云星空数据集成到旺店通WMS的技术案例分享
在数字化转型的背景下,现代企业对系统间的数据集成需求日益增加。本篇文章将以“组装入库=>其他入库单-1”方案为例,详细解析如何通过轻易云数据集成平台,实现金蝶云星空与旺店通WMS之间的数据高效流动。
首先,在这个跨系统数据对接过程中,我们需要确保从金蝶云星空获取的数据能够准确无误地写入到旺店通WMS。为了实现这一功能,本次方案主要采用了executeBillQuery和WDT_WMS_ENTRYORDER_CREATE这两个API接口。其中,executeBillQuery用于抓取金蝶云星空中指定条件下的业务单据数据,而WDT_WMS_ENTRYORDER_CREATE用来将这些业务单据创建为旺店通中的其他入库单。
如何确保集成过程不漏单
在进行批量操作时,不容忽视的是如何避免数据遗漏和重复的问题。在本方案中,通过定时可靠的抓取机制,从金蝶云星空接口周期性拉取最新的业务流水,同时利用接口分页功能处理大数据量,提高检索效率。此外,为了解决限流问题,每次请求控制在限定数量内,并设计重试机制确保异常情况下也能够重新获取所需数据。
处理两系统之间的数据格式差异
由于金蝶云星空和旺店通WMS使用不同的数据结构,因此需要建立一个有效的数据映射策略。借助轻易云平台提供的可视化配置工具,我们可以自定义字段映射关系,把从 executeBillQuery 接口获取的信息经过转换后,再传递给 WDT_WMS_ENTRYORDER_CREATE 接口。同时,这一过程支持实时监控与日志记录,使得每一次变更都能被清楚追踪并及时调整,有效提高操作透明度和准确性。
以上只是简要介绍了我们面对的一些核心技术挑战及解决思路,后续文章部分将深入剖析各个步骤具体实施方法以及遇到的问题与解决方案,以帮助读者更好地理解大型复杂业务场景中的系统集成实践。

调用源系统金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口来获取并加工数据。
接口调用与元数据配置
首先,我们需要理解如何配置和调用金蝶云星空的executeBillQuery接口。以下是元数据配置的关键部分:
{"api": "executeBillQuery","method": "POST","number": "FBillNo","id": "FEntity_FEntryID","pagination": {"pageSize": 500},"idCheck": true,"operation": {"method": "merge","field": "FBillNo","bodyName": "items","bodySum": ["FQty"],"header": ["FBillNo"],"body": ["FMaterialID_FNumber", "FQty", "FLOT_FNumber", "FProduceDate", "FEXPIRYDATE"]},...
}
请求参数配置
在请求参数中,我们需要定义查询条件和分页参数。以下是一些关键字段及其描述:
FilterString: 用于过滤查询结果,例如FApproveDate>='{{MINUTE_AGO_30|datetime}}' AND FDocumentStatus = 'C' AND FStockID.F_JZJ_CheckBox=1 AND FAFFAIRTYPE = 'Assembly'。FieldKeys: 定义需要查询的字段集合,例如["FID", "FBillNo", ...]。FormId: 表单ID,例如"STK_AssembledApp"。
这些参数确保我们能够精确地获取所需的数据。
数据请求与清洗
在发起请求后,返回的数据可能包含多条记录。我们需要对这些数据进行清洗和处理。以下是一个示例代码片段,用于发起请求并处理响应:
import requests
import jsonurl = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
payload = {'FormId': 'STK_AssembledApp','FieldKeys': ['FID', 'FBillNo', ...],'FilterString': 'FApproveDate>=\'2023-01-01\' AND FDocumentStatus=\'C\'','Limit': 500,'StartRow': 0
}response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()# 清洗数据
cleaned_data = []
for record in data:cleaned_record = {'单据编号': record['FBillNo'],'物料编码': record['FMaterialID_FNumber'],...}cleaned_data.append(cleaned_record)
数据转换与写入
在清洗完数据后,需要将其转换为目标格式并写入目标系统。这里我们使用了merge操作,将相同单据编号的数据合并,并计算数量总和:
"operation": {"method": "merge",...
}
具体实现可以如下:
merged_data = {}
for record in cleaned_data:bill_no = record['单据编号']if bill_no not in merged_data:merged_data[bill_no] = {'单据编号': bill_no,'items': []}merged_data[bill_no]['items'].append({'物料编码': record['物料编码'],...'数量': record['数量']})# 写入目标系统
for bill_no, bill_data in merged_data.items():# 假设有一个函数write_to_target_system用于写入目标系统write_to_target_system(bill_data)
通过上述步骤,我们实现了从金蝶云星空获取数据、清洗、转换并写入目标系统的全过程。这一过程不仅提高了数据处理的效率,也确保了数据的一致性和准确性。

使用轻易云数据集成平台进行ETL转换并写入旺店通WMSAPI接口
在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台旺店通WMSAPI接口所能够接收的格式,并最终写入目标平台。以下是具体的技术实现过程和细节。
1. API接口配置
首先,我们需要配置旺店通WMSAPI接口的相关信息。根据元数据配置,我们使用的是WDT_WMS_ENTRYORDER_CREATE API,采用POST请求方式。
{"api": "WDT_WMS_ENTRYORDER_CREATE","method": "POST","idCheck": true
}
2. 数据操作与字段映射
在数据操作部分,我们需要将源数据中的字段映射到目标API所需的字段。这里采用了merge操作,将源数据中的FBillNo字段合并到目标数据的details中,并定义了header和body部分。
{"method": "merge","field": "FBillNo","bodyName": "details","header": ["FBillNo", "FStockID_FNumber"],"body": ["FMaterialID_FNumber", "FEntity_FEntryID", "FQty", "FLOT_FNumber", "FProduceDate", "FEXPIRYDATE"]
}
3. 请求体结构
根据元数据配置,我们需要构建一个复杂的JSON请求体,包括入库单信息和单据信息两个主要部分。
入库单信息
入库单信息部分包含了入库单号、仓库编码和业务类型等字段。这些字段直接从源数据中提取并映射到目标API所需的格式。
{"label": "入库单信息","field": "entryOrder","type": "object","children": [{"parent": "entryOrder","label": "入库单号","field": "entryOrderCode","type": "string","value": "{FBillNo}"},{"parent": "entryOrder","label": "仓库编码","field": "warehouseCode","type": "string","value": "{FStockID_FNumber}"},{"parent": "entryOrder",{.........
单据信息
单据信息部分包含了订单行的信息,每一行都需要详细描述,包括商家编码、应收商品数量、库存类型、批次、生产日期和过期日期等。这些字段通过模板语言从源数据中提取并转换为目标API所需格式。
4. 数据清洗与转换
在实际操作中,可能会涉及到对某些字段的数据清洗与转换。例如,生产日期和过期日期需要进行格式化处理,这可以通过模板语言中的date函数实现。
实际案例:组装入库=>其他入库单-1
假设我们有一个组装入库的数据,需要将其转换为其他入库单并写入旺店通WMS。具体步骤如下:
- 提取源数据:从源系统中提取组装入库的数据。
- 映射字段:根据元数据配置,将源数据中的字段映射到目标API所需的字段。
- 构建请求体:按照上述结构构建JSON请求体。
- 发送请求:通过POST方法将请求体发送到旺店通WMSAPI接口。
通过以上步骤,我们可以实现从源系统到旺店通WMS的无缝数据集成,确保每个环节的数据都准确无误地传递和处理。这不仅提高了业务效率,也增强了系统间的数据一致性和可靠性。

相关文章:
ETL技术在金蝶云星空与旺店通WMS集成中的应用
金蝶云星空数据集成到旺店通WMS的技术案例分享 在数字化转型的背景下,现代企业对系统间的数据集成需求日益增加。本篇文章将以“组装入库>其他入库单-1”方案为例,详细解析如何通过轻易云数据集成平台,实现金蝶云星空与旺店通WMS之间的数…...
【力扣热题100】3194. 最小元素和最大元素的最小平均值【Java】
题目:3194.最小元素和最大元素的最小平均值 你有一个初始为空的浮点数数组 averages。另给你一个包含 n 个整数的数组 nums,其中 n 为偶数。 你需要重复以下步骤 n / 2 次: 从 nums 中移除 最小 的元素 minElement 和 最大 的元素 maxElement…...
机器学习拟合过程
import numpy as np import matplotlib.pyplot as plt# 步骤1: 生成模拟数据 np.random.seed(0) X 2 * np.random.rand(100, 1) y 4 3 * X 2 * X**2 np.random.randn(100, 1)# 步骤2: 定义线性模型 (我们从随机权重开始) w np.random.randn(2, 1) b np.random.randn(1)#…...
如何快速部署一套智能化openGauss测试环境
一、openGauss介绍 openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行,允许用户自由地复制、使用、修改和分发软件。openGauss内核深度融合了华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力…...
【设计模式】深入理解Python中的原型设计模式
深入理解Python中的原型设计模式 在软件开发中,有时需要创建对象的过程非常复杂或者代价较高,而在同一类对象的实例之间有很多重复的属性。为了避免重复构造对象,提升性能和效率,原型设计模式(Prototype Pattern&…...
Django CORS配置方案
参考 https://pypi.org/project/django-cors-headers/ 在setting.py中设置 INSTALLED_APPS [......corsheaders, #添加此行 ]MIDDLEWARE[......corsheaders.middleware.CorsMiddleware, #添加此行django.middleware.common.CommonMiddleware,#django.middleware.csrf.CsrfVi…...
2024年开放式耳机哪个牌子好?推荐最好的顶级开放式耳机品牌
在当下,开放式耳机逐渐成为众多消费者的新宠。与传统入耳式耳机相比,开放式耳机展现出诸多独特之处。它可以呈现出更清晰的音质效果,让用户有更美妙的听觉体验。在佩戴感上,开放式耳机更为舒适,不会给耳朵带来压迫感。…...
零基础读懂Stable Diffusion!
前言 一文搞懂Stable Diffusion是什么,怎么训练和使用,语义信息影响生成图片的过程。>>[][加入极市CV技术交流群,走在计算机视觉的最前沿] 前几个月AIGC可谓是大热了一把,各种高质量的生成图片层出不穷,而其中…...
Hash Join 和 Index Join工作原理和性能差异
在数据库查询中,Hash Join 和 Index Join 是两种常见的表连接策略。了解它们的工作原理和性能差异有助于设计高效的数据库查询。我们可以使用 Java 模拟这两种不同的连接方式,并进行性能对比。 1. Hash Join 和 Index Join 的概念: Hash Joi…...
Apifox简介及使用
Apifox 是一款集 API文档管理、接口调试、接口自动化测试 和 Mock 功能于一体的全功能工具,旨在为开发者和测试人员提供一个高效的一站式解决方案。它融合了 Postman、Swagger、JMeter 等工具的优势,能够极大地提升团队协作和 API 开发的效率。 在实际开…...
十、IPD 实施细节(产品设计与开发管理)
产品设计与开发管理 产品设计与开发管理是IPD(集成产品开发)实施过程中的核心环节。它确保从概念设计到最终产品的实现能够按照预定的质量、成本、进度目标顺利完成,并与市场需求、技术发展及企业战略保持一致。IPD强调产品设计与开发管理过程中跨职能团队的协作、流程的系…...
MySQL-13.DQL-聚合函数
一.DQL-分组查询 二.聚合函数 -- DQL:分组查询 -- 聚合函数 -- 1.统计该企业员工数量 count select count(id) from tb_emp; select count(job) from tb_emp;select count(A) from tb_emp; select count(*) from tb_emp;-- 2.统计该企业最早入职的员工 min select min(entr…...
为什么跟别人学习如何证明定理要远比使用定理更有意义
目录 背景 为什么跟别人学习 什么是高人,如何判断 高人定义 如何判断一个人的能力? 如何考量一个人的成就? 只知道使用定理的局限性 1. 缺乏灵活性和适应性 2. 无法创新或拓展新方法 3. 容易误用或误解定理 4. 难以推理和分析复杂问…...
Qt在Win,Mac和Linux的开机自启设置
Windows Windows 使用注册表来管理开机自启的应用程序。 void runWithSystem(const QString& name, const QString& path, bool autoRun) {QSetting reg("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSetting::NativeForma…...
spring boot热部署
使用热部署解决了每次都需要重新启动的问题,但不过热部署的在对于改动比较小时速度可能快一些,改动大的话尽量停止 1.使用热部署之前需要在pom.xml文件中导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifa…...
网关与蓝牙网关有什么不同之处?
尽管蓝牙网关也属于网关的一种,但在实际应用和功能特性上,它们之间存在着显著的差异。接下来,我们将深入探讨蓝牙网关的独特之处,并与传统网关进行对比分析。 一、网关与蓝牙网关的共同之处 一对多配对能力:无论是网关…...
JAVA计算双十一多产品实付款优惠券的省钱方案
为了计算双十一期间多产品使用优惠券后的实付款省钱方案,我们需要一个更复杂的逻辑来处理优惠券的应用和叠加规则。以下是一个简化的Java示例,用于展示如何计算多种优惠券应用于多个产品后的实付款金额,并找出最省钱的方案。 首先࿰…...
零售行业的数字化营销转型之路
一方面,市场竞争激烈,电商平台、新兴品牌和跨界对手带来巨大压力。另一方面,消费者需求变化迅速,更加追求个性化、多元化和便捷化的购物体验,同时传统零售企业还面临着高成本压力,如租金、人力和库存等。 然…...
js的for in 和 for of的详解
for...in 和 for...of 是 JavaScript 中的两种循环结构,它们用于不同的场景,适用于不同的数据类型。下面将详细介绍它们的用法、区别以及适用场景。 1. for...in 循环 for...in 用于遍历对象的可枚举属性(包括继承的属性)。 语…...
前端工具函数库
流行的前端工具函数库 lodashlodash-es:用lodash-es代替lodashes-toolkit:https://www.npmjs.com/package/es-toolkitradash:https://github.com/sodiray/radash 补充信息: antd-mobile 已不再依赖 lodash, 淘汰 lo…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑 在电子商务领域,转化率与网站性能是决定商业成败的核心指标。今天,我们将深入解析不同类型电商平台的转化率基准,探讨页面加载速度对用户行为的…...
计算机系统结构复习-名词解释2
1.定向:在某条指令产生计算结果之前,其他指令并不真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方,那么就可以避免停顿。 2.多级存储层次:由若干个采用不同实现技术的存储…...
RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...
OpenHarmony标准系统-HDF框架之I2C驱动开发
文章目录 引言I2C基础知识概念和特性协议,四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线,由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…...
【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练
本项目提出了ContentV框架,通过三项关键创新高效加速基于DiT的视频生成模型训练: 极简架构设计,最大化复用预训练图像生成模型进行视频合成系统化的多阶段训练策略,利用流匹配技术提升效率经济高效的人类反馈强化学习框架&#x…...
Angular中Webpack与ngx-build-plus 浅学
Webpack 在 Angular 中的概念 Webpack 是一个模块打包工具,用于将多个模块和资源打包成一个或多个文件。在 Angular 项目中,Webpack 负责将 TypeScript、HTML、CSS 等文件打包成浏览器可以理解的 JavaScript 文件。Angular CLI 默认使用 Webpack 进行项目…...
