利用轻易云实现ETL转换并将数据写入金蝶云星空

  • 轻易云集成顾问-彭萍

吉客云数据集成到金蝶云星空的技术实现:物料对接-查询方案

在当今企业信息系统中的复杂环境下,实现不同平台之间的数据无缝对接是一项关键任务。本篇文章将深入探讨一个实际运行的案例——"物料对接-查询方案",详细讲述如何高效且准确地将吉客云的数据集成到金蝶云星空中。

该方案利用了吉客云API接口erp.storage.goodslist来抓取所需物料信息,并通过金蝶云星空API接口batchSave进行数据写入。为了应对大规模数据实时写入的需求,我们依赖于轻易云强大的高吞吐量支持。在实施过程中,我们重点解决了以下几个技术难点:

  1. 分页与限流问题: 为确保从吉客云稳定获取海量数据,采用分页机制和合理的限流策略。此外,通过定期调度任务可靠抓取接口数据,以防漏单,保证全覆盖。

  2. 自定义数据转换逻辑: 由于吉客云和金蝶云星空的数据格式存在差异,自定义了一套转换规则,使得每条记录能够精确映射并确保业务逻辑的一致性。这一步骤在轻易云提供的可视化工具支持下更加直观和可控。

  3. 批量处理机制与监控: 数据从吉客端获取后,被分批次地快速写入至金蝶端。这不仅提高了处理效率,也降低了单次请求可能导致的问题风险。同时,通过集中监控系统,对每一批次任务状态进行实时跟踪,并设置自动告警以应对异常情况。例如,当某个批次遇到错误时,可以自动触发重试机制,从而最大程度上保障数据一致性与安全性。

  4. 质量控制与异常检测: 在整个流程中,引入了严格的数据质量控制措施以及多层级异常检测。此举能及时发现并修正潜在问题,进一步提升集成过程中的稳健性和可靠性。

以上几点只是此次集成工作的冰山一角。在具体实施过程中,还涉及更多细节如调用频率、吞吐测试等,这些都会在后续章节中详细展开讨论。 如何对接用友BIP接口

调用吉客云接口erp.storage.goodslist获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的第一步。本文将深入探讨如何通过轻易云数据集成平台调用吉客云的erp.storage.goodslist接口,并对获取的数据进行初步加工。

接口配置与请求参数

根据元数据配置,我们需要通过POST方法调用erp.storage.goodslist接口。请求参数如下:

  • pageIndex: 分页页码,类型为字符串。
  • pageSize: 分页页数,类型为字符串,默认值为100。
  • startDate: 创建起始时间,类型为字符串,使用模板变量{{LAST_SYNC_TIME|datetime}}
  • endDate: 创建结束时间,类型为字符串,使用模板变量{{CURRENT_TIME|datetime}}
  • isPackageGood: 是否组合装,类型为字符串。

这些参数确保了我们可以灵活地分页获取物料信息,并且能够根据时间范围过滤数据。

请求示例

以下是一个典型的请求示例:

{
  "pageIndex": "1",
  "pageSize": "100",
  "startDate": "{{LAST_SYNC_TIME|datetime}}",
  "endDate": "{{CURRENT_TIME|datetime}}",
  "isPackageGood": "false"
}

数据过滤条件

在实际应用中,我们可能需要对数据进行进一步过滤。元数据配置中提供了一个条件过滤器:

"condition_bk":[[{"field":"ownerName","logic":"notin","value":"上海弧秒科技有限公司,上海幸亲国际贸易有限公司"}]]

这个过滤器确保了我们排除了特定公司的物料信息,从而提高了数据的准确性和相关性。

自动填充响应

元数据配置中的autoFillResponse设置为true,这意味着平台会自动处理和填充响应数据。这一特性极大地简化了开发工作,使得我们可以专注于业务逻辑,而无需过多关注底层的数据处理细节。

数据清洗与转换

在获取到原始数据后,我们通常需要进行一定的数据清洗和转换,以便后续的写入操作。以下是一些常见的数据清洗步骤:

  1. 字段映射:将源系统中的字段映射到目标系统的字段。例如,将goodsNo映射到目标系统中的物料编号字段。
  2. 格式转换:将日期、时间等字段转换为目标系统所需的格式。
  3. 去重处理:如果源系统返回的数据中存在重复记录,需要进行去重处理。

实践案例

假设我们从吉客云获取了一批物料信息,并需要将其导入到另一个系统中。以下是一个简单的数据清洗与转换示例:

import json
from datetime import datetime

