ETL转换科技案例:轻易云集成金蝶云星空客户信息

  • 轻易云集成顾问-吴伟

每刻往来单位—客户->金蝶客户:一个集成案例分享

在现代数据管理中,系统间的数据集成是不可或缺的环节。本篇文章将详细解析如何通过使用轻易云数据集成平台,实现每刻(Meike)系统中的往来单位(客户)数据与金蝶云星空客户信息的高效对接。

为了实现这一目标,我们利用了每刻提供的/api/openapi/tradingPartner/list API接口从源系统抓取数据,并将其写入到金蝶云星空对应的批量保存API batchSave。本技术案例将集中解答以下几个关键问题:

  1. 确保不漏单:如何避免在数据抓取过程中遗漏记录。
  2. 快速大量写入:应对大规模批量写入时可能出现的性能瓶颈。
  3. 定时可靠抓取:配置自动和定期同步,以保证业务连续性。
  4. 分页和限流处理:有效应对API调用次数限制及分页返回结果的问题。

首先,由于每刻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,并且包含多个请求参数,如startTimeendTimepageNopageSize等。这些参数用于控制数据查询的时间范围和分页信息。

数据请求与清洗

在实际操作中,我们需要根据业务需求设置这些参数。例如,假设我们需要获取从上次同步时间到当前时间之间的数据,可以这样设置:

{

![用友与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"}}
  ],
  ...
}
数据字段解析
  1. 客户名称 (FName):直接映射源数据中的name字段。
  2. 客户编码 (FNumber):直接映射源数据中的bizCode字段。
  3. 创建组织 (FCreateOrgId)使用组织 (FUseOrgId):这两个字段都需要通过ConvertObjectParser解析器将值转换为对应的金蝶云星空格式,默认值为"100"。
  4. 描述 (FDescription):可选字段,根据业务需求填写。
  5. 客户分组 (FGroup):通过ConvertObjectParser解析器,将源数据中的parentBizCode字段转换为金蝶云星空格式。
请求示例

以下是一个完整的POST请求示例,用于向金蝶云星空API批量保存客户信息:

{
  "FormId": "BD_Customer",
  "Operation": {
    ...
  },
  ...
}
提交并审核

为了确保数据在提交后自动审核,我们设置了以下参数:

{
  ...
  {
    ...
    {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","value":"true"}
  }
}

实际操作步骤

  1. 准备请求体:根据上述配置和解析规则,构建完整的JSON请求体。
  2. 发送HTTP请求:通过HTTP POST方法,将请求体发送到金蝶云星空API接口。
  3. 处理响应:检查响应状态和返回结果,确认数据是否成功写入目标平台。

技术要点总结

  • 使用轻易云平台提供的全异步、多系统支持特性,实现不同系统间的数据无缝对接。
  • 利用元数据配置中的解析器(如ConvertObjectParser)进行必要的数据转换,以满足目标系统的格式要求。
  • 设置自动提交和审核参数,提高业务处理效率。

通过上述步骤,我们可以高效地将源平台的数据转换并写入到金蝶云星空API接口中,实现跨系统的数据集成和同步。 如何开发企业微信API接口

更多系统对接方案