ETL转换:利用轻易云数据集成平台写入金蝶云星空

  • 轻易云集成顾问-何语琴

旺店通·企业奇门数据集成到金蝶云星空技术案例分享:退货入库单对接直接调拨单_RK

在此次系统对接项目中,我们的目标是实现旺店通·企业奇门平台的退货入库单(RMA)的数据无缝集成至金蝶云星空中的直接调拨单模块。解决方案命名为“退货入库单对接直接调拨单_RK”,通过轻易云数据集成平台,确保大规模、复杂的数据处理和传输过程顺畅、高效。

1. 确保数据不漏

首先,为了保证从旺店通·企业奇门获取的数据条数准确且不遗漏,我们依赖其API接口wdt.stockin.order.query.refund。该接口支持分页查询,通过合理设置分页参数,能够有效应对订单数量巨大的情况。同时,在抓取过程中实时监控请求状态和结果,避免由于网络波动或接口限流导致的数据丢失。

2. 批量写入提升效率

在处理大量订单数据时,高效写入到金蝶云星空尤为重要。利用金蝶提供的批量导入API batchSave,我们能够将多条记录同时提交,大幅降低每次HTTP请求带来的延迟成本。这不仅提升了整体速度,也减少了服务器的压力,提高系统稳定性。

3. 数据格式差异及映射

旺店通·企业奇门与金蝶云星空之间的数据格式存在一定差异。在实施过程中,需要进行定制化映射,将前者获取到的JSON结构转换为符合后者规范的格式。例如,从旺店通中提取一个典型字段如"refund_status",可能需要映射至金蝶对应字段"transfer_status"并需要额外逻辑判断来决定最终值是否变更。

4. 异常处理与重试机制

为了提高整个集成流程稳健性,对于任何意外出现的问题,如网络超时、响应错误等,都必须设有异常捕获机制并进行详细记录。一旦确定某一批次数据未能成功写入,将启用自动重试策略,以确保关键业务信息不会因偶发问题而丢失或者重复。

通过以上几个关键步骤,有效地协调两端系统,加速业务流程数字化转型和运营管理效率,为客户提供最佳实践示范。具体实施细节将在后续文章部分详细探讨,包括代码片段及相关配置项等内容。 用友与外部系统接口集成开发

调用旺店通·企业奇门接口wdt.stockin.order.query.refund获取并加工数据

在数据集成的生命周期中,调用源系统接口获取数据是关键的第一步。本文将深入探讨如何使用轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query.refund来获取退货入库单数据,并进行初步的数据清洗和加工。

接口调用配置

首先,我们需要配置接口调用的元数据。根据提供的metadata,接口wdt.stockin.order.query.refund采用POST方法进行数据查询,主要参数如下:

  • start_time: 增量获取数据的开始时间,格式为yyyy-MM-dd HH:mm:ss
  • end_time: 增量获取数据的结束时间,格式为yyyy-MM-dd HH:mm:ss
  • status: 入库单状态,默认查询已完成(80)的单据。
  • shop_no: 店铺编号,用于区分不同店铺的数据。
  • time_type: 时间类型,0表示最后修改时间,1表示创建时间,默认为0。
  • stockin_no: 入库单号。
  • src_order_no: 退换单号。

此外,还包括分页参数page_sizepage_no,用于控制每次请求返回的数据条数和页码。

请求参数设置

为了实现增量数据获取,我们需要动态设置请求参数中的时间范围。以下是具体的参数配置:

{
  "start_time": "{{LAST_SYNC_TIME|datetime}}",
  "end_time": "{{CURRENT_TIME|datetime}}",
  "status": "80",
  "shop_no": "<YOUR_SHOP_NO>",
  "time_type": 0,
  "page_size": "{PAGINATION_PAGE_SIZE}",
  "page_no": "{PAGINATION_START_PAGE}"
}

其中,{{LAST_SYNC_TIME|datetime}}{{CURRENT_TIME|datetime}}分别代表上次同步时间和当前时间,这两个变量确保了每次同步只获取最新的数据。

数据过滤与清洗

在获取到原始数据后,需要对数据进行初步的清洗和过滤。根据metadata中的条件配置,我们需要过滤掉不符合条件的数据。例如:

[
  {
    "field": "details_list.goods_no",
    "logic": "notlike",
    "value": "LPW"
  },
  {
    "field": "warehouse_no",
    "logic": "neqv2",
    "value": ["14", "15", "21"]
  }
]

