轻易云数据集成:将管易销售发货单转换至金蝶云星空

  • 轻易云集成顾问-潘裕

管易云·奇门数据集成到金蝶云星空:销售出库同步(线上买赠)

在实际企业业务操作中,不同系统之间的数据对接和集成往往面临很多挑战,尤其是对于高并发、高吞吐量的场景。本文将具体分享如何通过轻易云数据集成平台,实现管易云·奇门与金蝶云星空的无缝数据对接,以"管易销售发货单-->金蝶销售出库单(线上买赠)"为例。

技术背景

为了确保在订单处理过程中,各个环节的数据都能够及时、准确地传递,我们调用了管易云·奇门接口gy.erp.trade.deliverys.get来获取最新的发货单信息,并使用金蝶云星空API batchSave将这些信息导入到金蝶系统中。这一过程面临以下几个技术挑战:

  1. 高效的数据抓取与写入:面对大量订单数据,需要确保快速从管易获取并实时写入到金蝶。
  2. 分页和限流管理:管控API请求频率,避免超载及提供稳定性。
  3. 异常检测和处理机制:保证在出现问题时能及时发现并解决,提供一个可靠的数据传输渠道。

集成实施方案概述

我们采用了定时任务机制,通过定期调用gy.erp.trade.deliverys.get接口拉取新生成或更新的发货单数据。在这一过程中,我们配置了一套流式处理Pipeline,支持批量化存储至缓冲区,再通过批量操作接口,将其一次性提交至金蝶系统,有效提升整体性能。

数据抓取与初步转换

首先,通过轻易云内置的可视化工具设计了一个基础数据流,用于周期性调度触发,从管易端获取必要字段。借助轻易云的平台优势,可以清晰看到每一步骤执行情况,有利于监控整个生命周期中的各类可能异常,并以最快速度做出响应调整。

页面限流策略应用

由于API存在请求速率限制,我们应该合理安排页面大小以及重试机制。在这里,可以利用模块自带的一些高级功能,例如动态参数设置和自动分页功能,对不同页面进行动态请求,将结果拼接后统一处理,大大提高工作效率,同时也避免了因频繁访问而导致的封禁风险。

以上步骤确保我们可以从根本上保证完整准确抓取源头数据,为之后复杂的逻辑转换打下坚实基础。接下来会详细讲解如何进一步完成转化、映射及错误容错等关键细节。 企业微信与ERP系统接口开发配置

管易云·奇门接口gy.erp.trade.deliverys.get的调用与数据加工

在数据集成生命周期的第一步中,调用源系统接口获取并加工数据是至关重要的一环。本文将深入探讨如何通过轻易云数据集成平台调用管易云·奇门接口gy.erp.trade.deliverys.get,并对获取的数据进行有效的加工处理。

接口调用配置

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

  • API: gy.erp.trade.deliverys.get
  • 请求方法: POST
  • 分页设置: 每页50条记录
  • ID字段: code
  • 格式化响应: 将delivery_statusInfo.delivery_date字段格式化为delivery_date_new

请求参数配置

为了确保我们能够准确地获取所需的数据,需要设置一系列请求参数。这些参数包括创建时间、发货时间、修改时间等。以下是详细的请求参数配置:

{
  "request": [
    {"field": "start_create", "label": "创建时间开始段", "type": "string"},
    {"field": "end_create", "label": "创建时间结束段", "type": "string"},
    {"field": "start_delivery_date", "label": "发货时间开始段", "type": "string", "value": "{{LAST_SYNC_TIME|datetime}}"},
    {"field": "end_delivery_date", "label": "发货时间结束段", "type": "string", "value": "{{CURRENT_TIME|datetime}}"},
    {"field": "start_modify_date", "label": "修改时间开始段", "type": "string"},
    {"field": "end_modify_date", "label": "修改时间结束段", "type": "string"},
    {"field": "del", "label": "返回是否作废的单据", "type": "string"},
    {"field": "delivery", "label": "发货状态", "type":"string","value":"1"},
    {"field":"code","label":"单据编号","type":"string"}
  ],
  ...
}

这些参数确保了我们可以灵活地控制数据提取的范围和条件。例如,通过设置start_delivery_dateend_delivery_date,我们可以限定只获取特定时间段内的发货单据。

数据分页处理

为了处理大量数据,分页机制是必不可少的。我们在元数据中定义了分页大小为30条记录,并通过以下配置实现分页:

{
  ...
  “otherRequest”: [
    {"field":"page_size","label":"分页大小","type":"string","value":"30"},
    {"field":"page_no","label":"页号","type":"string"}
  ]
}

在实际调用过程中,需要动态调整page_no以遍历所有页面的数据。

数据格式化与转换

在获取到原始数据后,需要对部分字段进行格式化处理。例如,将原始响应中的delivery_statusInfo.delivery_date字段格式化为新的字段名delivery_date_new,并转换其日期格式:

{
  ...
  “formatResponse”: [
    {"old":"delivery_statusInfo.delivery_date","new":"delivery_date_new","format":"date"}
  ]
}

这种格式化操作不仅提升了数据的一致性,还简化了后续的数据处理步骤。

