ETL流程解析:从聚水潭到金蝶云星空的数据转换与加载

  • 轻易云集成顾问-杨嫦

聚水潭数据集成到金蝶云星空:一个系统对接案例分享

在企业的日常运营中,确保各个业务系统之间的数据准确、及时地同步是保障业务连续性和高效运作的关键步骤。本文将重点分享如何通过轻易云数据集成平台,实现聚水潭其他入库单数据无缝对接到金蝶云星空,通过具体技术细节探讨API接口调用及处理方法。

本案例方案名为“聚水潭其他入库单对接金蝶其他入库单ok”,核心任务是实现从聚水潭获取数据并写入到金蝶云星空。首先,我们需要调用聚水潭提供的other.inout.query接口来抓取所需的供货商入库单信息,这一过程中需要特别注意分页和限流问题,以避免因请求过多导致接口不可用或响应超时。在获取完所有相关数据后,我们将利用轻易云的数据转换功能处理不同系统间的数据格式差异,并最终使用金蝶云星空提供的批量保存API (batchSave) 将整合后的数据快速、安全地写入目的数据库中。

为了确保整个流程的可靠性和实时性,定期执行自动化脚本成为必不可少的一环。这不仅可以有效减少漏单现象,还能实时监控每个环节的数据状态。此外,在面对异常情况时,如网络延迟或意外中断等,我们实现了错误重试机制,即在出现故障后可自动重新尝试传输,大大提升了整体集成方案的健壮性。

总之,通过针对性的技术设置与操作规范化,本案例完美展示了一种高效且稳定的数据跨平台同步解决方案,为同类项目实施提供了宝贵经验与参考依据。 钉钉与WMS系统接口开发配置

调用聚水潭接口other.inout.query获取并加工数据

在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用聚水潭的other.inout.query接口来获取并加工数据,为后续的数据转换与写入奠定基础。

接口配置与请求参数

首先,我们需要配置元数据,以便正确调用聚水潭的other.inout.query接口。以下是元数据配置的关键部分:

