金蝶云星辰V2物料数据提取与加工详细指南

  • 轻易云集成顾问-贺强

金蝶云星辰V2数据集成到旺店通·企业奇门:物料(金蝶→旺店通)

在供应链管理的复杂环境中,高效、准确的数据传输与集成是优化业务流程的关键。本文将分享一个成功对接金蝶云星辰V2至旺店通·企业奇门的数据集成案例——“物料(金蝶→旺店通)”,主要探讨如何通过调用API接口实现这一目标,并解决分页与限流等实际技术挑战。

首先,确保每个环节数据不漏单是本次集成的重要任务。为此,我们使用了定时可靠的抓取机制,通过金蝶云星辰V2提供的API/jdy/v2/bd/material获取最新的物料信息。在实施过程中,特别注意分批次地抓取数据,以应对可能出现的大量数据处理需求。此外,为了提高写入效率和保证时间一致性,这些数据需要快速且大量地写入到旺店通·企业奇门,通过其提供的wdt.goods.push接口完成。

处理不同系统之间的数据格式差异也是不能忽视的一部分。在这个实例中,我们开发了一套定制化的数据映射规则,将来自金蝶云星辰V2的数据转换为符合旺店通要求的格式。同时,针对分页及限流问题,我们设计了合理的数据处理策略,以避免因请求过多被限制,从而影响整体工作进度。

页面状态监控和错误重试机制进一步保障了整个流程的稳定运行。当发生异常情况时,可以及时记录日志并自动重新尝试提交操作,最大程度降低出错率,实现真正意义上的无缝对接和高可信赖性业务运作。这一系列技术手段不仅使得跨平台间数据同步更加快捷有效,也大幅提升了整体运营效率。 钉钉与WMS系统接口开发配置

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

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星辰V2接口/jdy/v2/bd/material来获取物料数据,并进行初步的数据清洗和加工。

接口调用配置

首先,我们需要配置调用金蝶云星辰V2接口的元数据。以下是关键配置项:

  • API路径: /jdy/v2/bd/material
  • 请求方法: GET
  • 主要字段:
    • number: 物料编码
    • id: 物料ID
    • name: 物料名称
  • 请求参数:
    • enable: 可用状态,1表示可用,0表示禁用,-1表示全部。
    • search: 模糊搜索,可以根据名称、编码、规格、条形码进行搜索。
    • parent_id: 商品类别ID。
    • isdataperm: 是否添加数据权限校验,默认false。
    • create_start_timecreate_end_time: 创建时间范围过滤。
    • modify_start_timemodify_end_time: 修改时间范围过滤。
    • pagepage_size: 分页参数,默认第一页,每页显示100条记录。
    • show_unitsshow_images: 是否返回多单位信息和图片信息。

请求参数示例

为了获取最新修改的物料数据,我们可以设置如下请求参数:

{
    "enable": "1",
    "modify_start_time": "_function {LAST_SYNC_TIME}*1000",
    "modify_end_time": "_function {CURRENT_TIME}*1000",
    "page": "1",
    "page_size": "100",
    "show_units": "true",
    "show_images": "true"
}

上述参数确保我们只获取可用状态的物料,并且返回多单位信息和图片信息,同时通过时间戳过滤条件确保只获取最近修改的数据。

数据清洗与加工

在获取到原始数据后,需要对其进行清洗与加工,以便后续的数据转换与写入。以下是一些常见的数据清洗步骤:

  1. 字段映射: 将源系统中的字段映射到目标系统所需的字段。例如,将金蝶云中的number映射为目标系统中的material_code

  2. 数据格式转换: 将时间戳转换为标准日期格式,或者将数值型字段转换为目标系统所需的格式。

  3. 缺失值处理: 对于必填字段,如果存在缺失值,需要进行填补或丢弃处理。

  4. 去重处理: 确保没有重复记录,特别是在分页获取大量数据时,需要对结果集进行去重处理。

示例代码

以下是一个简单的Python示例代码,用于调用接口并进行初步的数据清洗:

import requests
import json
from datetime import datetime

# 定义请求URL和参数
url = 'https://api.kingdee.com/jdy/v2/bd/material'
params = {
    'enable': '1',
    'modify_start_time': int(LAST_SYNC_TIME.timestamp()) * 1000,
    'modify_end_time': int(datetime.now().timestamp()) * 1000,
    'page': '1',
    'page_size': '100',
    'show_units': 'true',
    'show_images': 'true'
}

# 发起GET请求
response = requests.get(url, params=params)
data = response.json()

