轻易云平台的ETL转换:从聚水潭到金蝶云星辰V2

  • 轻易云集成顾问-杨嫦

聚水潭数据集成到金蝶云星辰V2的技术实现:调拨单对接其他出库单【调拨出库】

在本文中,我们将探讨如何通过轻易云数据集成平台,实现聚水潭中的调拨单快速、可靠地集成至金蝶云星辰V2的其他出库单。该实施方案不仅利用了高吞吐量的数据写入能力,还确保了每一批次数据都能精准且高效地传输。

高吞吐量与实时监控:应对海量数据

首先,针对大规模的数据处理需求,使用轻易云提供的平台,可以显著提高从聚水潭系统获取和处理调拨单数据的时效性。我们通过调用聚水潭API /open/allocate/query 定期抓取最新的调拨单信息,并解决接口分页和限流问题,以此保证不会出现漏单现象。此外,通过平台自带的集中监控和告警系统,我们能够实时跟踪所有任务状态,一旦某个环节出现异常,可立即触发告警并进行重试机制补救。

数据转换与映射:适配业务需求

在完成初步的数据抓取后,需要根据特定业务需求,进行必要的数据转换与映射。由于聚水潭和金蝶云星辰V2之间存在数据格式差异,这就要求我们充分利用轻易云提供的可视化数据流设计工具,自定义转换逻辑,将调拨单转化为符合金蝶规定格式的其他出库单。同时,也可以结合金蝶API /jdy/v2/scm/inv_other_out 完成最终的数据写入操作。在这一过程中,有效管理API资产也显得尤为重要,通过统一视图掌握各类API调用情况,提高资源配置效率。

本技术案例旨在呈现一个完整、高效且可扩展的数据集成解决方案,为企业实现跨系统平滑对接提供参考。本节仅介绍主要特点及相应处理方法,具体细节将在后续内容中详细说明。 如何对接金蝶云星空API接口

调用聚水潭接口/open/allocate/query获取并加工数据

在数据集成生命周期的第一步,我们需要调用源系统的API接口来获取原始数据。本文将详细探讨如何通过轻易云数据集成平台调用聚水潭的/open/allocate/query接口,获取调拨单数据并进行初步加工。

接口概述

聚水潭的/open/allocate/query接口用于查询调拨单信息。该接口采用POST请求方式,支持分页查询和多种过滤条件。以下是元数据配置中的关键字段:

  • api: /open/allocate/query
  • method: POST
  • number: io_id
  • id: io_id
  • name: name
  • idCheck: true

请求参数配置

根据元数据配置,我们需要设置以下请求参数:

  1. modified_begin: 修改起始时间,使用模板变量{{DAYS_AGO_1|datetime}}表示一天前的时间。
  2. modified_end: 修改结束时间,使用模板变量{{CURRENT_TIME|datetime}}表示当前时间。
  3. page_index: 第几页,默认值为1。
  4. page_size: 每页多少条记录,默认值为30,最大值为50。
  5. type: 调拨类型,固定值为“调拨出”。
  6. date_type: 时间类型,固定值为2。

请求参数示例如下:

{
  "modified_begin": "{{DAYS_AGO_1|datetime}}",
  "modified_end": "{{CURRENT_TIME|datetime}}",
  "page_index": "1",
  "page_size": "30",
  "type": "调拨出",
  "date_type": "2"
}

条件过滤

为了确保我们获取到的是符合业务需求的数据,需要添加条件过滤。根据元数据配置,我们需要满足以下条件:

  • 状态为“Confirmed”
  • 仓库在指定列表中(如浙江濮院分仓主仓、销退仓等)

条件过滤示例如下:

{
  "condition": [
    {
      "field": "status",
      "logic": "in",
      "value": ["Confirmed"]
    },
    {
      "field": "warehouse",
      "logic": "in",
      "value": ["浙江濮院分仓主仓", "浙江濮院分仓销退仓", ...]
    }
  ]
}

数据请求与清洗

在完成上述配置后,通过轻易云平台发起API请求,并自动填充响应数据。响应的数据将包含多个调拨单记录,每个记录都包含详细的信息,如调拨单号、状态、仓库等。

为了进一步处理这些数据,我们可以进行初步的数据清洗。例如,可以过滤掉不需要的字段,只保留必要的信息,并对某些字段进行格式转换或校验。

清洗后的数据示例如下:

[
  {
    "io_id": "123456",
    "name": "调拨单123456",
    ...
  },
  ...
]

数据转换与写入

在完成数据清洗后,我们可以将这些数据转换成目标系统所需的格式,并写入目标系统。在本案例中,我们需要将清洗后的调拨单数据转换成星辰系统的其他出库单格式,并通过相应的API接口写入星辰系统。

