金蝶云星空数据集成到新宝-产业链协同平台:生产入库对接
在企业数字化转型的过程中,系统间的数据集成是一个关键环节。本文将详细介绍金蝶云星空与新宝-产业链协同平台之间的生产入库对接技术方案。
为实现高效的数据集成,我们选择使用executeBillQuery接口从金蝶云星空获取生产入库数据,并通过/production/inhouse接口将数据写入到新宝-产业链协同平台中。本次集成的核心目标包括确保数据不漏单、快速批量写入以及定时可靠地抓取数据。
首先,我们需要处理来自金蝶云星空API接口的分页和限流问题。这一步骤至关重要,它不仅可以保证每个批次的数据都被完整获取,还能避免触发API访问限制,从而提高整体运行效率。此外,为了解决两者之间的数据格式差异,我们采用了自定义的数据转换逻辑,将原始数据映射到符合新宝-产业链协同平台要求的结构。
为了确保任务顺利进行并及时发现潜在问题,本项目还引入了一套完善的监控和告警机制。实时跟踪每个步骤中的状态与性能,有助于快速识别并解决异常情况,而错误重试机制则进一步保障了整体流程的稳健性。
下一部分内容将深入解析具体实现过程,包括如何调用executeBillQuery接口、处理分页返回结果以及构建优化后的API请求,最终完成高效、安全且稳定的数据对接。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,第一步是从源系统获取数据。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空接口executeBillQuery
来获取生产入库相关的数据,并进行初步加工。
接口配置与调用
首先,我们需要配置接口调用的元数据。根据提供的元数据配置,我们可以看到以下关键参数:
- API:
executeBillQuery
- Method:
POST
- Pagination: 支持分页,默认每页500条记录
- ID Check: 启用ID检查
请求字段包括单据编号、客户订单号、收料组织、物料编码等。以下是一个典型的请求示例:
{
"FormId": "PRD_INSTOCK",
"FieldKeys": "FEntity_FEntryID,FMoEntrySeq,FID,FBillNo,F_GZHQ_Text_KHDDH,FStockOrgId.FNumber,F_GZHQ_Base_KH.FNumber,FMoBillNo,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,FMaterialId.F_GZHQ_Text_DXGG,FRealQty,FDate,FStockId.FNumber,FStockId.Fname,FMemo",
"FilterString": "FApproveDate>='2023-01-01' and FMATERIALID.F_GZHQ_CheckBox5 = 1",
"Limit": 500,
"StartRow": 0
}
数据请求与清洗
在发送请求后,我们会接收到一个包含多条记录的响应。这些记录需要经过清洗和转换,以确保数据的一致性和准确性。
-
字段映射与转换:
- 将金蝶返回的数据字段映射到目标系统所需的字段。
- 根据业务需求对某些字段进行格式转换,例如日期格式、数值单位等。
-
去重与验证:
- 使用
FEntity_FEntryID
作为唯一标识符,确保每条记录在目标系统中不重复。 - 验证关键字段是否为空或无效,例如单据编号
FBillNo
、物料编码FMaterialId_FNumber
等。
- 使用
-
错误处理:
- 对于无法解析或缺失关键字段的数据,记录日志并跳过处理。
- 实时监控接口调用状态,捕获并处理异常情况,如网络超时、接口返回错误等。
数据转换与写入
完成数据清洗后,需要将其转换为目标系统可接受的格式,并写入目标数据库或系统。这一步通常包括以下操作:
-
数据格式化:
- 将清洗后的数据按照目标系统的要求进行格式化,例如JSON、XML等。
-
批量写入:
- 为提高效率,可以采用批量写入方式,将多条记录一次性写入目标系统。
- 确保写入过程中的事务一致性,避免部分成功部分失败的情况。
-
日志记录与监控:
- 记录每次写入操作的详细日志,包括成功和失败的记录数。
- 实时监控写入过程中的性能指标,如响应时间、吞吐量等。
示例代码
以下是一个简化的示例代码,用于演示如何调用金蝶云星空接口并处理返回的数据:
import requests
import json
# 配置请求参数
url = "https://api.kingdee.com/executeBillQuery"
headers = {"Content-Type": "application/json"}
payload = {
"FormId": "PRD_INSTOCK",
"FieldKeys": ",".join([
"FEntity_FEntryID", "FMoEntrySeq", "FID", "FBillNo",
"F_GZHQ_Text_KHDDH", "FStockOrgId.FNumber",
"F_GZHQ_Base_KH.FNumber", "FMoBillNo",
"FMaterialId.FNumber", "FMaterialId.FName",
"FMaterialId.FSpecification",
"FMaterialId.F_GZHQ_Text_DXGG",
"FRealQty", "FDate",
"FStockId.FNumber",
"FStockId.Fname",
"FMemo"
]),
"FilterString": f"FApproveDate>='2023-01-01' and FMATERIALID.F_GZHQ_CheckBox5 = 1",
"Limit": 500,
"StartRow": 0
}
# 发起POST请求
response = requests.post(url, headers=headers, data=json.dumps(payload))
# 检查响应状态码
if response.status_code == 200:
data = response.json()
# 数据清洗与转换逻辑
cleaned_data = []
for record in data:
cleaned_record = {
'id': record['FEntity_FEntryID'],
'order_number': record['FBillNo'],
'customer_order_number': record['F_GZHQ_Text_KHDDH'],
'material_code': record['FMaterialId_FNumber'],
'quantity': float(record['FRealQty']),
'date': record['FDate']
# 添加其他必要字段...
}
cleaned_data.append(cleaned_record)
# 写入目标系统逻辑(示例)
write_to_target_system(cleaned_data)
else:
print(f"Error: {response.status_code}, {response.text}")
通过上述步骤,我们可以高效地从金蝶云星空获取生产入库相关的数据,并进行必要的清洗和转换,为后续的数据处理打下坚实基础。
生产入库对接新宝-产业链协同平台API接口的ETL转换配置
在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台新宝-产业链协同平台API接口所能够接收的格式,并最终写入目标平台。本文将详细介绍如何利用轻易云数据集成平台的元数据配置,实现这一过程。
API接口配置
首先,我们需要了解目标平台API接口的基本信息。根据提供的元数据配置,目标API接口为/production/inhouse
,请求方法为POST
。我们需要确保请求的数据格式符合该API接口的要求。
{
"api": "/production/inhouse",
"method": "POST",
"idCheck": true,
"sdk": "\\Adapter\\Donlim\\SDK\\DonlimSDK",
"errorMsgKey": "msg",
"request": [
{
"label": "data",
"field": "data",
"type": "object",
"children": [
{"field":"poRowId","label":"采购单行ID","type":"string","describe":"采购单行ID","value":"_findCollection find F_GZHQ_Text from 15e09f02-b866-307a-82c2-b5ea50a5e045 where F_GZHQ_Text_KHDDH={F_GZHQ_Text_KHDDH} FMaterialId_Fnumber={FMaterialId_FNumber}"},
{"field":"poRowNo","label":"采购订单行号","type":"string","describe":"采购订单行号","value":"_findCollection find F_GZHQ_Text1 from 15e09f02-b866-307a-82c2-b5ea50a5e045 where F_GZHQ_Text_KHDDH={F_GZHQ_Text_KHDDH}"},
{"field":"poNo","label":"采购订单号","type":"string","describe":"采购订单号","value":"{F_GZHQ_Text_KHDDH}"},
{"field":"orgName","label":"分厂名称","type":"string","describe":"分厂名称","value":"{F_GZHQ_Base_KH}"},
{"field":"supplyCode","label":"供应商编号","type":"string","describe":"供应商编号","value":"VHQ013"},
{"field":"supplyName","label":"供应商","type":"string","describe":"供应商","value":"广州环球电业电器有限公司"},
{"field":"productionNo","label":"生产工单号","type":"string","describe":"生产工单号","value":"{FMoBillNo}-{FMoEntrySeq}"},
{"field":"materialNo","label":"物料编码-供应商侧","type":"string","describe":"物料编码-供应商侧","value":"{FMaterialId_FName}"},
{"field":"materialName","label":"物料名称-供应商侧","type":"string","describe":"物料名称-供应商侧","value":"{FMaterialId_FSpecification}"},
{"field":"materialSpecification","label"
![用友与CRM系统接口开发配置](https://pic.qeasy.cloud/T15.png~tplv-syqr462i7n-qeasy.image)