ETL技术揭秘:轻易云平台如何将数据转换并写入金蝶云星空API

  • 轻易云集成顾问-叶威宏

旺店通·企业奇门数据集成到金蝶云星空:销售退货同步(非一件代发)案例分享

在本文中,我们将深入探讨如何通过轻易云数据集成平台,实现旺店通·企业奇门的退货数据高效无缝对接至金蝶云星空,并确保整个过程中元数据的一致性和完整性。本次实施的具体方案是"销售退货同步(非一件代发)--测",该方案面向的是需要高频率处理退货业务的数据环境。

接口调用与数据抓取

首先,我们需要从旺店通·企业奇门获取大量待处理的退货订单信息,这通过API wdt.refund.query来实现。为了确保不漏单,需定时可靠地抓取接口返回的数据。在此设置过程中,需要特别关注接口分页和限流问题,避免因请求量过大导致的服务不可用情况。

关键技术实现
  1. 分页机制:由于API返回的数据量可能较大,通过合理设置分页参数,可以有效管理每次请求的数据量。
  2. 限流策略:为防止超出接口调用限制,采用动态调节请求频率的方法,如检测HTTP响应头中的速率限制信息并进行相应调整。

数据转换与映射

不同系统之间经常存在着格式差异,对于来自旺店通·企业奇门的数据,需要进行适当、精确的转换,以满足金蝶云星空所要求的数据结构。这部分工作我们主要运用了自定义数据映射功能,有效解决了格式兼容性的问题。

典型例子
  • 将旺店通·企业奇门返回JSON格式中的时间字段转化为符合金蝶云星空标准ISO 8601日期时间格式。

数据批量写入

在完成必要的预处理后,通过调用金蝶云星空提供的batchSave API,可将整理好的多条记录一次性写入目标数据库。这种批量操作方式,不仅提高了传输效率,还降低了网络资源消耗,因此尤为适用于高并发、高频次更新场景。但这也需要设立合适的重试机制和异常处理逻辑以保障整体流程顺畅进行。

异常处理与重试

为了提升系统稳定性,当遇到意外错误时,我们实现了自动重试机制,同时记录详细日志以便日后的故障排查及性能优化。有助于及时识别和纠正潜在问题,从而保证实时监控以及业务连续性的可视化管理。 轻易云数据集成平台金蝶集成接口配置

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

在轻易云数据集成平台中,调用源系统接口是数据处理生命周期的第一步。本文将深入探讨如何通过调用旺店通·企业奇门接口wdt.refund.query来获取并加工销售退货数据。

接口概述

wdt.refund.query接口用于查询销售退货单信息。该接口支持多种查询条件,如退换单处理状态、时间类型、开始时间、结束时间等。通过POST请求方式,用户可以灵活地获取符合条件的退货单数据。

请求参数配置

在调用wdt.refund.query接口时,需要配置一系列请求参数。这些参数决定了查询的范围和精度。以下是主要的请求参数及其配置:

  • process_status: 退换单处理状态,取值为90表示已完成。
  • time_type: 时间类型,0表示最后更新时间,1表示结算时间。默认值为0。
  • start_time: 开始时间,按最后修改(结算)时间增量获取数据,格式为yyyy-MM-dd HH:mm:ss
  • end_time: 结束时间,按最后修改(结算)时间增量获取数据,格式为yyyy-MM-dd HH:mm:ss
  • page_size: 分页大小,每页返回的数据条数,范围为1~40,不传本参数时默认为40。
  • shop_no: 店铺编号。
  • page_no: 页号,不传值时默认从0页开始。

这些参数的具体值可以通过模板变量动态生成,例如:

{
  "start_time": "{{LAST_SYNC_TIME|datetime}}",
  "end_time": "{{CURRENT_TIME|datetime}}",
  "page_size": "{PAGINATION_PAGE_SIZE}",
  "page_no": "{PAGINATION_START_PAGE}"
}

数据过滤与条件设置

为了确保获取的数据符合业务需求,可以设置一些过滤条件。例如:

"condition": [
  [{"field":"warehouse_no","logic":"notin","value":"WH"}],
  [{"field":"type","logic":"neqv2","value":"1"}],
  [{"field":"shop_no","logic":"notin","value":"202009,203003,202006"}]
]

