从金蝶云星辰V2到旺店通的数据转换和写入实践

  • 轻易云集成顾问-贺强

金蝶云星辰V2数据集成到旺店通·企业奇门:采购入库单(委外)

在本文中,我们将探讨如何通过轻易云数据集成平台,实现金蝶云星辰V2的采购入库单(委外)数据高效且可靠地集成至旺店通·企业奇门系统。具体来说,我们关注以下几个关键技术点:

  1. 接口调用与数据获取 通过调用金蝶云星辰V2的API接口 /jdy/v2/scm/pur_inbound,实现对采购入库单原始数据的定时抓取。为确保不漏单和错误重试机制,我们设定了详细的数据抓取策略,以保证每条记录都能被安全传输。

  2. 大批量数据处理与快速写入 面对大量采购入库单数据,我们采用批量处理方式,有效解决分页和限流问题。同时,通过优化并发写入策略,将整理后的多条记录快速推送至旺店通·企业奇门系统对应的API wdt.vip.wms.stockinout.order.push,从而实现高效的数据同步。

  3. 异构格式转换及映射 数据源与目标系统之间存在着格式差异,这需要我们进行兼容性转换。在此过程中,利用灵活的数据映射功能,对各字段进行一一对应,同时检查和调整字段长度、类型等特征,以确保两端系统间的数据统一性。

  4. 实时监控与日志管理 利用平台内置的实时监控和日志记录功能,我们能够随时掌握整个集成过程中的状态变化,以及捕捉可能出现的问题,从而迅速采取必要措施以避免长时间停滞或错误传播。这极大提升了业务透明度和运维效率。

在下一部分内容中,将详细介绍实际操作步骤,包括参数配置、接口调试以及异常处理等重要细节。 如何对接金蝶云星空API接口

调用金蝶云星辰V2接口获取并加工数据

在轻易云数据集成平台中,调用源系统接口是数据处理生命周期的第一步。本文将深入探讨如何通过调用金蝶云星辰V2接口/jdy/v2/scm/pur_inbound来获取采购入库单(委外)数据,并对其进行初步加工。

接口概述

金蝶云星辰V2接口/jdy/v2/scm/pur_inbound用于查询采购入库单信息。该接口采用GET请求方式,支持多种查询参数,能够灵活地筛选所需数据。以下是主要的请求参数及其配置:

  • enable: 可用状态,1表示可用,0表示禁用,-1表示全部。
  • search: 模糊搜索,可以根据名称、编码、规格、条形码进行模糊匹配。
  • parent_id: 商品类别ID,用于筛选特定类别的商品。
  • isdataperm: 数据权限校验,默认值为false。
  • create_start_timecreate_end_time: 创建时间范围,格式为时间戳。
  • modify_start_timemodify_end_time: 修改时间范围,格式为时间戳。
  • pagepage_size: 分页参数,分别表示当前页和每页显示条数。
  • bill_status: 单据状态,此处默认值为C。

请求参数配置

在轻易云数据集成平台中,我们需要配置上述请求参数,以便准确地从金蝶云星辰V2获取所需数据。以下是一个典型的请求参数配置示例:

{
  "enable": "1",
  "search": "",
  "parent_id": "",
  "isdataperm": "false",
  "create_start_time": "-1",
  "create_end_time": "-1",
  "modify_start_time": "_function {LAST_SYNC_TIME}*1000",
  "modify_end_time": "_function {CURRENT_TIME}*1000",
  "page": "1",
  "page_size": "10",
  "bill_status": "C"
}

数据请求与清洗

在发起GET请求后,我们会收到一批原始的采购入库单数据。这些数据可能包含多个字段,其中一些字段可能需要进一步清洗和转换,以便后续处理。轻易云平台提供了自动填充响应(autoFillResponse)功能,可以简化这一过程。

例如,对于返回的数据结构中的物料实体(material_entity),我们可以使用beatFlat功能将其平铺展开,以便更容易地进行后续的数据处理。

数据转换与写入

在完成初步的数据清洗后,我们需要将这些数据转换为目标系统所需的格式,并写入目标数据库或系统。在这一过程中,可以使用轻易云平台提供的数据转换工具,将原始数据映射到目标字段。例如:

{
  "id": "{id}",
  "bill_no": "{bill_no}",
  ...
}

通过这种方式,我们可以确保从金蝶云星辰V2获取的数据能够无缝对接到目标系统中,实现不同系统间的数据集成。

实时监控与调试

为了确保数据集成过程的顺利进行,轻易云平台提供了实时监控和调试工具。通过这些工具,我们可以实时查看数据流动和处理状态,及时发现并解决潜在的问题。例如,在调用金蝶云星辰V2接口时,如果遇到网络延迟或响应错误,可以通过日志和监控界面快速定位问题并进行修复。

