ETL转换:金蝶仓库数据写入简道云的高效操作指南

  • 轻易云集成顾问-吴伟

金蝶云星空数据集成到简道云:一个高效的系统对接案例

在实际的企业运作中,如何高效地将不同系统中的数据进行集成和共享,是确保业务流程顺畅的重要课题。本篇技术文章聚焦于金蝶云星空的数据集成至简道云,实现方案名称为“金蝶-仓库--->简道云-仓库”,旨在分享从系统对接配置到最终成功运行的过程。

确保数据无遗漏:调用executeBillQuery接口

首要任务是保证从金蝶云星空提取的数据完整可靠。通过调用其专用API接口executeBillQuery,我们可以定时抓取最新的仓库信息。这一过程需要特别注意处理分页和限流问题,以防止大量请求导致的数据丢失或服务超时。例如,通过设定合理的分页参数,可以在每次请求中获取适量数据,从而避免因过多数据一次性传输引发的问题。

{
  "method": "POST",
  "url": "https://api.kingdee.com/executeBillQuery",
  "headers": {
    "Content-Type": "application/json"
  },
  "body": {
    // 请求体参数,根据具体需求填写
    ...
  }
}

快速写入大量数据到简道云

要实现迅速、稳定地向简道云导入大批量数据,我们利用其提供的写入API /api/v2/app/{app_id}/entry/{entry_id}/data_create。除了考虑速度和效率外,还需关注两边的数据格式差异,这通常是跨平台集成的一大挑战。在这一步,我们通过制定详细的数据映射规则,将从金蝶提取的信息转化为符合简道云要求的数据结构,再逐步进行批量导入。

{
  "method": "POST",
  "url": "/api/v2/app/{app_id}/entry/{entry_id}/data_create",
  "headers": {
    // 相应头部信息,如认证token等
    ...
   },
   “body”:{
      // 数据体内容,根据具体需求填写
      ...
   }
}

实现异常处理与错误重试机制

为了增强整个流程的稳健性,在实施过程中,我们针对可能发生的数据上传失败、网络连接不稳定等异常情况进行了全面考量并设计了相应措施。如在关键节点设置监控与日志记录,每当操作出现错误,即触发重试机制,保证即便遇到意外状况也能及时解决,不影响整体进程。同时,在识别并排除特定错误后继续执行任务,使得全流程更加智能、高效。

借助上述方法,此次项目不仅成功实现了从 金蝶与WMS系统接口开发配置

调用金蝶云星空接口executeBillQuery获取并加工数据

在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口来获取并加工数据。

接口配置与请求参数

首先,我们需要了解executeBillQuery接口的基本配置和请求参数。根据提供的元数据配置,以下是该接口的详细信息:

  • API名称: executeBillQuery
  • 请求方法: POST
  • 主要字段:
    • FStockId: 仓库ID
    • FNumber: 编码
    • FName: 名称
    • FGroup: 分组
    • FUseOrgId.FNumber: 使用组织编码

此外,还有一些其他请求参数,如分页参数和过滤条件:

  • 分页参数:

    • Limit: 最大行数,默认值为2000
    • StartRow: 开始行索引
    • TopRowCount: 返回总行数
  • 过滤条件:

    • FilterString: 用于指定查询条件,例如:FAuditDate>='{{LAST_SYNC_TIME|dateTime}}' and FUseOrgId.FNumber in ('102','109')

请求示例

以下是一个完整的请求示例,用于调用executeBillQuery接口:

{
    "FormId": "BD_STOCK",
    "FieldKeys": "FStockId,FNumber,FName,FGroup,FUseOrgId.FNumber",
    "FilterString": "FAuditDate>='2023-01-01' and FUseOrgId.FNumber in ('102','109')",
    "Limit": "2000",
    "StartRow": "0"
}

在这个请求中,我们指定了业务对象表单ID为BD_STOCK,查询字段包括仓库ID、编码、名称、分组和使用组织编码,并设置了过滤条件和分页参数。

数据清洗与转换

获取到原始数据后,下一步是对数据进行清洗和转换。轻易云平台提供了强大的数据处理功能,可以根据需求对数据进行各种操作。

  1. 字段映射: 将金蝶云返回的数据字段映射到目标系统所需的字段。例如,将FStockId映射为目标系统中的仓库ID。
  2. 数据格式转换: 根据目标系统的要求,对日期、数字等字段进行格式转换。
  3. 数据过滤: 根据业务需求,对不符合条件的数据进行过滤。

以下是一个简单的数据清洗与转换示例:

{
    "sourceField": "FStockId",
    "targetField": "warehouse_id",
    "transformation": {
        "type": "string"
    }
},
{
    "sourceField": "FNumber",
    "targetField": "code",
    "transformation": {
        "type": "string"
    }
},
{
    "sourceField": "FName",
    "targetField": "name",
    "transformation": {
        "type": "string"
    }
}