{
  "api": "other.inout.query",
  "method": "POST",
  "number": "io_id",
  "id": "io_id",
  "pagination": {
    "pageSize": 50
  },
  "idCheck": true,
  "request": [
    {"field":"modified_begin","label":"修改起始时间","type":"string","value":"{{LAST_SYNC_TIME|datetime}}"},
    {"field":"modified_end","label":"修改结束时间","type":"string","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"so_ids","label":"指定线上订单","type":"string"},
    {"field":"types","label":"单据类型","type":"string","describe":"单据类型 :其它退货,其它出库,其它进仓"},
    {"field":"status","label":"单据状态","type":"string","describe":"单据状态,Confirmed=生效,WaitConfirm待审核,Archive=归档,Cancelled=取消","value":"Confirmed"},
    {"field":"page_index","label":"开始页码","type":"string","value":"1"},
    {"field":"page_size","label":"每页行数","type":"string","value":"{PAGINATION_PAGE_SIZE}"}
  ],
  "condition_bk": [
    [{"field": "drop_co_name", "logic": "neq", "value": "销售退货"}, {"field": "type", "logic": "eq", "value": "其它退货"}]
  ],
  "condition":[
    [{"field": "drop_co_name", "logic": "neq", "value": "销售退货"}, {"field": "type", "logic": "eq", "value": "其它退货"}]
  ]
}

请求参数详解

  1. modified_begin 和 modified_end: 用于指定查询的时间范围。通过模板变量{{LAST_SYNC_TIME|datetime}}{{CURRENT_TIME|datetime}}动态生成。
  2. so_ids: 可选参数,用于指定特定的线上订单。
  3. types: 单据类型,包括“其它退货”、“其它出库”、“其它进仓”。
  4. status: 单据状态,默认值为“Confirmed”,表示只查询已生效的单据。
  5. page_index 和 page_size: 分页参数,用于控制每次请求的数据量和分页索引。

数据请求与清洗

在发送请求时,我们需要确保请求参数的正确性和完整性。以下是一个示例请求:

{
  "modified_begin": "<LAST_SYNC_TIME>",
  "modified_end": "<CURRENT_TIME>",
  "status": "Confirmed",
  "page_index": 1,
  "page_size": 50
}

通过上述请求,我们可以获取到符合条件的数据集。在接收到响应后,需要对数据进行初步清洗和过滤。例如,根据业务需求,可以过滤掉“销售退货”的记录,只保留“其它退货”的记录。这一步骤可以通过配置中的条件来实现:

"condition":[
    [{"field": "drop_co_name", "logic": "neq", "value": "销售退货"}, {"field": "type", "logic": "eq", value:="其它退货"}]
]

数据转换与写入准备

在完成数据清洗后,需要对数据进行必要的转换,以便适配目标系统的数据格式。例如,将聚水潭的字段映射到金蝶系统所需的字段,并进行相应的数据格式转换。这一步骤将在生命周期的下一阶段详细处理。

实时监控与日志记录

为了确保数据处理过程的透明度和可追溯性,轻易云平台提供了实时监控和日志记录功能。通过这些功能,可以实时查看数据流动和处理状态,并在出现异常时及时进行排查和修正。

以上内容详细阐述了如何调用聚水潭接口other.inout.query获取并加工数据,为后续的数据转换与写入打下坚实基础。在实际操作中,应根据具体业务需求灵活调整参数配置,以确保数据集成过程顺利高效地进行。 电商OMS与WMS系统接口开发配置

轻易云数据集成平台生命周期第二步:ETL转换与写入金蝶云星空API接口

在数据集成的生命周期中,ETL(提取、转换、加载)是至关重要的一环。本文将深入探讨如何利用轻易云数据集成平台,将源平台聚水潭的其他入库单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

API接口配置与元数据解析

在本案例中,我们使用金蝶云星空的batchSave API接口,通过POST方法提交数据。以下是具体的元数据配置:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{io_id}"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD01_SYS"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
    {"field":"FStockDirect","label":"库存方向","type":"string","describe":"下拉列表","value":"GENERAL"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{io_date}"},
    {"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
    {"field":"FOwnerIdHead","label":"货主","type":"string","describe":"多类别基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
    {"field":"FNOTE","label":"备注","type": "string", "describe": "多行文本", "value": "{remark}"},
    {
      "field": "FEntity",
      "label": "明细信息",
      "type": "array",
      "children": [
        {"field": "FMATERIALID", "label": "物料编码", "type": "string", "describe": "基础资料", 
            "parser":{"name": "ConvertObjectParser", "params": "FNumber"}, 
            "value": "{{batchs.sku_id}}", 
            "parent": "FEntity"
        },
        {"field": "FSTOCKID", 
            "label": 
            "收货仓库", 
            "type":
                "string", 
                "describe":
                    "基础资料", 
                    "parser":
                        {"name":
                            "ConvertObjectParser",
                            "params":
                                "FNumber"
                        },
                        "value":
                            "{wms_co_id}",
                        "parent":
                            "FEntity"
        },
        {
          ...
        }
      ],
      ...
    }
  ],
  ...
}

数据请求与清洗

首先,从聚水潭系统中提取其他入库单的数据。在这个过程中,需要对原始数据进行清洗和预处理,以确保其符合目标系统的数据要求。例如,确保日期格式统一,字符串字段去除多余空格等。

数据转换

接下来,使用轻易云的数据转换功能,将清洗后的数据映射到金蝶云星空API所需的格式。以下是关键字段的转换规则:

  • FBillNo(单据编号):直接映射自聚水潭系统中的io_id
  • FBillTypeID(单据类型):固定值为QTRKD01_SYS,并通过ConvertObjectParser解析为金蝶系统可识别的对象。
  • FStockOrgId(库存组织):固定值为100,同样需要通过解析器进行转换。
  • FDate(日期):映射自聚水潭系统中的io_date
  • FOwnerTypeIdHead(货主类型)FOwnerIdHead(货主):分别固定值为BD_OwnerOrg100

对于明细信息字段,需要特别注意数组结构的处理:

  • FMATERIALID(物料编码):从批次信息中的sku_id字段映射,并通过解析器进行转换。
  • FSTOCKID(收货仓库):从批次信息中的wms_co_id字段映射,并通过解析器进行转换。
  • 其他字段:如生产日期、有效期至、实收数量等,都需要从批次信息中提取相应字段并进行映射。

数据写入

完成数据转换后,通过POST请求将处理好的数据提交到金蝶云星空的API接口。以下是一个示例请求体:

{
  ...
  {
    FBillNo: '20231010',
    FBillTypeID: { FNumber: 'QTRKD01_SYS' },
    FStockOrgId: { FNumber: '100' },
    FStockDirect: 'GENERAL',
    FDate: '2023-10-10',
    FOwnerTypeIdHead: 'BD_OwnerOrg',
    FOwnerIdHead: { FNumber: '100' },
    FNOTE: '备注信息',
    FEntity: [
      {
        FMATERIALID: { FNumber: 'MAT001' },
        FSTOCKID: { FNumber: 'STK001' },
        ...
      }
    ]
  }
}

在实际操作中,还需要考虑错误处理和日志记录,以便在出现问题时能够快速定位和解决。

通过上述步骤,我们实现了从聚水潭系统到金蝶云星空的无缝数据集成,确保了各业务环节的数据一致性和准确性。这不仅提升了业务效率,也为企业决策提供了可靠的数据支持。 数据集成平台API接口配置

更多系统对接方案