实现金蝶其他出库单到聚水潭其他进仓的ETL过程

  • 轻易云集成顾问-李国敏

金蝶云星空数据集成到聚水潭:技术案例分享

在一次项目中,我们需要将金蝶云星空系统的其他出库单(退货)数据,集成到聚水潭的其他进仓模块。为此,我们利用轻易云数据集成平台,通过高效的数据写入能力和可靠的监控告警系统,实现了这一复杂对接任务。这篇文章将盘点一些关键技术点及它们如何助力该集成过程。

1. API接口调用与分页处理

首先,为确保从金蝶云星空获取不漏单的数据,使用其API executeBillQuery 接口来抓取所需的其他出库单信息。在实际操作中,需要特别注意接口分页和限流问题。通过设置合理的批量请求参数以及实现重试机制,有效避免了因限流而导致的数据丢失或延迟。

POST /open/jushuitan/otherinout/upload HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
    "billType": "OT",
    "dataList": [
        {
            ...
        }
    ]
}

2. 数据转换与格式差异处理

由于金蝶云星空和聚水潭之间存在数据结构上的差异,我们借助轻易云提供的自定义数据转换逻辑,将原始数据进行清洗、映射并调整至符合目标系统要求。同时,利用可视化的数据流设计工具,使得整个过程一目了然且便于管理。

3. 实时监控与异常处理

在整个集成过程中,通过集中监控和告警系统实时跟踪每个任务的状态。当出现异常情况时,即刻触发报警,并根据设定好的错误重试机制快速恢复,从而保证业务连续性。此外,还配置了详细日志记录功能,以随时查看历史操作及排查潜在问题。

这些关键点保障了我们能够顺利、高质量地完成此次对接项目。接下来,将进一步介绍具体实施方案,包括如何通过API接口实现大规模、高性能的数据传输,以及细节层面的优化策略。 打通用友BIP数据接口

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

在轻易云数据集成平台中,调用源系统的API接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用金蝶云星空的executeBillQuery接口获取并加工数据,以实现从金蝶到聚水潭的数据传输。

接口配置与请求参数

首先,我们需要配置调用金蝶云星空接口的元数据。以下是关键的元数据配置项:

  • api: executeBillQuery
  • method: POST
  • effect: QUERY
  • number: FBillNo
  • id: FEntity_FEntryID
  • idCheck: true

这些配置项定义了我们将要调用的API名称、请求方法以及一些关键字段,如单据编号和实体主键等。

请求参数详解

为了成功调用executeBillQuery接口,我们需要构建一个包含所有必要字段的请求体。以下是主要的请求参数及其描述:

  1. FEntity_FEntryID: 分录ID,用于唯一标识每一条分录。
  2. FID: 实体主键,用于唯一标识每一张单据。
  3. FBillNo: 单据编号,用于标识具体单据。
  4. FDocumentStatus: 单据状态,过滤条件之一,通常选择已审核状态(如C)。
  5. FStockOrgId_FNumber: 库存组织编码。
  6. FDate: 单据日期。
  7. FBillTypeID: 单据类型。
  8. FNOTE: 备注信息。
  9. FMATERIALID_FNumber: 物料编码。
  10. FSTOCKID_FNumber: 发货仓库编码。
  11. FQty: 实收数量。
  12. FSTOCKSTATUSID: 库存状态。
  13. FOWNERID: 货主信息。
  14. FSRCBILLTYPEID: 源单类型。
  15. FSRCBILLNO: 源单编号。

此外,还有一些分页和过滤参数:

  • LimitStartRow 用于分页查询,确保一次性获取的数据量不会过大。
  • FilterString 用于设置过滤条件,例如只查询特定时间段内且状态为已审核的退货单据:FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FDocumentStatus='C' and FStockDirect = 'RETURN'

请求示例

下面是一个示例请求体,展示了如何构建一个完整的API请求:

{
    "FormId": "STK_MisDelivery",
    "FieldKeys": "FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID,FNOTE,FMATERIALID.FNumber,FSTOCKID.FNumber,FQty,FSTOCKSTATUSID,FOWNERID,FSRCBILLTYPEID,FSRCBILLNO",
    "FilterString": "FApproveDate>='2023-01-01' and FDocumentStatus='C' and FStockDirect = 'RETURN'",
    "Limit": 100,
    "StartRow": 0
}

数据清洗与转换