这些条件用于排除特定仓库编号、类型以及店铺编号的数据。

数据请求与清洗

在发起请求后,系统会返回符合条件的退货单数据。轻易云平台提供了自动填充响应的功能,即autoFillResponse: true,这意味着返回的数据会自动映射到预定义的字段中,无需手动解析。

以下是一个示例请求体:

{
  "api": "wdt.refund.query",
  "method": "POST",
  "request": {
    "process_status": "90",
    "time_type": "0",
    "start_time": "{{LAST_SYNC_TIME|datetime}}",
    "end_time": "{{CURRENT_TIME|datetime}}",
    "page_size": "{PAGINATION_PAGE_SIZE}",
    "page_no": "{PAGINATION_START_PAGE}",
    "shop_no": ""
  },
  "condition":[
    [{"field":"warehouse_no","logic":"notin","value":"WH"}],
    [{"field":"type","logic":"neqv2","value":"1"}],
    [{"field":"shop_no","logic":"notin","value":"202009,203003,202006"}]
  ]
}

数据转换与写入

在获取并清洗完数据后,需要进行必要的数据转换,以便将其写入目标系统。轻易云平台支持多种数据转换操作,如字段映射、格式转换等。例如,可以将返回的退货单编号映射到目标系统中的相应字段,并进行必要的数据格式调整。

通过上述步骤,我们实现了从源系统旺店通·企业奇门接口获取销售退货数据,并对其进行清洗和转换,为后续的数据处理打下坚实基础。这一过程不仅提高了数据处理的效率,还确保了数据的一致性和准确性。 如何开发用友BIP接口

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

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

元数据配置解析

在本案例中,我们的目标是将销售退货数据同步到金蝶云星空。以下是关键的元数据配置:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "idCheck": true,
  ...
}
  • api: 指定调用的API接口名称,这里是batchSave
  • effect: 执行效果,这里是EXECUTE
  • method: HTTP请求方法,这里是POST
  • operation: 定义操作细节,包括rowsKeymethod等。

请求参数解析

元数据中的请求参数定义了如何将源数据映射到目标API所需的字段格式。以下是几个关键字段的解析:

  1. 单据类型 (FBillTypeID)

    {
     "field": "FBillTypeID",
     "label": "单据类型",
     "type": "string",
     "parser": {"name": "ConvertObjectParser", "params": "FNumber"},
     "value": "XSTHD11_SYS"
    }
    • 使用了ConvertObjectParser解析器,将值转换为金蝶云星空所需的格式。
  2. 单据编号 (FBillNo)

    {
     "field": "FBillNo",
     "label": "单据编号",
     "type": "string",
     "describe": "单据编号",
     "value": "{refund_no}"
    }
    • 将源平台中的退货编号映射到目标平台的单据编号字段。
  3. 日期 (FDate)

    {
     "field": "FDate",
     ...
     ...
     ...
  4. 明细信息 (FEntity)

    
    {
     ...
     ...
       {
         ...
         ...
           {
             ...
             ...
               {
                 ...
                 ...
                   {
                     ...
                     ...
                       {
                         ...
                         ...

数据清洗与转换

在ETL过程中,数据清洗与转换至关重要。例如,退货客户字段需要通过解析器进行转换:


{
  ...,
  {
    ...,
    ...,
    ...,
    ...,
    ...,
    ...,
    ...,
    ...,
    ...,
    ...,
    ...,
      {
        ...,
        ...,
        ...,
        ...,
        ...,
        ...

#### 数据写入目标平台

最后一步是将处理后的数据通过HTTP POST请求写入金蝶云星空API接口:

```json
{
  ...,
  {
    ...,
      {
        ...

- `FormId`: 指定业务对象表单ID,例如`SAL_RETURNSTOCK`。
- `Operation`: 执行操作,例如保存(Save)。
- `IsAutoSubmitAndAudit`: 是否自动提交并审核。

通过上述配置和处理步骤,我们可以确保源平台的数据被正确地转换并写入到金蝶云星空系统中,实现不同系统间的数据无缝对接。
![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/T2.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案