领星-利润报表数据集成到金蝶云星空技术案例
在本次系统对接集成项目中,我们的目标是将领星ERP生成的店铺平台收入数据无缝集成到金蝶云星空系统,并最终形成蓝字应收单数据。这个过程涉及API调用、分页处理、大量数据写入等多个环节,每一步都需要精准配置和实时监控,以确保业务稳定运行。
确保集成领星ERP数据不漏单
首先,为了保证从领星ERP获取的数据完整且无遗漏,我们使用其提供的API接口/bd/profit/report/open/report/seller/list
定时抓取相关信息。通过设置可靠的定时任务机制,自动化地从该接口提取最新的报表数据,并进行初步验证和过滤,确保所需所有记录均已成功抓取。特别针对分页和限流问题,我们设计了一套容错机制,可以有效处理各种异常情况,防止因网络波动或接口返回错误而导致的数据丢失。
大量数据快速写入至金蝶云星空
关于如何将大批量的数据快速并准确地写入到金蝶云星空,这是另一技术核心点。我们借助于batchSave
API,通过批量操作显著提升了数据传输效率。在实际实施过程中,还需考虑两端系统间的数据格式差异。例如,需要对领星ERP中的JSON格式进行适当转换以匹配金蝶云要求。同时,在高效提交大量数据信息后,对每个传输包设置独立日志记录和状态监控,从而在出现任何异常时能够及时追踪并重试特定失败部分。
上述方案不仅提高了整个集成流程的透明度,也极大简化了日常运维工作。在接下来的具体步骤中,将进一步详细描述如何配置及执行这些关键环节的方法与技巧,包括实时监控、异常处理以及自定义映射规则等诸多方面。
调用源系统领星ERP接口/bd/profit/report/open/report/seller/list获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用领星ERP的/bd/profit/report/open/report/seller/list
接口,并对获取的数据进行加工处理。
接口概述
该接口用于查询店铺平台的利润报表,支持按月或按天查询。以下是元数据配置的详细信息:
- API路径:
/bd/profit/report/open/report/seller/list
- 请求方法:
POST
- 功能类型:
QUERY
- 唯一标识符:
{storeName}-{postedDateLocale}
- 名称:
亚马逊订单
请求参数配置
根据元数据配置,接口请求参数如下:
-
monthlyQuery
- 类型:
string
- 描述: 是否按月查询
- 默认值:
true
- 类型:
-
startDate
- 类型:
string
- 描述: 开始时间(结算时间,双闭区间)
- 默认值:
_function DATE_FORMAT(DATE_SUB(LAST_DAY(NOW()), INTERVAL 1 MONTH), '%Y-%m')
- 类型:
-
endDate
- 类型:
string
- 描述: 结束时间(结算时间,双闭区间)
- 默认值:
_function DATE_FORMAT(DATE_SUB(LAST_DAY(NOW()), INTERVAL 1 MONTH), '%Y-%m')
- 类型:
-
summaryEnabled
- 类型:
string
- 默认值:
true
- 类型:
-
offset
- 类型:
string
- 类型:
-
length
- 类型:
string
- 默认值:
50
- 类型:
数据请求与清洗
首先,通过轻易云平台配置上述请求参数并调用领星ERP接口。以下是具体步骤:
-
设置请求参数:
{ "monthlyQuery": "true", "startDate": "_function DATE_FORMAT(DATE_SUB(LAST_DAY(NOW()), INTERVAL 1 MONTH), '%Y-%m')", "endDate": "_function DATE_FORMAT(DATE_SUB(LAST_DAY(NOW()), INTERVAL 1 MONTH), '%Y-%m')", "summaryEnabled": "true", "offset": "0", "length": "50" }
-
发送请求: 使用POST方法将上述参数发送到
/bd/profit/report/open/report/seller/list
接口。 -
接收响应并自动填充: 根据元数据配置中的
autoFillResponse
属性,系统会自动解析响应数据并填充到相应字段中。
数据转换与写入
在接收到原始数据后,需要对其进行转换,以便写入目标系统(金蝶云星空)。以下是关键步骤:
-
解析响应数据: 假设响应数据格式如下:
{ "data": [ { "storeName": "Store A", "postedDateLocale": "2023-09", "profitAmount": 10000, ... }, ... ] }
-
数据清洗与转换: 对接收到的数据进行必要的清洗和转换。例如,将日期格式统一,将金额字段转换为目标系统所需的格式等。
-
生成目标系统所需的数据结构: 将清洗后的数据组织成金蝶云星空蓝字应收单所需的格式。例如:
{ "receivableList": [ { "storeName": "Store A", "date": "2023-09", "amount": 10000, ... }, ... ] }
-
写入目标系统: 最后,通过轻易云平台将转换后的数据写入金蝶云星空,实现全流程的数据集成。
通过上述步骤,我们成功实现了从领星ERP获取利润报表数据,并将其加工处理后写入金蝶云星空。这不仅提高了业务透明度和效率,还确保了不同系统间的数据无缝对接。
使用轻易云数据集成平台将源平台数据转换为金蝶云星空API接口格式并写入
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,转为目标平台所能接收的格式。在本案例中,我们将领星-利润报表-店铺平台收入的数据转换为金蝶云星空蓝字应收单的格式,并通过API接口写入目标平台。以下是详细的技术实现过程。
1. API接口配置
我们使用金蝶云星空提供的batchSave
API接口来批量保存数据。该接口采用POST请求方式,具体配置如下:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{
"field": "FBillTypeID",
"label": "单据类型",
"type": "string",
"describe": "单据类型:1.标准应付单:YFD01_SYS\n2.标准应付单:YFD02_SYS\n3.资产调拨应付:YFD03_SYS\n4.转销应付单:YFD04_SYS",
"parser": {
"name": "ConvertObjectParser",
"params": "FNumber"
},
"value": "YSD01_SYS"
},
{
...
}
],
...
}
2. 数据字段映射与转换
在配置中,我们需要将源平台的数据字段映射到目标平台对应的字段,并进行必要的数据转换。以下是主要字段的映射与转换规则:
-
FBillTypeID(单据类型):
- 值为
YSD01_SYS
,表示标准应收单。
- 值为
-
FBillNo(单据编号):
- 使用模板字符串生成,例如
{storeName}{postedDateLocale}
。
- 使用模板字符串生成,例如
-
FDATE(业务日期):
- 使用函数拼接日期字符串
_function CONCAT('{postedDateLocale}', '-01 00:00:00')
。
- 使用函数拼接日期字符串
-
FSALEORGID(销售组织):
- 固定值
105
,并通过ConvertObjectParser
转换为目标系统识别的编码。
- 固定值
-
FCUSTOMERID(客户):
- 动态值
{storeName}
,并通过ConvertObjectParser
转换。
- 动态值
-
FCURRENCYID(币别):
- 动态查找货币编码
_findCollection find FNumber from ... where FCODE={currencyCode}
。
- 动态查找货币编码
3. 明细数据处理
对于明细数据,我们需要处理数组类型的数据结构,并进行相应的字段映射和转换。例如:
{
...
{
"field": "FEntityDetail",
"label": "明细",
"type": "array",
...
"children": [
{
...
{
"field": "FMATERIALID",
...
"value": "_function ABS({{details.value}})"
},
...
}
]
}
}
在这里,我们处理了物料编码、含税单价、计价数量等字段,并使用函数对数值进行绝对值计算。
4. 表头财务信息处理
表头财务信息包含多个子字段,需要逐一映射和转换。例如:
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
![打通金蝶云星空数据接口](https://pic.qeasy.cloud/T19.png~tplv-syqr462i7n-qeasy.image)