# 假设这是从吉客云获取的原始数据
raw_data = '''
[
    {"goodsNo": "001", "goodsName": "物料A", "createTime": "2023-10-01T12:00:00"},
    {"goodsNo": "002", "goodsName": "物料B", "createTime": "2023-10-02T12:00:00"}
]
'''

# 将原始数据解析为Python对象
data = json.loads(raw_data)

# 清洗与转换
cleaned_data = []
for item in data:
    cleaned_item = {
        "material_code": item["goodsNo"],
        "material_name": item["goodsName"],
        "created_at": datetime.strptime(item["createTime"], "%Y-%m-%dT%H:%M:%S").strftime("%Y-%m-%d %H:%M:%S")
    }
    cleaned_data.append(cleaned_item)

# 输出清洗后的数据
print(json.dumps(cleaned_data, indent=4, ensure_ascii=False))

以上代码展示了如何将吉客云返回的数据进行简单的清洗和转换,以便后续写入其他系统。

通过轻易云数据集成平台,我们能够高效地调用吉客云接口获取物料信息,并对其进行必要的数据清洗和转换。这不仅提升了业务流程的自动化程度,也确保了数据的一致性和准确性。 钉钉与MES系统接口开发配置

轻易云数据集成平台生命周期中的ETL转换:将源数据写入金蝶云星空API接口

在数据集成过程中,ETL(Extract, Transform, Load)转换是关键的一步。本文将详细探讨如何利用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并最终写入金蝶云星空API接口。

数据请求与清洗

在开始ETL转换之前,首先需要完成数据请求与清洗。这一步骤确保从源系统获取的数据是准确且符合要求的。假设我们已经完成了这一步,现在进入核心的ETL转换阶段。

数据转换与写入

为了将数据成功写入金蝶云星空,我们需要配置相应的元数据。以下是一个典型的元数据配置示例:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "FName", "label": "名称", "type": "string", "value": "{goodsName}"},
    {"field": "FNumber", "label": "编码", "type": "string", "value": "{goodsNo}"},
    {"field": "FSpecification", "label": "规格型号", "type": "string", "value": "{skuName}"},
    {"field": "FOldNumber", "label": "旧物料编码", "type": "string", "value": "{goodsNo}"},
    {"field": "FCreateOrgId", 
     "label": "创建组织", 
     "type": "string",
     ...

元数据配置解析

  1. API接口选择

    • api: batchSave:指定使用金蝶云星空的批量保存接口。
    • method: POST:HTTP请求方法为POST。
  2. 字段映射

    • FNameFNumberFSpecification等字段分别对应物料的名称、编码和规格型号。
    • 使用占位符 {} 来引用源平台的数据字段,如 {goodsName}{goodsNo}
  3. 对象解析器

    • 对于复杂对象,例如 FCreateOrgIdFUseOrgId,使用 ConvertObjectParser 进行解析,确保字段能够正确匹配目标系统中的对象编号。
  4. 嵌套对象

    • 配置嵌套对象,例如 SubHeadEntitySubHeadEntity3,用于描述物料的基本信息和采购信息。
    • 每个嵌套对象内包含多个子字段,如 FErpClsIDFPurchaseOrgId,这些子字段也需要进行相应的映射和解析。
  5. 其他请求参数

    • FormId: BD_MATERIAL:指定表单ID。
    • Operation: Save:操作类型为保存。
    • IsAutoSubmitAndAudit: true:自动提交并审核。

数据写入流程

  1. 准备请求数据: 根据元数据配置,从源平台提取相应的数据,并按照配置格式化为目标系统可接受的数据结构。

  2. 发送HTTP请求: 使用HTTP POST方法,将格式化后的数据发送到金蝶云星空的批量保存接口。

  3. 处理响应: 接收并处理目标系统返回的响应,确认数据是否成功写入。如果失败,需要记录错误信息并进行相应处理。

实际案例分析

假设我们有一批物料信息需要从源系统导入到金蝶云星空。以下是一个实际案例:

  • 源系统提供的数据如下:

    {
    "goodsName": "电子元件A",
    "goodsNo": "E001",
    ...
    }
  • 根据元数据配置,生成的请求数据为:

    {
    ...
    {
      ...
      {"field":"FName","value":"电子元件A"},
      {"field":"FNumber","value":"E001"},
      ...
    }
    ...
    }
  • 最终通过HTTP POST方法,将上述请求数据发送至金蝶云星空API接口,实现物料信息的批量保存。

通过以上步骤,我们成功地将源平台的数据进行了ETL转换,并无缝对接到了金蝶云星空。这不仅提高了数据处理效率,也确保了各系统间的数据一致性和准确性。 打通钉钉数据接口

更多系统对接方案