总结来说,通过轻易云平台调用聚水潭的/open/allocate/query接口,可以高效地获取并处理调拨单数据。这一步骤不仅确保了数据的一致性和准确性,还为后续的数据转换与写入奠定了坚实基础。 如何对接企业微信API接口

使用轻易云数据集成平台进行ETL转换并写入金蝶云星辰V2 API接口

在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是关键的一步。本文将详细探讨如何使用轻易云数据集成平台,将源平台的数据转换为目标平台金蝶云星辰V2 API接口所能接收的格式,并最终写入目标平台。

元数据配置解析

元数据配置是实现ETL转换的核心。以下是针对金蝶云星辰V2 API接口的具体元数据配置:

{
  "api": "/jdy/v2/scm/inv_other_out",
  "effect": "EXECUTE",
  "method": "POST",
  "number": "id",
  "id": "id",
  "name": "id",
  "idCheck": true,
  "request": [
    {"field":"bill_date","label":"单据日期","type":"string","describe":"单据日期","value":"{io_date}"},
    {"field":"bill_no","label":"单据编码","type":"string","describe":"单据编码","value":"{io_id}"},
    {"field":"trans_type_id","label":"业务类型id","type":"string","describe":"业务类型id","value":"13"},
    {"field":"custom_field","label":"自定义字段","type":"object","children":[{"field":"custom_field__1__3uapqb6ot43jia","label":"出库类型","type":"string","value":"调拨出库"}]},
    {"field":"operation_key","label":"操作类型","type":"string","describe":"操作类型,审核audit、提交submit","value":"audit"},
    {"field":"remark","label":"备注","type":"string","value":"{remark}"},
    {"field":"material_entity","label":"商品分录","type":"array","describe":"商品分录","value":"items", "children":[
      {"field": "material_id", "label": "商品", "type": "string", "describe": "商品", "value": "_findCollection find id from ac1d70fd-05db-3961-a168-b5617749605e where number={{items.sku_id}}"},
      {"field": "qty", "label": "数量", "type": "string", "describe": "数量", "value": "{{items.qty}}"},
      {"field": "unit_id", "label": "单位", "type": "string", "describe": "单位", "value": "4"},
      {"field": "stock_id", "label": "仓库", "type": "string", "describe": "仓库", "value": "_findCollection find id from f05acc4f-b637-3497-86d3-3ed5423f226a where name={warehouse}"},
      {"field": "cost",     "label" :   "出库成本" ,    "type" :    "string" ,  "value" :   "_findCollection find skus_cost_price from 152f8a9b-100c-34b4-8dd4-3eab4deba9b3 where skus_sku_id={{items.sku_id}}"}
    ]}
  ]
}

数据请求与清洗

在进行ETL转换之前,首先需要从源平台获取原始数据并进行清洗。假设我们从聚水潭系统中提取调拨单数据,该数据可能包含多个字段如io_dateio_idremark以及包含商品信息的items数组。

数据转换

根据上述元数据配置,我们需要将源平台的数据字段映射到目标平台所需的字段格式:

  1. 单据日期(bill_date):直接映射为源数据中的io_date
  2. 单据编码(bill_no):直接映射为源数据中的io_id
  3. 业务类型ID(trans_type_id):固定值为13
  4. 自定义字段(custom_field):嵌套对象,固定值“调拨出库”。
  5. 操作类型(operation_key):固定值“audit”。
  6. 备注(remark):直接映射为源数据中的remark
  7. 商品分录(material_entity):这是一个数组,需要逐项处理每个商品条目:
    • 商品ID(material_id):通过SKU ID在特定集合中查找对应的商品ID。
    • 数量(qty):直接映射为源数据中的数量字段。
    • 单位ID(unit_id):固定值为4
    • 仓库ID(stock_id):通过仓库名称在特定集合中查找对应的仓库ID。
    • 出库成本(cost):通过SKU ID在特定集合中查找对应的成本价格。

数据写入

完成上述转换后,使用POST方法将处理好的JSON对象发送到金蝶云星辰V2 API接口:

{
  'bill_date': '2023-10-01',
  'bill_no': 'DB20231001001',
  'trans_type_id': '13',
  'custom_field': {
    'custom_field__1__3uapqb6ot43jia': '调拨出库'
  },
  'operation_key': 'audit',
  'remark': '这是一个测试备注',
  'material_entity': [
    {
      'material_id': '1234567890abcdef',
      'qty': '10',
      'unit_id': '4',
      'stock_id': 'abcdef1234567890',
      'cost': '100'
    }
    // 更多商品条目...
  ]
}

通过轻易云的数据集成平台,我们可以高效地完成从源平台到目标平台的数据ETL转换和写入过程,实现不同系统间的数据无缝对接。这不仅提高了业务流程的自动化程度,也确保了数据的一致性和准确性。 用友与CRM系统接口开发配置

更多系统对接方案