在获取到原始数据后,我们需要对其进行清洗和转换,以便后续写入目标系统。在这个过程中,可以使用轻易云平台提供的数据处理工具,如字段映射、格式转换等。

例如,将金蝶中的物料编码字段FMATERIALID.FNumber映射到聚水潭中的相应字段,并确保数据格式符合目标系统要求。

写入目标系统

完成数据清洗与转换后,下一步是将处理后的数据写入聚水潭系统。这通常涉及调用聚水潭提供的API接口,并传递经过处理的数据。

通过上述步骤,我们可以实现从金蝶到聚水潭的数据无缝对接,确保业务流程顺畅运行。 如何开发企业微信API接口

数据集成案例:金蝶其他出库单(退货)到聚水潭其他进仓

在数据集成过程中,将金蝶的其他出库单(退货)数据转换并写入到聚水潭的其他进仓API接口是一个典型的ETL(Extract, Transform, Load)过程。本文将详细探讨如何通过轻易云数据集成平台实现这一过程。

API接口配置与元数据解析

目标平台为聚水潭,其API接口为/open/jushuitan/otherinout/upload,采用POST方法进行数据传输。以下是元数据配置的详细解析:

  • is_confirm: 是否确认单据,类型为布尔值,默认值为false。使用函数判断条件IF({F_POKM_JSTSTOCKNUMBER} = 10816570 , 1 , 0 )来决定是否确认。
  • excute_confirming: 是否审核单据,类型为字符串,默认值为false。
  • wms_co_id: 分仓编号,类型为整数,对应金蝶系统中的字段{F_POKM_JSTSTOCKNUMBER}
  • type: 出入库类型,固定值为in表示入库(其它退货)。
  • remark: 备注信息,不允许为空。格式为金蝶其他出库单据推送(退货),单号:{FBillNo}
  • drp_co_name: 出库类型,固定值为“其他退货”。
  • external_id: 外部单号,用于唯一标识该单据。格式为{FBillNo}{F_POKM_JSTSTOCKNUMBER}{F_POKM_JSTSTOCKNUMBER2}
  • warehouse: 仓库类型,对应ERP仓库资料设定页面中的编号,由字段{F_POKM_JSTSTOCKNUMBER2}提供。
  • items: 商品列表,为数组类型,每个商品包含两个字段:
    • sku_id: 商品编码,对应金蝶系统中的字段{FMATERIALID_FNumber}
    • qty: 数量,对应金蝶系统中的字段{FQty}

数据转换与写入过程

  1. 提取数据(Extract) 从金蝶系统中提取所需的原始数据,包括订单号、分仓编号、商品编码和数量等。

  2. 数据转换(Transform) 使用轻易云平台的ETL工具对提取的数据进行转换,以满足聚水潭API接口的要求。例如:

    • 使用条件判断函数设置是否确认单据的值。
    • 拼接外部单号以确保唯一性。
    • 格式化备注信息以符合API要求。
  3. 加载数据(Load) 将转换后的数据通过POST请求写入到聚水潭的API接口。以下是一个示例请求体:

{
  "is_confirm": true,
  "excute_confirming": "false",
  "wms_co_id": 10816570,
  "type": "in",
  "remark": "金蝶其他出库单据推送(退货),单号:123456",
  "drp_co_name": "其他退货",
  "external_id": "1234561081657010816570",
  "warehouse": 2,
  "items": [
    {
      "sku_id": "SKU123",
      "qty": 10
    },
    {
      "sku_id": "SKU456",
      "qty": 5
    }
  ]
}

操作细节与注意事项

  1. 字段映射与验证 确保所有字段正确映射,并根据业务逻辑进行必要的验证。例如,确保分仓编号和商品编码在目标平台中有效。

  2. 错误处理与重试机制 在实际操作中,需要处理可能出现的错误,如网络问题或API响应异常。可以设置重试机制以提高可靠性。

  3. 实时监控与日志记录 利用轻易云平台提供的实时监控功能,跟踪每个ETL任务的执行状态,并记录日志以便后续分析和排查问题。

通过上述步骤,可以高效地将金蝶系统中的其他出库单(退货)数据转换并写入到聚水潭的其他进仓接口,实现不同系统间的数据无缝对接。这不仅提升了业务流程的自动化程度,还确保了数据的一致性和准确性。 钉钉与WMS系统接口开发配置

更多系统对接方案