ETL转换与写入金蝶云星空API接口的技术实现

  • 轻易云集成顾问-卢剑航

从旺店通·企业奇门到金蝶云星空:数据集成的落地实践

在系统集成工作中,将不同平台的数据高效且可靠地对接,是我们面临的重要任务。本文分享了一个典型案例,即通过盘盈单4同步金蝶其他入库RK_查询覆盖方案,实现旺店通·企业奇门与金蝶云星空之间的数据集成。

为确保旺店通·企业奇门中的数据不漏单,我们调用了其API接口wdt.stockin.order.query,从而定时可靠抓取库存相关的数据。针对大批量数据的处理,通过轻易云数据集成平台,我们可以快速写入这些数据到金蝶云星空,使用其提供的API接口batchSave完成批量操作。这一切不仅有效提高了效率,还保证了数据的一致性和准确性。

在整个过程中,需要特别注意处理分页和限流的问题,以避免因请求频率过高导致服务端响应压力。同时,由于两个系统间的数据格式可能存在差异,需要在映射关系上进行定制化设置,确保字段对应完美无误。此外,在错误重试机制上做足防护措施也是必不可少的一环,它能保障对接过程中万一出现异常情况时自动重新尝试,从而提升整体流程的稳定性。

最后,为进一步加强监控和日志管理,我们引入实时监控功能及详细日志记录,对每一步操作细节进行跟踪。这不仅让开发团队能够及时发现并解决潜在问题,也为后续优化提供详实依据。 钉钉与WMS系统接口开发配置

使用轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据

在数据集成生命周期的第一步中,调用源系统接口获取数据是至关重要的一环。本文将详细探讨如何使用轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query来获取盘盈单数据,并对其进行初步加工。

接口调用配置

首先,我们需要配置接口的元数据,以确保能够正确地请求和接收所需的数据。以下是该接口的元数据配置:

{
  "api": "wdt.stockin.order.query",
  "method": "POST",
  "number": "order_no",
  "id": "stockin_id",
  "pagination": {
    "pageSize": 50
  },
  "condition_bk": [[]],
  "request": [
    {
      "field": "start_time",
      "label": "开始时间",
      "type": "string",
      "value": "{{LAST_SYNC_TIME|datetime}}",
      "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss"
    },
    {
      "field": "end_time",
      "label": "结束时间",
      "type": "string",
      "value": "{{CURRENT_TIME|datetime}}",
      "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss"
    },
    {
      "field": "order_type",
      "label": "源单据类别",
      "type": "string",
      "value": "4",
      "describe": "单据类别 1采购入库, 2调拨入库, 4盘盈入库, 5生产入库, 6其他入库, 7保修入库, 8纠错入库, 9初始化入库 10预入库11JIT退货入库12委外入库"
    },
    {
      "field": "status",
      ...
    },
    ...
  ],
  ...
}

请求参数详解

  1. 开始时间和结束时间:通过start_timeend_time字段,我们可以按最后修改时间增量获取数据。这两个字段分别使用占位符{{LAST_SYNC_TIME|datetime}}{{CURRENT_TIME|datetime}}来动态生成请求时的具体时间点。

  2. 源单据类别:字段order_type设置为"4",表示我们只查询盘盈单的数据。

  3. 分页处理:为了处理大批量的数据,接口支持分页查询。我们通过设置page_sizepage_no来控制每次请求的数据量和页码。

数据请求与清洗

在完成接口配置后,我们可以发起POST请求以获取盘盈单的数据。以下是一个示例请求体:

{
  ...
  {
    ...
    {
      ...
    }
  }
}

返回的数据通常包含多个字段,如订单编号、仓库编号、上层单据编号等。在接收到这些数据后,需要进行初步清洗,以确保后续处理的准确性和一致性。例如:

  • 过滤无效数据:移除状态为已取消或编辑中的记录。
  • 格式转换:将日期字符串转换为标准日期格式,以便于后续分析。

数据转换与写入

经过清洗后的数据,可以进一步转换为目标系统所需的格式,并写入到相应的数据库或文件系统中。例如,将盘盈单信息同步到金蝶其他入库模块。此过程涉及到字段映射、值转换等操作。