# 数据清洗与加工
cleaned_data = []
for item in data['items']:
    cleaned_item = {
        'material_code': item['number'],
        'material_name': item['name'],
        # 更多字段映射...
    }

    # 数据格式转换示例
    if 'create_time' in item:
        cleaned_item['create_time'] = datetime.fromtimestamp(item['create_time'] / 1000).strftime('%Y-%m-%d %H:%M:%S')

    cleaned_data.append(cleaned_item)

# 输出清洗后的数据
print(json.dumps(cleaned_data, indent=4, ensure_ascii=False))

通过上述步骤,我们成功地从金蝶云星辰V2接口获取了物料数据,并进行了初步的数据清洗与加工,为后续的数据转换与写入奠定了基础。这一过程展示了如何利用轻易云平台实现高效的数据集成。 数据集成平台可视化配置API接口

使用轻易云数据集成平台实现物料数据转换与写入旺店通·企业奇门API接口

在数据集成的生命周期中,ETL(提取、转换、加载)是一个关键步骤。本文将重点介绍如何将已经集成的源平台(金蝶)的物料数据进行ETL转换,并最终写入目标平台(旺店通·企业奇门API接口)。

ETL转换过程

  1. 提取数据:从金蝶系统中提取物料数据。假设我们已经完成了这一阶段,并且拥有了所需的原始数据。

  2. 数据清洗与转换:根据旺店通·企业奇门API接口的要求,对提取的数据进行清洗和格式转换。具体来说,我们需要将金蝶系统中的物料信息映射到旺店通API所需的数据结构中。

  3. 加载数据:将转换后的数据通过API接口写入到旺店通系统中。

元数据配置解析

在进行ETL转换时,我们需要遵循目标平台的元数据配置。以下是我们需要遵循的元数据配置示例:

{
  "api": "wdt.goods.push",
  "effect": "EXECUTE",
  "method": "POST",
  "number": "goods_no",
  "id": "goods_no",
  "name": "goods_no",
  "idCheck": true,
  "request": [
    {
      "field": "goods_list",
      "label": "货品节点",
      "type": "array",
      "describe": "请求参数的1级数据节点,包含SPU所有属性信息的数据节点,节点下数据字段详见下述“goods_list”",
      "children": [
        {
          "field": "goods_no",
          "label": "货品编号",
          "type": "string",
          "describe": "代表货品(spu)所有属性的唯一编号,用于系统货品区分,,SPU概念介绍,单击这里",
          "value": "{number}"
        },
        {
          "field": "goods_type",
          "label": "货品类别",
          "type": "string",
          "describe": "货品类别 1销售商品 2原材料 3包装 4周转材料5虚拟商品6固定资产 0其它",
          "value": "1"
        },
        {
          "field": "goods_name",
          ...

数据映射与转换

根据上述元数据配置,我们需要将金蝶系统中的字段映射到旺店通API接口所需的字段。例如:

  • 金蝶系统中的物料编号映射到goods_no
  • 金蝶系统中的物料名称映射到goods_name
  • 金蝶系统中的条码映射到barcode

具体代码实现如下:

def transform_data(kd_data):
    transformed_data = {
        'api': 'wdt.goods.push',
        'effect': 'EXECUTE',
        'method': 'POST',
        'request': [
            {
                'goods_list': [
                    {
                        'goods_no': kd_data['material_number'],
                        'goods_type': '1', # 假设所有物料都是销售商品
                        'goods_name': kd_data['material_name'],
                        'short_name': kd_data['material_short_name'],
                        'barcode': kd_data['barcode'],
                        'spec_list': [
                            {
                                'spec_no': kd_data['sku_number'],
                                'lowest_price': kd_data['lowest_price'],
                                'spec_name': kd_data['spec_name']
                            }
                        ]
                    }
                ]
            }
        ]
    }
    return transformed_data

数据加载

最后一步是通过HTTP POST请求将转换后的数据发送到旺店通·企业奇门API接口:

import requests

def load_data(transformed_data):
    url = 'https://api.wangdiantong.com/goods_push'
    headers = {'Content-Type': 'application/json'}

    response = requests.post(url, json=transformed_data, headers=headers)

    if response.status_code == 200:
        print("Data successfully loaded to Wangdiantong")
    else:
        print(f"Failed to load data: {response.text}")

# 示例调用
kd_data = {
    'material_number': '123456',
    'material_name': '测试商品',
    ...
}

transformed_data = transform_data(kd_data)
load_data(transformed_data)

通过上述步骤,我们可以有效地将金蝶系统中的物料数据提取、清洗、转换并最终写入到旺店通·企业奇门API接口,实现不同系统间的数据无缝对接。 钉钉与ERP系统接口开发配置

更多系统对接方案