金蝶云星空数据如何高效同步至旺店通

  • 轻易云集成顾问-吴伟

案例分享:金蝶云星空数据集成到旺店通·企业奇门

在本次技术案例中,我们将深入探讨如何实现“物料同步到旺店通”的系统对接方案,即通过轻易云数据集成平台,将金蝶云星空的数据高效、安全地传输并写入到旺店通·企业奇门。在这个过程中,主要涉及两个关键API接口:金蝶云星空的数据获取接口executeBillQuery和旺店通·企业奇门的数据写入接口wdt.goods.push

首先,为确保从金蝶云星空获取的物料数据不漏单,我们采用了定时调度的方法,通过轻易云平台的计划任务功能,定时可靠地调用金蝶云星空的executeBillQuery接口,抓取最新的数据。此过程中的分页处理和限流问题尤为重要,为保证系统稳定性和效率,需要精确控制每次调用的请求数量,并及时处理分页信息,以完整、无遗漏地同步所有物料记录。

其次,在大量数据快速写入到旺店通·企业奇门方面,我们设计了一套批量数据提交机制。利用轻易云提供的批量操作特性,可以有效减少API调用次数,提高整体传输速度。同时,通过对接异常处理与错误重试机制,确保在任何网络波动或响应异常情况下,数据都能够被正确地推送至目标平台,而不会导致重复或遗漏的问题。

最后,由于这两个系统间存在一定的数据格式差异,我们在集成中提前进行了周密的格式映射转换工作。这步操作不仅包括字段名称、类型和内容上的转换,还涵盖了必要的业务逻辑校验,从而保障整个流程顺畅无阻。例如,对于某些必填字段以及数值范围限定等要求,都做了相应的规则配置及校正,以适配双方系统规范。

通过这些关键技术措施,有效解决了跨平台之间复杂多样的数据交互难题,使得从金蝶云星空到旺店通·企业奇门的物料同步过程更加智能化、高效化。本篇文章将继续详细说明具体实施步骤及相关代码示例。 金蝶与外部系统打通接口

调用金蝶云星空接口executeBillQuery获取并加工数据

在数据集成的生命周期中,第一步是从源系统获取数据,并进行初步的清洗和加工。本文将详细探讨如何通过调用金蝶云星空的executeBillQuery接口来实现这一过程。

接口概述

金蝶云星空提供了丰富的API接口,其中executeBillQuery用于查询单据数据。该接口支持POST请求,能够根据指定条件查询物料信息,并返回相应的数据集。以下是元数据配置中的关键字段:

  • api: executeBillQuery
  • method: POST
  • FormId: BD_MATERIAL(物料表单ID)
  • FieldKeys: 查询字段列表
  • FilterString: 过滤条件
  • Limit: 分页参数,每页记录数
  • StartRow: 分页参数,起始行

请求参数配置

根据元数据配置,我们需要构造一个POST请求,包含以下主要参数:

  1. FormId:指定要查询的表单ID,这里为BD_MATERIAL
  2. FieldKeys:指定要查询的字段列表。
  3. FilterString:过滤条件,用于筛选符合条件的数据。
  4. LimitStartRow:分页参数,用于控制每次查询的数据量。

以下是一个示例请求体:

{
  "FormId": "BD_MATERIAL",
  "FieldKeys": [
    "FMATERIALID",
    "FNumber",
    "FName",
    "FSpecification",
    "FOldNumber",
    "FBARCODE",
    "FDescription",
    "FMaterialGroup.FNumber",
    // 其他字段省略...
  ],
  "FilterString": "FApproveDate>='2023-01-01' and FCreateOrgId.FNumber='001'",
  "Limit": 100,
  "StartRow": 0
}

数据清洗与加工

获取到原始数据后,需要对其进行清洗和加工,以便后续处理。常见的清洗操作包括:

  1. 去除无效数据:过滤掉不符合业务需求的数据,例如状态为“禁用”的物料。
  2. 格式转换:将日期、数值等字段转换为标准格式。
  3. 字段映射:将源系统的字段名映射为目标系统所需的字段名。

以下是一个简单的数据清洗示例:

def clean_data(raw_data):
    cleaned_data = []
    for item in raw_data:
        if item['FDocumentStatus'] != 'C':
            continue
        cleaned_item = {
            'material_id': item['FMATERIALID'],
            'number': item['FNumber'],
            'name': item['FName'],
            'specification': item['FSpecification'],
            'barcode': item['FBARCODE'],
            'description': item['FDescription'],
            // 其他字段省略...
        }
        cleaned_data.append(cleaned_item)
    return cleaned_data

实际案例

假设我们需要将金蝶云星空中的物料信息同步到旺店通系统,首先通过调用executeBillQuery接口获取物料数据,然后对数据进行清洗和加工,最后将处理后的数据写入旺店通。

  1. 调用API获取数据
import requests

url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
payload = {
  "FormId": "BD_MATERIAL",
  "FieldKeys": ["FMATERIALID", "FNumber", "FName", ...],
  "FilterString": "FApproveDate>='2023-01-01' and FCreateOrgId.FNumber='001'",
  "Limit": 100,
  "StartRow": 0
}

response = requests.post(url, headers=headers, json=payload)
raw_data = response.json()
  1. 清洗与加工数据
cleaned_data = clean_data(raw_data)
  1. 写入目标系统
for item in cleaned_data:
    # 构造旺店通API请求体
    wd_payload = {
        'material_id': item['material_id'],
        'number': item['number'],
        'name': item['name'],
        ...
    }

    wd_response = requests.post('https://api.wdt.com/syncMaterial', json=wd_payload)

通过上述步骤,我们实现了从金蝶云星空获取物料信息并同步到旺店通系统。这一过程展示了如何利用轻易云平台提供的全生命周期管理功能,实现不同系统间的数据无缝对接。 用友与外部系统接口集成开发

使用轻易云数据集成平台实现物料同步到旺店通

在数据集成生命周期的第二步中,我们将重点探讨如何将已经集成的源平台数据进行ETL转换,转为目标平台旺店通·企业奇门API接口所能够接收的格式,并最终写入目标平台。本文将详细介绍如何配置和使用元数据,以实现这一过程。

元数据配置解析

我们使用的元数据配置如下:


{
  "api": "wdt.goods.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "goods_list",
      "label": "货品节点",
      "type": "array",
      "value": "skus",
      "children": [
        {"field": "goods_no", "label": "商品编码", "type": "string", "value": "{FNumber}"},
        {"field": "goods_name", "label": "货品名称", "type": "string", "value": "{FName}"},
        {"field": "short_name", "label": "货品简称", "type": "string", "value": "{FName}"},
        {"field": "alias", "label": "别名", "type": "string", "value": "{FName}"},
        {"field": "unit_name", "label": "基本单位", 
![企业微信与OA系统接口开发配置](https://pic.qeasy.cloud/T16.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案