每刻往来单位—客户->金蝶客户:一个集成案例分享
在现代数据管理中,系统间的数据集成是不可或缺的环节。本篇文章将详细解析如何通过使用轻易云数据集成平台,实现每刻(Meike)系统中的往来单位(客户)数据与金蝶云星空客户信息的高效对接。
为了实现这一目标,我们利用了每刻提供的/api/openapi/tradingPartner/list
API接口从源系统抓取数据,并将其写入到金蝶云星空对应的批量保存API batchSave
。本技术案例将集中解答以下几个关键问题:
- 确保不漏单:如何避免在数据抓取过程中遗漏记录。
- 快速大量写入:应对大规模批量写入时可能出现的性能瓶颈。
- 定时可靠抓取:配置自动和定期同步,以保证业务连续性。
- 分页和限流处理:有效应对API调用次数限制及分页返回结果的问题。
首先,由于每刻API接口采用的是分页机制,每页返回固定数量的数据,因此我们需要设计一个循环逻辑,通过不断请求不同页码以获取所有记录。这种方式不仅允许我们完整获取所有客户信息,还能避免一次性加载大量数据造成服务器压力过大。同时,为了防止由于网络延迟或其他原因导致部分请求失败,需要加入重试机制,在一定次数内重新尝试未成功的请求。
其次,当获取到完整的数据后,需要解决两套系统间的数据格式差异问题。例如,每刻系统中的字段名、类型与金蝶云星空并不完全一致。在这种情况下,必须进行预处理,对原始数据做必要转换,再提交给金蝶接口。此外,为了增强操作透明度和追溯能力,我们还引入了实时监控与日志记录功能。通过这些手段,可以随时查看当前任务执行状态以及历史执行情况,从而及时发现和纠正潜在问题。
最后,对于实际应用中可能发生的一些异常,比如网络故障、数据库锁定等,我们也有相应的错误处理策略。一旦捕获到异常,会立即触发重试逻辑,尽最大努力确保任务顺利完成。如果多次重试仍未成功,则会生成报警信息通知相关人员介入修复。
以上仅为整体方案的一瞥,接下来让我们深入探讨各个步骤及背后的技术细节。
调用源系统每刻接口/api/openapi/tradingPartner/list获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用每刻接口/api/openapi/tradingPartner/list
,并对获取的数据进行加工处理。
接口配置与请求参数
首先,我们需要理解接口的元数据配置。以下是该接口的详细配置:
{
"api": "/api/openapi/tradingPartner/list",
"method": "POST",
"number": "name",
"id": "bizCode",
"idCheck": true,
"condition": [
[
{"field": "parentBizCode", "logic": "like", "value": "wldw"},
{"field": "parentBizCode", "logic": "neq", "value": "wldw001"},
{"field": "enabled", "logic": "eq", "value": "true"}
]
],
"request": [
{"field": "startTime", "label": "查询开始(创建/更新)时间戳", "type": "string", "value": "{LAST_SYNC_TIME}000"},
{"field": "endTime", "label": "查询结束(创建/更新)时间戳", "type": "string", "value": "{CURRENT_TIME}000"},
{"field": "pageNo", "label": "分页序号", "type": "string", "describe":"(默认为1)", "value":"1"},
{"field":"pageSize","label":"分页大小","type":"string","describe":"(默认为50)","value":"50"},
{"field":"bizCodes","label":"往来单位编码","type":"string"},
{"field":"parentBizCode","label":"分类的业务编码","type":"string"},
{"field":"keyword","label":"往来单位编码/名字","type":"string","describe":"(模糊查询)"}
]
}
该配置定义了请求方法为POST,并且包含多个请求参数,如startTime
、endTime
、pageNo
、pageSize
等。这些参数用于控制数据查询的时间范围和分页信息。
数据请求与清洗
在实际操作中,我们需要根据业务需求设置这些参数。例如,假设我们需要获取从上次同步时间到当前时间之间的数据,可以这样设置:
{
![用友与SCM系统接口开发配置](https://pic.qeasy.cloud/S2.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台ETL转换与写入金蝶云星空API接口技术案例
在数据集成过程中,ETL(Extract, Transform, Load)转换是至关重要的一环。本文将详细探讨如何利用轻易云数据集成平台,将源平台的客户数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
#### 数据请求与清洗
在开始ETL转换之前,首先需要从源平台提取客户数据并进行初步清洗。假设我们已经完成了这一步,获得了结构化的客户数据,包括客户名称、客户编码、创建组织、使用组织等信息。
#### 数据转换与写入
接下来,我们重点关注如何将这些清洗后的数据通过ETL过程转换为金蝶云星空API能够接收的格式,并写入目标平台。
##### 配置元数据
根据提供的元数据配置,我们需要使用`batchSave` API,通过POST方法提交请求。以下是关键配置项及其解释:
```json
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"distributionOrg": "100534,229953,157036,364761,100535,100536,104847,104848,104849,337348,104850,158696,218598,897173,897172,897174,897167,897168,897171,1005646",
"request": [
{"field": "FName", "label": "客户名称", "type": "string", "value": "{name}"},
{"field": "FNumber", "label": "客户编码", "type": "string", "value": "{bizCode}"},
{"field": "FCreateOrgId",
"label": "创建组织",
"type": "string",
"parser": {"name":"ConvertObjectParser","params":"FNumber"},
"value":"100"
},
{"field": "FUseOrgId",
"label": "使用组织",
"type":"string",
"parser":{"name":"ConvertObjectParser","params":"FNumber"},
"value":"100"
},
{"field":"FDescription","label":"描述","type":"string"},
{"label":"客户分组","field":"FGroup","type":"string","value":"{parentBizCode}","parser":{"name":"ConvertObjectParser","params":"FNumber"}}
],
...
}
数据字段解析
- 客户名称 (FName):直接映射源数据中的
name
字段。 - 客户编码 (FNumber):直接映射源数据中的
bizCode
字段。 - 创建组织 (FCreateOrgId) 和 使用组织 (FUseOrgId):这两个字段都需要通过
ConvertObjectParser
解析器将值转换为对应的金蝶云星空格式,默认值为"100"。 - 描述 (FDescription):可选字段,根据业务需求填写。
- 客户分组 (FGroup):通过
ConvertObjectParser
解析器,将源数据中的parentBizCode
字段转换为金蝶云星空格式。
请求示例
以下是一个完整的POST请求示例,用于向金蝶云星空API批量保存客户信息:
{
"FormId": "BD_Customer",
"Operation": {
...
},
...
}
提交并审核
为了确保数据在提交后自动审核,我们设置了以下参数:
{
...
{
...
{"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","value":"true"}
}
}
实际操作步骤
- 准备请求体:根据上述配置和解析规则,构建完整的JSON请求体。
- 发送HTTP请求:通过HTTP POST方法,将请求体发送到金蝶云星空API接口。
- 处理响应:检查响应状态和返回结果,确认数据是否成功写入目标平台。
技术要点总结
- 使用轻易云平台提供的全异步、多系统支持特性,实现不同系统间的数据无缝对接。
- 利用元数据配置中的解析器(如ConvertObjectParser)进行必要的数据转换,以满足目标系统的格式要求。
- 设置自动提交和审核参数,提高业务处理效率。
通过上述步骤,我们可以高效地将源平台的数据转换并写入到金蝶云星空API接口中,实现跨系统的数据集成和同步。