轻易云平台的ETL转换及数据写入到管易云的实战解析

  • 轻易云集成顾问-蔡威

案例分享:金蝶云星空数据集成到管易云

在系统集成项目中,来自不同平台的数据对接往往是一个复杂且具有挑战性的任务。本文将深入探讨如何通过轻易云数据集成平台,将金蝶云星空中的“其他出库”数据高效、准确地导入到管易云,并分享实现过程中一些关键的技术细节与经验。

确保集成金蝶云星空数据不漏单

为了保证从金蝶云星空获取的数据不出现遗漏,我们使用了executeBillQuery API接口。这一接口能够实时查询并返回符合条件的出库单信息。在调用该接口时,我们设置了严格的时间戳和状态过滤条件,以确保每次抓取到最新、完整的数据。此外,通过定期检查日志与分析报表,对比源系统和目标系统中的单据数量及明细,进一步验证数据的一致性。

处理分页和限流问题

由于金蝶云星空API本身存在分页限制,在实际调用过程中若一次请求获取的数据量过大,容易导致超时或错误。因此,我们设计了自动分页抓取机制,每次只请求一个合理页数内的数据,并动态调整分页大小以适应实际流量。同时,为避免触发限流策略,每个请求间设置了合适的时间间隔,并在必要时加入重试逻辑,以确保所有需要的信息均能成功获取。

批量写入到管易云

从金蝶云星空成功获取并处理后的“其他出库”数据,需要快速、大批量地写入至管易云。我们使用gy.erp.stock.other.out.add这个API进行批量操作。为了提升写入效率,减少网络带来的延迟影响,在发送前进行了数据打包处理,使每次传输包含多个记录。另外,还针对可能发生的异常情况,如网络抖动或服务宕机等,通过实现自动重试机制来保证最终一致性和可靠性。

以上只是整体方案的一部分技术剖析,下文将详细介绍如何逐步配置元数据,实现上述特性的具体步骤与代码示例。 金蝶与MES系统接口开发配置

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

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台调用金蝶云星空的executeBillQuery接口来获取并加工数据。

接口配置与请求参数

首先,我们需要了解executeBillQuery接口的基本配置和请求参数。根据提供的元数据配置,接口采用POST方法,主要用于查询(QUERY)操作。以下是主要的请求参数及其描述:

  • FEntity_FEntryID: 分录ID
  • FID: 实体主键
  • FBillNo: 单据编号
  • FDocumentStatus: 单据状态
  • FStockOrgId_FNumber: 库存组织
  • FDate: 日期
  • FBillTypeID: 单据类型
  • FNOTE: 备注
  • FMATERIALID_FNumber: 物料编码
  • FSTOCKID: 发货仓库
  • FQty: 实收数量
  • FPrice: 成本价
  • FAmount: 总成本
  • FBOMID: BOM版本
  • FPRODUCEDATE: 生产日期
  • FEXPIRYDATE: 有效期至
  • FMTONO: 计划跟踪号
  • FProjectNo: 项目编号
  • FSTOCKSTATUSID: 库存状态
  • FOWNERID: 货主
  • FSTOCKFLAG: 库存更新标志
  • FJoinQty: 关联数量
  • FSRCBILLTYPEID: 源单类型
  • FSRCBILLNO: 源单编号

此外,还有一些分页和过滤相关的参数,如LimitStartRowTopRowCountFilterString等。

请求示例

为了更好地理解如何调用该接口,我们来看一个具体的请求示例。假设我们需要查询最近一次同步时间之后的所有出库单,分页大小为100行,从第0行开始:

{
    "FormId": "STK_MisDelivery",
    "FieldKeys": "FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID,FNOTE,FMATERIALID.FNumber,FSTOCKID.FNumber,FQty,FPrice,FAmount,FBOMID,FPRODUCEDATE,FEXPIRYDATE,FMTONO,FProjectNo,FSTOCKSTATUSID,FOWNERID,FSTOCKFLAG,FJoinQty,FSRCBILLTYPEID,FSRCBILLNO",
    "FilterString": "FApproveDate>='2023-01-01T00:00:00'",
    "Limit": "100",
    "StartRow": "0"
}

数据处理与清洗

在获取到原始数据后,我们需要对数据进行清洗和加工,以便后续的数据转换与写入。以下是一些常见的数据清洗操作:

  1. 字段映射与重命名 将金蝶云返回的数据字段映射到目标系统所需的字段名称。例如,将FBillNo映射为目标系统中的订单编号。

  2. 数据格式转换 将日期格式从金蝶云的格式转换为目标系统所需的格式。例如,将2023-01-01T00:00:00转换为2023/01/01 00:00.

  3. 缺失值处理 对于某些必填字段,如果存在缺失值,需要进行填充或默认值处理。例如,如果某条记录的备注字段为空,可以填充默认备注信息。

  4. 数据过滤 根据业务需求,对不符合条件的数据进行过滤。例如,只保留单据状态为已审核的数据。

实际案例应用

假设我们需要将金蝶云中的出库单数据集成到管易系统中。在轻易云平台上,我们可以通过以下步骤实现:

  1. 配置API调用: 在轻易云平台上配置调用金蝶云星空接口的API,设置请求参数和过滤条件。

  2. 数据清洗: 使用轻易云平台提供的数据清洗工具,对返回的数据进行字段映射、格式转换和缺失值处理。

  3. 数据写入: 将清洗后的数据通过轻易云平台写入到管易系统中,确保数据的一致性和完整性。

通过以上步骤,我们可以高效地实现从金蝶云星空到管易系统的数据集成,确保业务流程的顺畅运行。 钉钉与MES系统接口开发配置

轻易云数据集成平台:ETL转换与管易云API接口写入

在轻易云数据集成平台的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台(管易云)API接口所能够接收的格式,最终写入目标平台。以下是详细的技术实现过程。

数据请求与清洗

在进行数据转换之前,首先需要从源系统(金蝶)请求并清洗数据。这一步骤确保获取的数据准确无误,并且符合目标系统所需的格式要求。在这里,我们假设已经完成了数据请求与清洗工作,获得了符合要求的原始数据。

数据转换与写入

接下来,我们重点讨论如何将这些清洗后的数据通过ETL转换为管易云API接口所能接收的格式,并最终写入目标系统。以下是具体步骤:

  1. 定义元数据配置

    根据提供的元数据配置,我们需要将金蝶系统中的字段映射到管易云API接口对应的字段。以下是元数据配置示例:

    
    {
     "api": "gy.erp.stock.other.out.add",
     "effect": "EXECUTE",
     "method": "POST",
     "idCheck": true,
     "request": [
       {"field": "warehouse_code", "label": "warehouse_code", "type": "string", "describe": "111", "value": "{FSTOCKID}"},
       {"field": "note", "label": "note", "type": "string", "describe": "111", "value": "{FNOTE}"},
       {"field": "details", "label": "details", "type": "array", "describe": "111", "value":"details"},
       {"field": "item_code", "label": "item_code", 
    ![如何对接企业微信API接口](https://pic.qeasy.cloud/T7.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案