ETL技术:将源平台数据转换为旺店通标准格式并写入

  • 轻易云集成顾问-黄宏棵

用友U8数据集成到旺店通·企业奇门的技术案例分享

在本案例中,我们将探讨如何通过轻易云数据集成平台,实现用友U8系统的数据无缝对接到旺店通·企业奇门(以下简称“WDT”),具体方案名称为:“K u8其他入库(所有类型)->其他入库”。这个过程涉及多项关键技术,包括API接口调用、分页处理、数据格式转换及异常处理。

数据获取与分类——调用用友U8接口

首先,确保从用友U8系统准确地抓取所需的“其他入库”类型数据。使用/apilink/u8api接口可以有效解决这一问题,通过定时任务可靠触发,避免漏单现象。在实际操作中,我们需要重点考虑分页和限流的问题,以防止大量请求导致系统性能下降或超时错误。

POST /apilink/u8api
Host: yourserver.com
Content-Type: application/json

{
   "type": "other_storage",
   "date_range": {
      "start": "2023-01-01",
      "end": "2023-10-31"
   },
   ...
}

数据快速写入WDT——批量集成

成功获取数据后,需要将其写入到WDT中的库存订单表。利用wdt.vip.wms.stockinout.order.push API实现这一目标。同样,为了提升效率,大量数据需要批量写入,同时保证每条记录都能被正确处理,没有遗漏。

POST wdt.vip.wms.stockinout.order.push
Host: api.wangdiantong.com
Content-Type: application/json

{
    ...
    // 批量订单列表字段设置,
    ...
}

解决兼容性挑战——格式差异与映射对接

由于两个系统的数据格式存在一定差异,在进行转换和映射时特别重要。在这一步骤中,需要借助轻易云的定制化工具进行精细化配置,从而适应不同业务需求。同时,实时监控和日志记录有助于及时发现并修正潜在问题,确保整个流程透明可追溯。

异常处理机制与重试策略设定

为了提高系统稳定性和健壮性,对可能出现的异常情况进行识别并设计相应的重试机制十分必要。例如,当某一记录推送失败时,可以自动重新尝试发送特定次数,并且生成详细日志以供进一步分析。这不仅降低了人工干预成本,还显著提升了整体工作效率。

以上步骤简要描述了用友U8至WDT的数据集成过程核心环节。下一部分将深入探讨每个环节 金蝶与CRM系统接口开发配置

用友U8接口调用与数据加工技术案例

在轻易云数据集成平台中,调用用友U8接口获取并加工数据是生命周期的第一步。本文将详细探讨如何通过配置元数据来实现这一过程。

接口调用配置

首先,我们需要配置用友U8接口的调用参数。根据提供的元数据配置,我们使用/apilink/u8api作为API路径,并采用POST方法进行请求。以下是具体的请求参数配置:

{
  "api": "/apilink/u8api",
  "effect": "QUERY",
  "method": "POST",
  "number": "cbuscode",
  "id": "ccode",
  "name": "id",
  "idCheck": true,
  "request": [
    {
      "field": "data",
      "label": "消息体参数",
      "type": "object",
      "children": [
        {
          "field": "过滤条件_1",
          "label": "开始时间",
          "type": "object",
          "children": [
            {
              "field": "名称",
              "label": "字段",
              "type": "string",
              "value": "dnverifytime"
            },
            {
              "field": "比较符号",
              "label": "大于等于",
              "type": "string",
              "value": ">="
            },
            {
              "field": "值",
              "label": "",
              'type': 'string',
              'value': '{{LAST_SYNC_TIME|datetime}}'
            }
          ]
        },
        {
          'field': '过滤条件_2',
          'label': '指定仓库',
          'type': 'object',
          'children': [
            {
              'field': '名称',
              'label': '字段',
              'type': 'string',
              'value': 'cwhcode'
            },
            {
              'field': '比较符号',
              'label': '',
              'type': 'string',
              'value': 'in'
            },
            {
              'field': '值',
              'label': '',
              'type': '',
              value: ''
            }
          ]
        },
        {
          field: '',
          label: '',
          type: '',
          children: [

          ]
        }
      ]
    }
  ],
  otherRequest: [
    {
      field: '',
      label: '',
      type: '',
      describe: '',
      value: ''
    }
  ],
  autoFillResponse: true,
}

数据请求与清洗

在数据请求阶段,我们需要确保请求参数的准确性和完整性。元数据中的data字段包含了消息体参数,其中包括两个主要过滤条件:开始时间和指定仓库。

  • 开始时间过滤条件:通过dnverifytime字段进行过滤,使用大于等于符号(>=)来筛选从上次同步时间({{LAST_SYNC_TIME|datetime}})之后的数据。
  • 指定仓库过滤条件:通过cwhcode字段进行过滤,使用in操作符来筛选特定仓库编号的数据(10,32,12,03)。

此外,还需要设置分页参数以控制每次请求的数据量和页码:

{
  field: apicontext,
  label: 分页参数,
  type: object,
  children: [
    {
      field: pagesize,
      label: 分页大小,
      type: string,
      value: ''
    },
    {
      field: pageindex,
      label: 页码,
      type: string,
      value: ''
    }
  ]
}

数据转换与写入

在获取到原始数据后,需要对其进行转换和清洗,以符合目标系统的要求。轻易云平台提供了自动填充响应(autoFillResponse)的功能,可以简化这一过程。

