ETL过程中的数据转换与聚水潭平台写入指南

  • 轻易云集成顾问-潘裕

畅捷通T+数据集成到聚水潭的技术案例分享:T+进货单【红字】-->聚水潭其他出库单--ikk

在企业日常业务流程中,如何高效、安全地将不同系统的数据进行无缝对接是一个重要课题。本文将重点介绍使用轻易云数据集成平台,实现从畅捷通T+到聚水潭的一次成功系统对接。具体来说,我们将探讨如何配置元数据,将畅捷通T+中的进货单【红字】实时、批量写入聚水潭的其他出库单。

确保集成的准确性与完整性

首先,为了保证从畅捷通T+提取的数据不漏单,我们利用其API接口/tplus/api/v2/PurchaseArrivalOpenApi/FindVoucherList进行定时可靠的数据抓取。这不仅确保了数据获取频率和稳定性,还通过灵活设置参数来实现分页处理,以应对接口限流的问题。

批量高效写入到聚水潭

在完成从畅捷通T+的数据抓取后,下一步是将这些已经格式化好的数据快速、批量地传输并写入到聚水潭。为此,我们调用其开放的API /open/jushuitan/otherinout/upload 实现大规模、高并发的数据导入。在这一过程中,特别注意根据业务需求进行字段映射,以及处理两者之间可能存在的数据格式差异。

异常与日志管理

为了提高整个数据流动过程中的透明度与可靠性,对异常处理机制及日志记录进行了专门设计。一旦出现意外错误或网络波动导致写入失败,将触发重试机制,并详细记录每个环节的状态信息,从而便于问题追溯和解决。

本文所述方案借助轻易云强大的生命周期管理特性,通过全透明可视化界面提供清晰直观的数据监控,有效提升了业务效率。以下我们将深入讨论各步骤中的技术细节以及对应代码示例。

如何对接钉钉API接口

调用畅捷通T+接口获取并加工数据的技术案例

在数据集成过程中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台调用畅捷通T+接口/tplus/api/v2/PurchaseArrivalOpenApi/FindVoucherList来获取进货单【红字】的数据,并进行初步加工。

接口配置与请求参数

首先,我们需要配置接口的元数据,以便正确调用畅捷通T+的API。以下是元数据配置的详细信息:

{
  "api": "/tplus/api/v2/PurchaseArrivalOpenApi/FindVoucherList",
  "effect": "QUERY",
  "method": "POST",
  "number": "Code",
  "id": "Code",
  "idCheck": true,
  "request": [
    {"field":"selectFields","label":"查询字段","type":"string","describe":"部门编码","value":"VoucherCode"},
    {"field":"pageIndex","label":"pageIndex","type":"string","describe":"部门名称"},
    {"field":"pageSize","label":"pageSize","type":"string","describe":"指定返回字段","value":"10"},
    {
      "field":"paramDic_1",
      "label":"paramDic参数",
      "type":"object",
      "describe":"上级部门",
      "children":[
        {"field":"key","label":"业务类型","type":"string","describe":"上级部门编码","value":"PurchaseArrival__BusinessType__Code"},
        {"field":"value","label":"value","type":"string","describe":"上级部门名称","value":"02,02"}
      ]
    },
    {
      "field":"paramDic_2",
      "label":"paramDic_2",
      "type":"object",
      "children":[
        {"field":"key","label":"单据状态","type":"string","value":"PurchaseArrival__VoucherState"},
        {"field":"value","label":"value","type":"string","value":"01,01"}
      ]
    },
    {
      "field":"paramDic_3",
      "label":"paramDic_3",
      "type":"object",
      "children":[
        {"field":"key","label":"单据日期","type":"string","value":"PurchaseArrival__VoucherDate"},
        {"field":"value","label":"","type":"","value":"'{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}'"}
      ]
    }
  ],
  "otherRequest": [
    {"field": "detailkey1", "label": "detailkey1", "type": "string", "value": "voucherCode"},
    {"field": "detailkey2", "label": "", "type": "", value: ""},
    {"field": "", label: "", type: "", value: ""},
    {"field": "", label: "", type: "", value: ""}
  ],
  autoFillResponse: true
}

请求参数解析

  1. selectFields:指定要查询的字段,这里我们选择了VoucherCode
  2. pageIndexpageSize:用于分页查询,分别表示当前页码和每页返回的数据条数。
  3. paramDic_1paramDic_2paramDic_3:这些是复杂的对象参数,用于进一步筛选数据。
    • paramDic_1:业务类型,值为02,02
    • paramDic_2:单据状态,值为01,01
    • paramDic_3:单据日期,动态值为上次同步时间到当前时间。

数据请求与清洗

通过上述配置,我们可以发送POST请求到畅捷通T+接口以获取所需的进货单【红字】数据。以下是一个示例请求体:

{
  selectFields: 'VoucherCode',
  pageIndex: '1',
  pageSize: '10',
  paramDic_1: { key: 'PurchaseArrival__BusinessType__Code', value: '02,02' },
  paramDic_2: { key: 'PurchaseArrival__VoucherState', value: '01,01' },
  paramDic_3: { key: 'PurchaseArrival__VoucherDate', value: '{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}' }
}

在接收到响应后,我们需要对数据进行初步清洗和加工,以确保其符合后续处理步骤的要求。这包括但不限于:

  • 数据格式转换
  • 字段重命名或删除无用字段
  • 数据校验和过滤

实际应用案例

假设我们从接口中获取到以下原始数据:

{
  data:[
    {
      VoucherCode:'VC001',
      BusinessType:'02',
      VoucherState:'01',
      VoucherDate:'2023-10-01'
    },
    ...
  ]
}

我们可以通过轻易云平台提供的数据清洗工具,对这些数据进行处理。例如,将VoucherDate字段格式化为标准日期格式,或根据业务需求筛选出特定状态的数据。

{
  data:[
    {
      VoucherCode:'VC001',
      BusinessType:'02',
      VoucherState:'已审核',
      VoucherDate:'2023-10-01'
    },
    ...
  ]
}

通过上述步骤,我们完成了从畅捷通T+接口获取进货单【红字】数据并进行初步加工,为后续的数据转换与写入奠定了基础。

这种方法不仅提高了数据处理效率,还确保了数据的一致性和准确性,为企业实现多系统间的数据无缝对接提供了强有力的支持。 钉钉与CRM系统接口开发配置

轻易云数据集成平台ETL转换与写入目标平台的技术案例

在轻易云数据集成平台的生命周期中,ETL(Extract, Transform, Load)过程是关键步骤之一。本文将深入探讨如何将已经集成的源平台数据进行ETL转换,并转为目标平台聚水潭API接口所能够接收的格式,最终写入目标平台。

API接口配置

元数据配置如下:

{
  "api": "/open/jushuitan/otherinout/upload",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "is_confirm", "label": "是否确认单据", "type": "string", "value": "1"},
    {"field": "excute_confirming", "label": "是否审核单据", "type": "string", "value": "true"},
    {"field": "warehouse", "label": "仓库编号", "type": "int", 
     "value": "_function case '{{Warehouse.Code}}' when '2' then '4' else '1' end"},
    {"field": "type", "label": "出入库类型", "type": "string", 
     "value": "_function case '{{Type}}' when 'out' then '出库' else '入库' end"},
    {"field": "external_id", "label": "外部单号", 
     "type": "string", 
     "value":"{Code}"},
    {"field":"remark","label":"备注","type":"string","value":"{Memo}"},
    {"field":"items","label":"items","type":"array","value":"Details",
     children:[
       {"field":"sku_id","label":"商品编码","type":"string","value":"{{Details.Inventory.Code}}"},
       {"field":"qty","label":"入库数量","type":"string","value":"_function ({{Details.Quantity}}*-1)"},
       {"field":"sale_price","label":"单价","type":"bool","value":"{{Details.OrigTaxPrice}}"}
     ]}
  ]
}

数据请求与清洗

首先,我们需要从源平台获取原始数据并进行清洗。假设我们从T+系统获取进货单【红字】的数据,这些数据可能包含多种格式和类型的信息。通过轻易云的数据清洗功能,可以将这些原始数据标准化,确保其符合后续处理的要求。

数据转换与映射

接下来,我们需要将清洗后的数据进行转换,以符合聚水潭API接口的格式要求。以下是关键字段的映射和转换逻辑:

  • 是否确认单据(is_confirm): 固定值"1",表示确认单据。
  • 是否审核单据(excute_confirming): 固定值"true",表示审核单据。
  • 仓库编号(warehouse): 使用条件判断,根据Warehouse.Code字段值进行映射。如果Warehouse.Code为"2",则映射为"4",否则映射为"1"。
  • 出入库类型(type): 根据Type字段值进行映射,如果Type为"out",则映射为“出库”,否则映射为“入库”。
  • 外部单号(external_id): 映射自源数据中的Code字段。
  • 备注(remark): 映射自源数据中的Memo字段。
  • 商品明细(items): 是一个数组,每个元素包含以下子字段:
    • 商品编码(sku_id): 映射自Details.Inventory.Code字段。
    • 入库数量(qty): 将数量乘以-1,以表示红字进货单的负数数量。
    • 单价(sale_price): 映射自Details.OrigTaxPrice字段。

数据写入目标平台

完成上述转换后,我们使用POST方法调用聚水潭的API接口,将处理后的数据发送到目标平台。以下是一个示例请求体:

{
  "is_confirm": "1",
  "excute_confirming": true,
  "warehouse": 4,
  "type": out,
  ...
}

通过这种方式,轻易云数据集成平台实现了从源系统到目标系统的数据无缝对接,确保了各环节的数据准确性和一致性。 钉钉与MES系统接口开发配置

更多系统对接方案