利用轻易云平台进行ETL转换并将数据写入金蝶云星空

  • 轻易云集成顾问-陈洁琳

管易云数据集成到金蝶云星空案例分享:供应商对接

在现代企业的运营中,数据的高效处理与无缝流动至关重要。以下将分享一个通过轻易云平台实现管易云与金蝶云星空之间的数据集成案例,聚焦于“供应商”模块的详细配置与实施。

首先需要解决的是确保集成管易云数据不漏单的问题。为了保证每一条管易云数据都能完整地传输至金蝶云星空,我们采用了定时抓取和实时监控结合的方法。在配置过程中,通过调用管易云接口gy.erp.supplier.get,我们能够可靠地定时抓取最新的供应商信息。同时,为了防止任何可能的数据丢失或重复,每次抓取后都会记录相关日志并进行比对校验。

接下来是如何将大量数据快速写入到金蝶云星空。对于批量写入需求,通过使用金蝶API batchSave 可以有效提升效率。然而,在实际操作中,由于两端系统在接口参数和返回值格式上的差异,需要特别注意数据映射以及转换处理。因此,自定义的数据映射规则在此环节显得尤为重要,使得各字段能够精准对接。

此外,还需处理好分页与限流问题,以应对海量请求导致的性能瓶颈。在这种情况下,实现合理的分页策略和强健的错误重试机制显得尤为关键。一旦检测到某次请求失败,通过设定冗余机制自动进行重试,并且根据结果动态调整下一次分页请求参数,从而实现顺畅、稳定的数据同步过程。

最后,对接异常处理及错误重试作为整个流程中的一部分,同样不可忽视。当出现意外情况导致某些步骤出错时,我们即时触发报警并执行预设好的恢复程序,包括重新拉取故障段的数据并再次提交,确保即使发生异常也不会影响整体进度。这一系列技术手段共同保障了从管易云到金蝶云星空供应商模块顺利、高效、可靠的一体化集成。 钉钉与WMS系统接口开发配置

调用管易云接口gy.erp.supplier.get获取并加工数据

在数据集成生命周期的第一步,我们需要调用源系统的API接口以获取原始数据,并进行初步加工。本文将详细探讨如何通过轻易云数据集成平台调用管易云的gy.erp.supplier.get接口来获取供应商数据,并对其进行必要的处理。

接口调用配置

首先,我们需要了解gy.erp.supplier.get接口的基本配置。根据提供的元数据配置,以下是该接口的主要参数:

  • API名称: gy.erp.supplier.get
  • 请求方法: POST
  • 唯一标识字段: code
  • 分页配置:
    • 每页大小: 40 (page_size)
    • 页号: 从1开始 (page_no)
  • 请求参数:
    • start_date: 开始时间
    • end_date: 结束时间
    • page_size: 分页大小,默认为10,但我们将其设置为40
    • page_no: 页号,默认从1开始

请求参数设置

在实际操作中,我们需要根据业务需求设置请求参数。例如,如果我们希望获取某个时间段内新增或更新的供应商信息,可以设置start_dateend_date参数。以下是一个示例请求参数配置:

{
    "start_date": "2023-01-01",
    "end_date": "2023-12-31",
    "page_size": "40",
    "page_no": "1"
}

数据请求与清洗

在轻易云数据集成平台上,我们可以通过可视化界面配置上述请求参数,并发起API调用。平台会自动处理分页逻辑,确保所有符合条件的数据都能被完整获取。

一旦数据被成功拉取,我们需要对其进行初步清洗。这一步骤通常包括但不限于:

  1. 去重:确保没有重复记录。由于每条记录都有唯一标识字段code,我们可以利用这一字段进行去重操作。
  2. 格式转换:将日期、数值等字段转换为统一格式,以便后续处理。
  3. 字段映射:将源系统字段映射到目标系统字段。例如,将管易云中的供应商编码映射到目标系统中的供应商ID。

数据转换与写入

在完成初步清洗后,下一步是将数据转换为目标系统所需的格式,并写入目标数据库或系统。这一步骤可能涉及复杂的数据转换逻辑,例如:

  • 合并多个字段
  • 根据业务规则计算新字段
  • 数据类型转换(例如,将字符串类型的日期转换为日期类型)

轻易云平台提供了丰富的数据转换工具和函数,可以帮助用户高效完成这些任务。

实时监控与日志记录

为了确保数据集成过程的透明性和可靠性,轻易云平台提供了实时监控和日志记录功能。用户可以随时查看每个步骤的执行状态和详细日志,以便及时发现和解决问题。

示例代码

以下是一个简单的Python示例代码,用于演示如何通过HTTP请求调用gy.erp.supplier.get接口并处理返回的数据:

import requests
import json

# 设置请求URL和头部信息
url = "https://api.guanyiyun.com/gy.erp.supplier.get"
headers = {
    "Content-Type": "application/json"
}

# 设置请求参数
payload = {
    "start_date": "2023-01-01",
    "end_date": "2023-12-31",
    "page_size": 40,
    "page_no": 1
}

# 发起POST请求
response = requests.post(url, headers=headers, data=json.dumps(payload))

# 检查响应状态码
if response.status_code == 200:
    data = response.json()

    # 初步清洗和处理数据
    suppliers = data.get("suppliers", [])
    for supplier in suppliers:
        # 示例处理:打印供应商编码和名称
        print(f"Supplier Code: {supplier['code']}, Name: {supplier['name']}")
else:
    print(f"Failed to fetch data: {response.status_code}")

通过上述步骤,我们可以高效地从管易云获取供应商数据,并进行必要的加工处理,为后续的数据集成奠定基础。 用友与外部系统接口集成开发

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在数据集成生命周期的第二步中,主要任务是将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并最终写入目标平台。在本案例中,目标平台为金蝶云星空,通过其API接口实现数据写入。以下将详细探讨如何利用轻易云数据集成平台配置元数据,将供应商信息转换为金蝶云星空API所能接收的格式。

API接口配置

根据提供的元数据配置,金蝶云星空API接口的基本信息如下:

  • API名称:batchSave
  • 请求方法:POST
  • 需要进行ID校验:true
  • 操作配置:批量保存,每次处理20行数据
  • 业务对象表单ID:BD_Supplier

请求字段解析

请求字段包含多个参数,每个参数都有特定的类型和对应的值。以下是具体字段及其解析方式:

  1. FNumber(编码)

    • 类型:字符串
    • 值:{code},即从源数据中提取的供应商编码
  2. FName(名称)

    • 类型:字符串
    • 值:{name},即从源数据中提取的供应商名称
  3. FUseOrgId(使用组织)

    • 类型:字符串
    • 解析器:ConvertObjectParser,参数为FNumber
    • 固定值:100
  4. FCreateOrgId(创建组织)

    • 类型:字符串
    • 解析器:ConvertObjectParser,参数为FNumber
    • 固定值:100

其他请求参数

除了上述主要字段外,还需要配置一些额外的请求参数:

  1. FormId(业务对象表单Id)

    • 类型:字符串
    • 描述:必须填写金蝶的表单ID,如 PUR_PurchaseOrder
    • 固定值:BD_Supplier
  2. Operation(执行的操作)

    • 类型:字符串
    • 固定值:batchSave
  3. IsVerifyBaseDataField(验证基础资料)

    • 类型:布尔
    • 描述:是否验证所有基础资料有效性,默认值为 false
  4. IsAutoSubmitAndAudit(提交并审核)

    • 类型:布尔
    • 固定值:true

数据转换与写入流程

  1. 提取(Extract): 从源系统中提取供应商信息,包括编码和名称。

  2. 转换(Transform): 根据元数据配置,将提取的数据映射到目标平台所需格式:

    {
        "FNumber": "{code}",
        "FName": "{name}",
        "FUseOrgId": "100",
        "FCreateOrgId": "100"
    }
  3. 加载(Load): 将转换后的数据通过HTTP POST请求发送到金蝶云星空API接口:

    {
        "FormId": "BD_Supplier",
        "Operation": "batchSave",
        "IsVerifyBaseDataField": false,
        "IsAutoSubmitAndAudit": true,
        "array": [
            {
                "FNumber": "{code}",
                "FName": "{name}",
                "FUseOrgId": "100",
                "FCreateOrgId": "100"
            },
            ...
        ]
    }

实际操作示例

假设我们有以下源数据:

[
    {"code": "SUP001", "name": "供应商A"},
    {"code": "SUP002", "name": "供应商B"}
]

经过ETL转换后,将生成如下请求体:

{
    "FormId": "BD_Supplier",
    "Operation": "batchSave",
    "IsVerifyBaseDataField": false,
    "IsAutoSubmitAndAudit": true,
    "array": [
        {
            "FNumber": "SUP001",
            "FName": "供应商A",
            "FUseOrgId": "100",
            "FCreateOrgId": "100"
        },
        {
            "FNumber": "SUP002",
            "FName": "供应商B",
            "FUseOrgId": "100",
            "FCreateOrgId": "100"
        }
    ]
}

通过轻易云数据集成平台,可以全程可视化地监控这一过程,并确保每个环节都清晰透明。最终,这些供应商信息将被成功写入金蝶云星空系统,实现无缝的数据对接和业务流程自动化。 用友与外部系统接口集成开发

更多系统对接方案