马帮仓库数据集成到金蝶云星空仓库新增
在这个案例中,我们将重点探讨如何通过轻易云数据集成平台,实现马帮仓库的数据高效、可靠地集成到金蝶云星空系统。我们将分步骤阐述这次项目的技术细节与关键点,包括API调用、数据处理和异常处理机制等各个环节。
首先,马帮提供了一个名为sys-get-warehouse-list
的API接口,用于获取其仓库列表的数据。为了确保这些重要数据不漏单,我们配置了一个定时任务,通过稳定调度器定期调用该接口抓取最新数据,并实时监控这一过程。在应对大量数据快速写入到金蝶云星空的问题上,我们采用了批量写入模式,利用金蝶提供的batchSave
API接口进行操作,这是提升效率和保证准确性的关键一步。
在具体实施过程中,需要注意两个系统之间的数据格式差异。而我们的解决方案是在轻易云的转换模块中,对从马帮获取的数据进行标准化处理,使之符合金蝶云星空所需的格式规范。同时,为了防止因网络波动或其他意外情况导致的数据传输错误,还设置了完善的异常处理与错误重试机制,一旦发现问题可以立即重试并记录日志以便后续查验。
此外,由于部分情况下需要分页抓取大规模数据,并考虑到马帮API可能存在限流限制,因此采用了一套智能分页及限流管理策略,以优化查询性能并避免触发API访问频率限制。这些都是确保整个集成过程顺滑、高效的重要保障措施。
接下来,将具体描述每个环节中的实现细节,让你能全面了解如何通过一系列稳健措施完成如此复杂而精密的一次系统对接工作。
调用马帮接口sys-get-warehouse-list获取并加工数据
在轻易云数据集成平台中,调用源系统接口是数据处理生命周期的第一步。本文将详细探讨如何通过调用马帮接口sys-get-warehouse-list
来获取仓库列表,并对数据进行初步加工,以便后续的数据转换与写入操作。
接口调用配置
首先,我们需要配置调用马帮接口的元数据。根据提供的元数据配置,以下是具体的参数设置:
- API:
sys-get-warehouse-list
- 请求方法:
POST
- 查询字段:
number
: 对应仓库名称字段id
: 对应仓库ID字段name
: 对应平台订单ID字段
- 请求参数:
type
: 仓库类型,固定值为9
- 自动填充响应: 启用
- 条件校验: 财务代码不为空
请求参数构建
在实际操作中,我们需要构建一个POST请求来获取仓库列表。请求参数如下:
{
"type": "9"
}
这个请求将会返回所有类型为9
的仓库信息。我们使用轻易云的数据集成平台,可以方便地通过可视化界面配置这些参数,无需编写复杂的代码。
数据清洗与初步加工
获取到原始数据后,需要对其进行清洗和初步加工,以确保数据质量和一致性。以下是一些常见的数据清洗步骤:
- 字段映射: 将返回的数据字段映射到目标系统所需的字段。例如,将马帮返回的
name
字段映射为金蝶云星空中的仓库名称。 - 数据过滤: 根据业务需求,过滤掉不符合条件的数据。例如,只保留财务代码不为空的记录。
- 格式转换: 将数据格式转换为目标系统所需的格式。例如,将日期格式从
YYYY-MM-DD
转换为DD/MM/YYYY
。
实际案例
假设我们从马帮接口获取到以下原始数据:
[
{
"id": "123",
"name": "Warehouse A",
"platformOrderId": "PO123",
"finance_code": "FC001"
},
{
"id": "124",
"name": "Warehouse B",
"platformOrderId": "PO124",
"finance_code": null
}
]
根据元数据配置,我们需要对这些数据进行如下处理:
-
映射字段:
id
-> 金蝶云星空中的仓库IDname
-> 金蝶云星空中的仓库名称platformOrderId
-> 平台订单ID
-
过滤无效记录:
- 移除财务代码为空的记录,即第二条记录。
-
生成最终结果:
[
{
"warehouse_id": "123",
"warehouse_name": "Warehouse A",
"platform_order_id": "PO123"
}
]
自动化处理
轻易云平台支持自动化处理上述步骤,通过配置规则和条件,可以在数据流动过程中自动完成清洗和转换。这不仅提高了效率,还减少了人为错误。
综上所述,通过轻易云数据集成平台调用马帮接口并进行初步的数据清洗与加工,可以有效地实现不同系统间的数据无缝对接,为后续的数据转换与写入奠定基础。
使用轻易云数据集成平台实现数据ETL转换并写入金蝶云星空API接口
在数据集成的生命周期中,将源平台的数据进行ETL(提取、转换、加载)转换,并将其写入目标平台是关键步骤之一。本文将详细探讨如何利用轻易云数据集成平台,将马帮仓库的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
元数据配置解析
在进行ETL转换之前,首先需要理解元数据配置。以下是本次案例中的元数据配置:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"number": "FBillNo",
"name": "FBillNo",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FName","label":"名称","type":"string","describe":"名称","value":"{name}"},
{"field":"FNumber","label":"编码","type":"string","describe":"编码","value":"{finance_code}"},
{"field":"FUseOrgId","label":"使用组织","type":"string","describe":"使用组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
{"field":"FCreateOrgId","label":"创建组织","type":"string","describe":"创建组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
{"field":"F_VPWO_Text_qtr","label":"马帮仓库id","type":"string","value":"{id}"}
],
"otherRequest": [
{"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "BD_STOCK"},
{"field": "IsVerifyBaseDataField", "label": "验证基础资料", "type": "bool", "describe": "是否验证所有的基础资料有效性,布尔类,默认false(非必录)", "value": true},
{"field": "Operation", "label": "执行的操作", "type": "string", "describe": "", value: BatchSave},
{"field": IsAutoSubmitAndAudit, label: 提交并审核, type: bool, describe: 提交并审核, value: true}
]
}
数据请求与清洗
在进行ETL转换之前,首先需要从马帮仓库获取原始数据。假设我们已经通过轻易云平台完成了数据请求和清洗步骤,现在我们获得了如下清洗后的数据:
{
name: '仓库A',
finance_code: 'WH001',
id: '12345'
}
数据转换
接下来,我们需要根据元数据配置将清洗后的数据转换为金蝶云星空API接口所能接收的格式。具体步骤如下:
- 字段映射:根据元数据中的
request
部分,将清洗后的字段映射到目标字段。例如,将name
映射到FName
,将finance_code
映射到FNumber
,将id
映射到F_VPWO_Text_qtr
。 - 固定值填充:对于一些固定值字段,如
FUseOrgId
和FCreateOrgId
,直接填充预定义的值(例如:100)。 - 特殊处理:对于需要特殊处理的字段,如使用解析器(parser)的字段,需要根据配置进行相应处理。例如,使用
ConvertObjectParser
对组织编码进行转换。
经过上述步骤,我们可以得到如下符合金蝶云星空API接口要求的数据格式:
{
FName: '仓库A',
FNumber: 'WH001',
FUseOrgId: { FNumber: '100' },
FCreateOrgId: { FNumber: '100' },
F_VPWO_Text_qtr: '12345'
}
数据写入
最后一步是将转换后的数据通过API接口写入金蝶云星空。根据元数据配置中的其他请求参数,我们需要构造一个完整的请求体:
{
FormId: 'BD_STOCK',
IsVerifyBaseDataField: true,
Operation: 'BatchSave',
IsAutoSubmitAndAudit: true,
array: [
{
FName: '仓库A',
FNumber: 'WH001',
FUseOrgId: { FNumber: '100' },
FCreateOrgId: { FNumber: '100' },
F_VPWO_Text_qtr: '12345'
}
]
}
通过HTTP POST方法,将上述请求体发送至金蝶云星空的批量保存接口(batchSave),即可完成数据写入操作。
总结
通过上述步骤,我们成功地将马帮仓库的数据经过ETL转换后写入了金蝶云星空平台。在这个过程中,关键在于准确理解和应用元数据配置,以确保每个字段都能正确地映射和处理。这不仅提高了系统间的数据一致性,也大大提升了业务处理效率。