在这个示例中,我们将金蝶云返回的FStockIdFNumberFName分别映射为目标系统中的仓库ID、编码和名称,并确保它们都是字符串类型。

自动填充响应

轻易云平台支持自动填充响应功能,可以根据预定义的规则自动将处理后的数据写入目标系统。这一步骤可以极大地简化集成过程,提高效率。

例如,我们可以配置如下规则,将处理后的数据自动写入简道云仓库:

{
    "autoFillResponse": true,
    "targetSystem": {
        // 简道云相关配置
        ...
    }
}

通过以上步骤,我们完成了从调用金蝶云星空接口获取原始数据,到清洗、转换并写入目标系统的整个过程。轻易云平台提供了全生命周期管理和可视化操作界面,使得这一过程更加透明和高效。 电商OMS与ERP系统接口开发配置

使用轻易云数据集成平台将金蝶仓库数据转换并写入简道云API接口

在轻易云数据集成平台的生命周期中,ETL(Extract, Transform, Load)转换是一个至关重要的步骤。本文将深入探讨如何将金蝶仓库的数据转换为简道云API接口所能接收的格式,并最终写入目标平台。

数据请求与清洗

在开始ETL转换之前,我们需要确保从金蝶系统中获取的数据已经经过清洗和初步处理。这一步骤通常包括数据的去重、校验和基本格式化,以确保后续处理的顺利进行。

数据转换与写入

接下来,我们进入数据转换与写入阶段。此阶段主要涉及将源平台(金蝶)的数据字段映射到目标平台(简道云)的字段,并通过API接口将数据传输过去。

根据提供的元数据配置,我们可以看到以下关键字段及其对应关系:

  • 金蝶编码 (FNumber) -> _widget_1704939832422
  • 金蝶名称 (FName) -> _widget_1705282562636
  • 组织编码 (FUseOrgId) -> _widget_1704874462251
  • 属性 固定值 "门店仓" -> _widget_1682386633966
  • 类别 固定值 "门店类" -> _widget_1701912134455

这些字段需要通过POST方法发送到简道云API接口 /api/v2/app/{app_id}/entry/{entry_id}/data_create。以下是具体实现步骤:

1. 准备请求参数

首先,我们需要根据元数据配置准备好请求参数。每个字段都需要进行相应的解析和转换。

{
  "_widget_1704939832422": "FNumber",
  "_widget_1705282562636": "FName",
  "_widget_1704874462251": "FUseOrgId",
  "_widget_1682386633966": "门店仓",
  "_widget_1701912134455": "门店类"
}
2. 配置其他请求参数

除了上述字段外,还有一些其他请求参数需要配置:

{
  "is_start_workflow": "true",
  "is_start_trigger": "false",
  "transaction_id": "1",
  "appId": "642307c010703500087839ac",
  "entryId": "6455ec27ae6b020008ebdbb8"
}
3. 构建HTTP请求

将上述所有参数整合到一个HTTP POST请求中,发送到简道云API接口:

POST /api/v2/app/642307c010703500087839ac/entry/6455ec27ae6b020008ebdbb8/data_create HTTP/1.1
Host: api.jiandaoyun.com
Content-Type: application/json

{
    "_widget_1704939832422": "{FNumber}",
    "_widget_1705282562636": "{FName}",
    "_widget_1704874462251": "{FUseOrgId}",
    "_widget_1682386633966": "门店仓",
    "_widget_1701912134455": "门店类",
    "is_start_workflow": true,
    "is_start_trigger": false,
    "transaction_id": 1,
    "appId": "642307c010703500087839ac",
    "entryId": "6455ec27ae6b020008ebdbb8"
}
4. 执行请求并处理响应

发送构建好的HTTP请求,并处理响应结果。确保响应状态码为200,以确认数据成功写入简道云。

import requests
import json

url = 'https://api.jiandaoyun.com/api/v2/app/642307c010703500087839ac/entry/6455ec27ae6b020008ebdbb8/data_create'
headers = {'Content-Type': 'application/json'}
data = {
    "_widget_1704939832422": FNumber,
    "_widget_1705282562636": FName,
    "_widget_1704874462251": FUseOrgId,
    "_widget_1682386633966": "门店仓",
    "_widget_1701912134455": "门店类",
    "is_start_workflow": True,
    "is_start_trigger": False,
    "transaction_id": 1,
}

response = requests.post(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print("Data successfully written to JiandaoYun")
else:
    print("Failed to write data:", response.text)

通过以上步骤,我们完成了从金蝶系统到简道云的ETL过程,实现了数据的无缝对接。这不仅提高了业务流程的自动化程度,还确保了数据的一致性和准确性。 钉钉与ERP系统接口开发配置