{
   ...
}

通过以上步骤,我们成功实现了从旺店通·企业奇门接口获取盘盈单数据,并进行了初步加工,为后续的数据处理打下了坚实基础。在实际应用中,还可以根据业务需求进一步优化和扩展这些操作,以提升整体效率和准确性。 用友与CRM系统接口开发配置

轻易云数据集成平台:ETL转换与写入金蝶云星空API接口的技术案例

在数据集成生命周期的第二步,我们重点关注如何将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台——金蝶云星空。以下是具体的技术实现过程。

API接口配置与请求参数

我们使用的是金蝶云星空的batchSave API接口,通过POST方法进行数据提交。以下是元数据配置中的关键字段及其解析方式:

  1. 单据编号 (FBillNo)

    • 类型:字符串
    • 来源:{stockin_no}
  2. 单据类型 (FBillTypeID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 固定值:QTRKD01_SYS
  3. 库存组织 (FStockOrgId)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 固定值:100
  4. 日期 (FDate)

    • 类型:字符串
    • 来源:{stockin_time}
  5. 供应商 (FSUPPLIERID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
  6. 部门 (FDEPTID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 固定值:BM003
  7. 备注 (FNOTE)

    • 类型:字符串
    • 来源:{remark}
  8. 明细信息 (FEntity): 包含多个子字段,逐一介绍如下:

    a. 物料编码 (FMATERIALID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 来源于明细列表中的字段 {{details_list.goods_no}}

    b. 零售条形码 (FCMKBarCode)

    • 类型:字符串

    c. 收货仓库 (FSTOCKID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 来源于 warehouse_no

    d. 实收数量 (FQty)

    • 类型:字符串
    • 来源于明细列表中的字段 {{details_list.goods_count}}

    e. 批号 (FLOT)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 来源于明细列表中的字段 {{details_list.batch_no}}

    f. 备注 (FEntryNote)

    • 类型:字符串

    g. 成本价 (FPrice)

    • 类型:字符串

请求示例

以下是一个完整的请求示例,展示了如何将上述元数据配置应用到实际的数据请求中:

{
  "FormId": "STK_MISCELLANEOUS",
  "IsVerifyBaseDataField": true,
  "Operation": "Save",
  "IsAutoSubmitAndAudit": true,
  "Model": {
    "FBillNo": "{stockin_no}",
    "FBillTypeID": {"FNumber": "QTRKD01_SYS"},
    "FStockOrgId": {"FNumber": "100"},
    "FDate": "{stockin_time}",
    "FSUPPLIERID": {"FNumber": "{supplier_id}"},
    "FDEPTID": {"FNumber": "BM003"},
    "FNOTE": "{remark}",
    "FEntity": [
      {
        "FMATERIALID": {"FNumber": "{{details_list.goods_no}}"},
        "FCMKBarCode": "{barcode}",
        "FSTOCKID": {"FNumber": "{warehouse_no}"},
        "FQty": "{{details_list.goods_count}}",
        "FLOT": {"FNumber": "{{details_list.batch_no}}"},
        "FEntryNote": "{entry_note}",
        "FPrice": "{price}"
      }
      // 可以有多个明细项,按照上述格式添加更多对象即可。
    ]
  }
}

数据转换与写入流程

  1. 提取(Extract):从源系统中提取原始数据。假设我们已经完成了这一步并得到了所需的数据集。
  2. 转换(Transform):根据元数据配置对提取的数据进行格式转换。例如,将日期格式化为目标系统所需的格式,将编码字段通过解析器转化为目标系统识别的编码。
  3. 加载(Load):通过调用金蝶云星空的API接口,将转换后的数据加载到目标系统中。

在整个过程中,我们利用轻易云数据集成平台提供的全透明可视化操作界面,实时监控和调整每个环节的数据流动和处理状态,确保数据准确无误地写入目标平台。

通过以上步骤,我们成功实现了从源平台到金蝶云星空API接口的数据ETL转换和写入,为企业的数据集成提供了高效、可靠的解决方案。 打通企业微信数据接口

更多系统对接方案