异常处理与补偿机制

在实际操作中,可能会遇到网络波动或系统故障导致的数据丢失问题。为此,我们配置了补偿机制,通过定时任务(crontab)定期重新拉取前一天的数据,以确保数据完整性:

{
  ...
  “omissionRemedy”: {
    “crontab”: “20 0 * * *”,
    “takeOverRequest”: [
      {
        “field”: “start_delivery_date”,
        “label”: “发货时间结束段”,
        “type”: “string”,
        “value”: “{{DAYS_AGO_1|datetime}}”
      },
      {
        “field”: “end_delivery_date”,
        “value”: “{{LAST_SYNC_TIME|datetime}}”,
        “type”: “string”
      }
    ]
  }
}

通过这种方式,可以有效地弥补由于各种原因导致的数据缺失问题。

条件过滤与业务逻辑

最后,为了满足特定业务需求,我们可以在元数据中定义条件过滤。例如,仅同步线上买赠订单类型的销售出库单:

{
  ...
  “condition_bk”: [
    [{"field":"details.order_type","logic":"eqv2","value":"gift"}]
  ],
  ...
}

这种条件过滤确保了我们只提取符合业务逻辑的数据,从而提高了数据处理效率和准确性。

综上所述,通过合理配置元数据和请求参数,并结合分页、格式化、异常处理等机制,可以高效地调用管易云·奇门接口获取并加工所需的数据,为后续的数据转换与写入打下坚实基础。 如何对接用友BIP接口

轻易云数据集成平台ETL转换至金蝶云星空API接口

在数据集成的生命周期中,将源平台的数据转换为目标平台可接收的格式是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台,将管易销售发货单的数据转换为金蝶云星空API接口所能接收的销售出库单格式,并最终写入目标平台。

API接口配置与元数据解析

在本案例中,我们使用的是金蝶云星空的batchSave API接口。以下是具体的元数据配置及其解析:

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

数据字段解析与转换

  1. 单据类型(FBillTypeID)

    • 配置:"value":"XSCKD09_SYS"
    • 转换:使用ConvertObjectParser将值转换为目标系统所需的格式。
  2. 日期(FDate)

    • 配置:"value":"{{delivery_statusInfo.delivery_date}}"
    • 转换:直接从源数据中的delivery_date字段获取并填充。
  3. 发货组织(FStockOrgId)销售组织(FSaleOrgId)

    • 配置:根据不同的shop_code进行条件判断。
    • 转换:使用SQL CASE语句实现多种条件下的值映射。
  4. 客户(FCustomerID)

    • 配置:通过查找集合 _findCollection find FNumber from dc704b79-f3da-309a-9d2d-88456a5cbcd9 where F_352_waibuma={shop_code}
    • 转换:根据shop_code查找对应的客户编号。
  5. 货主类型(FOwnerTypeIdHead)货主(FOwnerIdHead)

    • 配置:固定值 BD_OwnerOrg
    • 转换:同样使用SQL CASE语句进行多条件值映射。
  6. 平台单号、销售订单单号、销售发货单号、OMS单号等字段:

    • 配置:直接映射源数据中的相应字段,如 {platform_code}, {{details.trade_code}}, {code} 等。
  7. 财务信息(SubHeadEntity)

    • 包含结算组织和结算币别。
    • 配置和转换类似于前述组织字段,使用SQL CASE语句和固定值映射。
  8. 明细信息(FEntity)

    • 包含物料编码、库存单位、仓库、实发数量等子字段。
    • 转换:通过 _findCollection 查找对应物料编码和库存单位,并计算含税单价 {{details.amount_after}}/{{details.qty}}.
  9. 物流明细信息(FOutStockTrace)

    • 包含物流公司、物流单号、寄件人手机号等子字段。
    • 转换:使用 ConvertObjectParser 和字符串函数如 RIGHT() 实现所需格式。

操作配置

在操作部分,我们定义了业务对象表单ID、执行操作、是否提交并审核等参数:

{
  ...
  "otherRequest":[
    {"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"SAL_OUTSTOCK"},
    {"field":"Operation","label":"执行的操作","type":"string","describe":"执行的操作","value":"Save"},
    {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","describe":"提交并审核","value":"true"},
    {"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"true"},
    {"field":"SubSystemId","label":"系统模块","type":"string","describe":"默认仓库模块","value":"21"},
    {"field":"InterationFlags","label":"允许负库存","type":"string","describe":"允许负库存","value":"STK_InvCheckResult"}
  ],
  ...
}

这些配置确保了在将数据写入目标平台时,能够自动提交并审核,同时验证基础资料的有效性,避免因数据不一致导致的问题。

实际应用与监控

在实际应用中,通过轻易云数据集成平台,我们可以实时监控整个ETL过程,确保每个环节的数据处理状态清晰可见。这不仅提升了业务透明度,还大大提高了效率,使得跨系统的数据集成变得更加顺畅无缝。

通过上述步骤,我们成功地将管易销售发货单的数据转换为金蝶云星空API接口所能接收的格式,并顺利写入目标平台,实现了跨系统的数据无缝对接。 如何对接企业微信API接口

更多系统对接方案