综上所述,通过合理配置请求参数、清洗和转换数据,以及利用实时监控工具,我们可以高效地实现从金蝶云星辰V2获取采购入库单(委外)数据,并将其无缝集成到目标系统中。这不仅提高了业务透明度和效率,也为企业的数据管理提供了强有力的支持。 轻易云数据集成平台金蝶集成接口配置

轻易云数据集成平台ETL转换至旺店通·企业奇门API接口

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,转为目标平台旺店通·企业奇门API接口所能够接收的格式,并最终写入目标平台。以下是具体的技术实现案例。

元数据配置解析

元数据配置是整个ETL过程中的关键部分,它定义了如何将源数据转换并映射到目标API接口的字段。我们将详细解析以下元数据配置:

{
  "api": "wdt.vip.wms.stockinout.order.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "bill_no",
    "bodyName": "material_entity",
    "bodySum": ["material_entity_qty"],
    "header": ["material_entity_src_bill_no", "bill_no", "material_entity_stock_number"],
    "body": ["material_entity_material_number", "material_entity_qty", "material_entity_tax_price", "material_entity_comment"]
  },
  "request": [
    {
      "field": "api_outer_no",
      "label": "接口外部单号",
      "type": "string",
      "describe": "调用本接口时推送的唯一单据编号,避免重复推送数据",
      "value": "{bill_no}"
    },
    {
      ...
    }
  ],
  ...
}

数据转换与映射

  1. 请求头部信息映射

    在请求头部信息中,我们需要映射如下字段:

    • api_outer_no: 接口外部单号,对应{bill_no}
    • warehouse_no: 仓库编号,对应{{material_entity.material_entity_stock_number}}
    • order_type: 出入类型,固定值为2表示入库。
    • auto_check: 自动审核,固定值为1表示自动审核。
  2. 请求体信息映射

    请求体信息主要是货品列表节点goods_list,其子字段包括:

    • spec_no: 商家编码,对应{{material_entity.material_entity_material_number}}
    • num: 入库数量,对应{{material_entity.material_entity_qty}}
    • price: 委外出入库货品价格,对应{{material_entity.material_entity_tax_price}}
    • position_no: 货位编号,可以为空或根据ERP配置自动获取。
    • remark: 备注,对应{{material_entity.material_entity_comment}}
    • batch_no: 批次编号,需要传客户端中存在的批次编号。

数据处理逻辑

在处理过程中,我们首先需要从源平台提取原始数据,然后进行清洗和转换,将其格式化为目标API所需的结构。以下是一个示例代码片段,用于展示如何进行这些操作:

import requests
import json

# 假设我们已经从源平台提取了原始数据
source_data = {
    'bill_no': '123456',
    'material_entity': [
        {
            'material_entity_material_number': 'SKU123',
            'material_entity_qty': '100',
            'material_entity_tax_price': '10.00',
            'material_entity_comment': '无'
        }
    ]
}

# 构建目标API请求体
target_data = {
    'api_outer_no': source_data['bill_no'],
    'warehouse_no': source_data['material_entity'][0]['material_entity_stock_number'],
    'order_type': '2',
    'auto_check': '1',
    'goods_list': []
}

for item in source_data['material_entity']:
    goods_item = {
        'spec_no': item['material_entity_material_number'],
        'num': item['material_entity_qty'],
        'price': item['material_entity_tax_price'],
        # 可选字段
        # 'position_no': '',
        'remark': item['material_entity_comment']
        # 可选字段
        # 'batch_no': ''
    }
    target_data['goods_list'].append(goods_item)

# 将请求体转换为JSON格式
json_payload = json.dumps(target_data)

# 发起POST请求到旺店通·企业奇门API接口
response = requests.post(
    url='https://api.wangdian.cn/openapi/2/wdt.vip.wms.stockinout.order.push',
    headers={'Content-Type': 'application/json'},
    data=json_payload
)

# 检查响应状态和内容
if response.status_code == 200:
    print('Data pushed successfully:', response.json())
else:
    print('Failed to push data:', response.text)

注意事项

  • ID检查:确保每个请求都有唯一的单据编号以避免重复推送,这通过设置元数据中的idCheck: true来实现。
  • 自动审核:根据业务需求设置是否自动审核,这里我们设置为自动审核(值为1)。
  • 错误处理:在实际应用中,应增加错误处理机制,以便在请求失败时进行重试或记录日志。

通过上述步骤和代码示例,我们可以高效地将源平台的数据转换并写入到旺店通·企业奇门API接口,实现系统间的数据无缝对接。 电商OMS与WMS系统接口开发配置

更多系统对接方案