上述条件表示我们需要排除商品编号包含"LPW"且仓库编号为14、15、21的数据。同样地,对于商品编号包含"DR"和"HC"的数据也需要进行类似的过滤。

异常处理与补偿机制

在实际操作中,不可避免会遇到一些异常情况,例如网络中断或接口响应超时等。为了确保数据同步的完整性,我们可以配置定时任务(crontab)来定期执行补偿请求。例如:

{
  "crontab": "2 */2 * * *",
  "takeOverRequest": [
    {
      "id": "<UNIQUE_ID>",
      "field": "start_time",
      "label": "开始时间",
      "type": "datetime",
      "is_required": true,
      "describe": "增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
      "value": "{{DAYS_AGO_2|datetime}}"
    }
  ]
}

该配置表示每两小时执行一次补偿请求,从两天前开始重新拉取增量数据,以确保任何遗漏的数据都能被及时捕获。

数据转换与写入

在完成初步清洗后,我们需要将处理后的数据转换为目标系统所需的格式,并写入目标数据库或系统。这一步通常涉及字段映射、格式转换等操作。例如,将退货入库单转换为直接调拨单时,需要根据业务逻辑进行字段匹配和内容调整。

通过上述步骤,我们可以高效地调用旺店通·企业奇门接口获取退货入库单数据,并进行必要的数据清洗和加工,为后续的数据转换与写入奠定基础。在整个过程中,通过合理配置元数据和请求参数,可以极大提升集成效率和准确性。 轻易云数据集成平台金蝶集成接口配置

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

在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台配置元数据,实现这一过程。

配置元数据

首先,我们需要根据目标平台金蝶云星空API接口的要求,配置相应的元数据。以下是一个示例配置:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {
      "field": "FBillNo",
      "label": "单据编号",
      "type": "string",
      "describe": "单据编号",
      "value": "{order_no}"
    },
    {
      "field": "FBillTypeID",
      "label": "单据类型",
      "type": "string",
      "describe": "单据类型",
      "value": "WDTTHRKD",
      "parser": {
        "name": "ConvertObjectParser",
        "params": "FNumber"
      }
    },
    {
      ...
    }
  ],
  ...
}

该配置文件定义了多个字段,包括FBillNo(单据编号)、FBillTypeID(单据类型)、FSaleOrgId(销售组织)等。这些字段会从源数据中提取相应的值,并通过指定的解析器(如ConvertObjectParser)进行转换,以符合金蝶云星空API接口的要求。

数据提取与转换

在实际操作中,首先需要从源平台提取数据。假设我们从退货入库单中提取数据,包含了订单编号、库存时间、备注等信息。我们使用以下代码片段进行数据提取和初步转换:

source_data = {
  'order_no': '123456',
  'stockin_time': '2023-10-01',
  'remark': '退货入库',
  'details_list': [
    {'goods_no': 'A001', 'goods_count': '10', 'warehouse_no': 'WH001', 'refund_remark': '无'},
    ...
  ]
}

# 提取并转换主要字段
transformed_data = {
  'FBillNo': source_data['order_no'],
  'FDate': source_data['stockin_time'],
  'FNote': source_data['remark'],
}

明细信息处理

对于明细信息,我们需要特别处理,因为它们通常是数组形式的数据。以下是一个处理明细信息的示例:

details_list = []
for detail in source_data['details_list']:
    transformed_detail = {
        'FMaterialId': detail['goods_no'],
        'FQty': detail['goods_count'],
        'FDestStockId': detail['warehouse_no'],
        'FNoteEntry': detail['refund_remark']
    }
    details_list.append(transformed_detail)

transformed_data['FBillEntry'] = details_list

写入目标平台

最后一步是将转换后的数据通过API接口写入金蝶云星空。我们使用轻易云提供的API调用功能,将处理好的数据发送到目标平台:

import requests

api_url = "<金蝶云星空API地址>"
headers = {"Content-Type": "application/json"}
response = requests.post(api_url, json=transformed_data, headers=headers)

if response.status_code == 200:
    print("Data successfully written to Kingdee Cloud")
else:
    print(f"Failed to write data: {response.text}")

通过上述步骤,我们完成了从源平台到目标平台的数据ETL转换和写入过程。在这个过程中,轻易云的数据集成平台提供了全透明可视化的操作界面,使得每个环节都清晰易懂,并实时监控数据流动和处理状态,大大提升了业务透明度和效率。

这种高效的数据集成方式不仅简化了复杂系统间的数据对接,还确保了数据的一致性和准确性,为企业的信息化管理提供了有力支持。 用友与MES系统接口开发配置

更多系统对接方案