例如,对于其他入库类型的数据,我们可以通过以下方式进行处理:

  1. 解析响应数据:提取所需字段,如单据编号(cbuscode)、单据日期、仓库编码等。
  2. 数据转换:将原始数据格式转换为目标系统所需的格式。例如,将日期格式从YYYY-MM-DD转换为YYYYMMDD。
  3. 写入目标系统:将清洗后的数据写入目标系统,通过API接口或数据库连接实现。

技术要点总结

  • 接口路径与方法:确保API路径为/apilink/u8api,并使用POST方法。
  • 消息体参数配置:根据业务需求设置过滤条件和分页参数,确保请求的数据准确性。
  • 自动填充响应:利用平台提供的自动填充功能,简化数据转换和写入过程。

通过以上步骤,我们可以高效地调用用友U8接口获取并加工数据,为后续的数据集成奠定基础。在实际应用中,根据具体业务需求调整元数据配置,可以进一步提升集成效率和准确性。 金蝶与WMS系统接口开发配置

使用轻易云数据集成平台将源平台数据转换为旺店通·企业奇门API格式并写入目标平台

在数据集成的生命周期中,ETL(提取、转换、加载)过程是至关重要的一环。本文将深入探讨如何利用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并转为旺店通·企业奇门API接口所能接收的格式,最终写入目标平台。

API接口配置与请求格式

首先,我们需要了解旺店通·企业奇门API接口的具体配置和请求格式。根据提供的元数据配置,接口wdt.vip.wms.stockinout.order.push使用POST方法来推送数据。以下是该接口的主要字段及其描述:

  • api_outer_no: 接口外部单号,唯一标识推送的单据编号。
  • warehouse_no: 仓库编号,用于区分不同仓库。
  • order_type: 出入类型,此处固定为"2"表示入库。
  • logistics_fee, other_fee: 分别表示物流费用和其他费用。
  • province, city, district, address: 地址相关信息。
  • contact, mobile: 联系人信息。
  • remark: 备注信息,结合了多个源字段。
  • auto_check: 自动审核选项,默认为"1"。
  • goods_list: 货品明细节点,包括spec_no(商家编码)、num(入库数量)等子字段。

数据转换与映射

在进行数据转换时,需要将源平台的数据字段映射到目标平台所需的字段。例如:

{
  "api_outer_no": "{ccode}",
  "warehouse_no": "{cwhcode}",
  "order_type": "2",
  "logistics_fee": "0",
  "other_fee": "",
  "province": "",
  "city": "",
  "district": "",
  "address": "",
  "contact": "{chandler}",
  "mobile": "",
  "remark": "{cmemo}-{cbuscode}-",
  "auto_check": "1",
  "goods_list": [
    {
      "spec_no": "{{body.cinvcode}}",
      "num": "{{body.iquantity}}",
      "position_no": "",
      "price": "",
      "batch_no": "",
      "remark": ""
    }
  ],
  "prop1": "{cbuscode}",
  "prop2": "{cdepname}",
  "prop3": "_function case when '{crdcode}'='101' then '外部采购' when '{crdcode}'='102' then '普通采购' when '{crdcode}'='103' then '采购获赠' when '{crdcode}'='104' then '调拨入库' when '{crdcode}'='105' then '客户返修(旧)' when '{crdcode}'='106' then '盘盈入库' when '{crdcode}'='107' then '组装入库' when '{crdcode} '='108' then '电商换货入库' when '{crdcode}'='109' then '样品借用归还' when '{crdcode}'='110' then '客户返修借入' when '{crdcode}'='111' then '委外入库' when '{crdcode}'='112' then '生产入库' \nwhen '{crdcode}'='113' then '拆卸入库' when '{crdcode}'='114' then '形态转换入库' else '' end",
  "prop4": "{ddate}"
}

实际操作步骤

  1. 提取数据:从源系统中提取所需的数据,这一步通常通过SQL查询或API调用实现。提取的数据包括订单编号、仓库编号、联系人信息、货品明细等。

  2. 清洗与预处理:对提取的数据进行清洗和预处理,如去除空值、格式化日期等。这一步确保数据质量和一致性。

  3. 字段映射与转换:根据元数据配置,将源系统的数据字段映射到目标系统所需的字段。例如,将源系统中的订单编号ccode映射到目标系统中的api_outer_no

  4. 构建请求报文:根据映射后的字段构建API请求报文。确保所有必填字段都有相应的值,并且值符合目标系统的要求。

  5. 发送请求并处理响应:使用HTTP POST方法将构建好的请求报文发送到旺店通·企业奇门API接口,并处理响应结果。如果响应成功,则表示数据成功写入目标系统;如果失败,则需要根据错误信息进行调试和修正。

示例代码

以下是一个简单的Python示例代码,展示如何构建并发送API请求:

import requests
import json

# 构建请求报文
payload = {
    "api_outer_no": ccode,
    "warehouse_no": cwhcode,
    # ...其他字段
    "goods_list":[
        {
            "spec_no": body_cinvcode,
            # ...其他子字段
        }
    ]
}

# 设置请求头
headers = {
    'Content-Type': 'application/json'
}

# 发起POST请求
response = requests.post('https://api.wangdiantong.com/wdt/vip/wms/stockinout/order/push', headers=headers, data=json.dumps(payload))

# 检查响应状态
if response.status_code == 200:
    print("Data successfully pushed to Wangdiantong API")
else:
    print(f"Failed to push data: {response.text}")

通过以上步骤,我们可以实现将源平台的数据经过ETL转换后,成功写入到旺店通·企业奇门API接口中。这不仅提高了数据处理效率,还确保了各系统间的数据一致性和准确性。 打通金蝶云星空数据接口

更多系统对接方案