使用轻易云平台实现金蝶云和旺店通的数据转换与写入

  • 轻易云集成顾问-贺强

金蝶云星空与旺店通·企业奇门系统集成技术案例分享

在当前复杂的商业环境中,数据孤岛是影响业务效率的主要障碍之一。本文将剖析如何通过轻易云数据集成平台,实现金蝶云星空与旺店通·企业奇门之间的数据无缝对接,具体案例为物料对接==>金蝶—旺店通。

确保集成金蝶云星空数据不漏单

首先,我们需要确保从金蝶云星空获取的数据完整无误,不出现漏单情况。通过调用executeBillQuery接口,可以实现对物料数据的精准抓取。我们配置了定时任务,每隔一定时间自动抓取最新的物料信息,并且设置起始和结束时间参数以保证覆盖所有必要的数据范围。此外,通过分页处理机制优化接口调用,有效避免因批量请求导致的数据遗漏或超时问题。

{
  "service": "/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc",
  "parameters": {
    "formId": "BOS_Item",
    "fieldKeys": ["FNumber", "FName", "FModel"],
    "filterString": "",
    "topRowCount": 100,
    ...
  }
}

大量数据快速写入到旺店通·企业奇门

获取到所需的物料信息后,下一步就是将这些数据高效地推送至旺店通·企业奇门系统。这一过程由wdt.goods.push接口承担,它支持批量提交操作,大幅提升了传输效率。同时,我们还引入了异步处理模式,进一步缩短响应时间,使大量物料信息得以迅速同步。

{
  "method" : "/v2/api/wdt.goods.push",
  "params" : {
      ...
      // Parameters mapping from 金蝶 to 旺店通 
      ...
   }
}

数据格式差异及映射处理

由于金蝶云星空和旺店通·企业奇门两者在字段命名、类型上存在差异,我们必须进行必要的数据格式转换。例如,将金蝶中的“FNumber”映射为统一规范化后的商品编号。在这一环节,通过自定义规则,对不同字段进行灵活转换,以确保各个系统之间完美匹配。

# Pseudocode for data transformation
data_from_kingdee = get_data_from_kingdee()
transformed_data = []

for item in data_from_kingdee:
    transformed_item = {
        'product_id': item['FNumber'],
        'name': item['FName'],
        'model': item['FModel']
        # Additional mappings...
    }
    transformed_data
![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/D25.png~tplv-syqr462i7n-qeasy.image)
### 调用金蝶云星空接口executeBillQuery获取并加工数据

在数据集成的生命周期中,第一步是从源系统调用接口获取数据。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取物料数据,并进行初步加工。

#### 接口配置与调用

首先,我们需要配置并调用金蝶云星空的`executeBillQuery`接口。该接口采用POST方法进行请求,主要用于查询业务对象的数据。以下是元数据配置中的关键字段及其含义:

- **api**: `executeBillQuery`
- **method**: `POST`
- **effect**: `QUERY`
- **number**: `FNumber`
- **id**: `FMasterId`
- **name**: `FNumber`
- **idCheck**: `true`

这些字段定义了API的基本信息和操作方式。

#### 请求参数配置

请求参数是接口调用的核心部分,决定了我们能获取到哪些数据。以下是元数据配置中的请求参数示例:

```json
[
    {"field":"FMasterId","label":"id","type":"string","describe":"id","value":"FMasterId"},
    {"field":"FNumber","label":"编码","type":"string","describe":"编码","value":"FNumber"},
    {"field":"FName","label":"名称","type":"string","describe":"名称","value":"FName"},
    {"field":"FSpecification","label":"规格型号","type":"string","describe":"规格型号","value":"FSpecification"},
    {"field":"FOldNumber","label":"旧物料编码","type":"string","describe":"旧物料编码","value":"FOldNumber"},
    {"field":"FDescription","label":"描述","type":"string","describe":"描述","value":"FDescription"},
    {"field":"FMaterialGroup_FNumber","label":"物料分组","type":"string","describe":"物料分组","value":"FMaterialGroup.FNumber"},
    {"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "2000"},
    {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
    {"field": "FilterString", "label": "过滤条件", "type": "string", "describe": "", 
     "value": "Fapprovedate>='{{LAST_SYNC_TIME|datetime}}' and FMaterialGroup.FNumber='01.02' and FUseOrgId.fnumber='100' and FDocumentStatus='C'"}
]

这些字段定义了需要查询的数据项及其属性,例如物料编码、名称、规格型号等。同时,通过FilterString字段可以设置过滤条件,以确保只获取符合条件的数据。

数据清洗与转换

在获取到原始数据后,需要对其进行清洗和转换,以便后续处理和写入目标系统。以下是一些常见的数据清洗与转换操作:

  1. 字段映射:将源系统中的字段映射到目标系统中对应的字段。例如,将金蝶中的FNumber映射到目标系统中的material_code
  2. 数据格式转换:将日期、数值等字段转换为目标系统所需的格式。例如,将日期格式从YYYY-MM-DD转换为MM/DD/YYYY
  3. 缺失值处理:处理缺失或异常值,例如用默认值填充缺失字段或删除包含异常值的记录。

示例代码

以下是一个简单的Python示例代码,用于调用金蝶云星空的executeBillQuery接口并进行初步的数据清洗和转换:

import requests
import json

# 配置API请求URL和头部信息
url = 'https://api.kingdee.com/executeBillQuery'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}

# 配置请求参数
payload = {
    'FormId': 'BD_MATERIAL',
    'FieldKeys': 'FMasterId,FNumber,FName,FSpecification,FOldNumber,FDescription,FMaterialGroup.FNumber',
    'FilterString': "Fapprovedate>='2023-01-01' and FMaterialGroup.FNumber='01.02' and FUseOrgId.fnumber='100' and FDocumentStatus='C'",
    'Limit': 2000,
    'StartRow': 0
}

# 发送POST请求
response = requests.post(url, headers=headers, data=json.dumps(payload))

# 检查响应状态码
if response.status_code == 200:
    data = response.json()

    # 数据清洗与转换
    cleaned_data = []
    for item in data:
        cleaned_item = {
            'material_id': item['FMasterId'],
            'material_code': item['FNumber'],
            'material_name': item['FName'],
            'specification': item['FSpecification'],
            # 添加更多字段映射和转换逻辑
        }
        cleaned_data.append(cleaned_item)

    # 输出清洗后的数据
    print(json.dumps(cleaned_data, indent=4))
else:
    print(f"Error: {response.status_code}, {response.text}")

以上代码展示了如何通过API请求获取金蝶云星空的数据,并对其进行初步清洗和转换。实际应用中,可以根据具体需求进一步完善数据处理逻辑。

通过上述步骤,我们可以高效地从源系统获取并加工数据,为后续的数据写入和集成奠定基础。 金蝶云星空API接口配置

使用轻易云数据集成平台将源数据转换并写入旺店通·企业奇门API接口

在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是至关重要的一步。本文将详细介绍如何利用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并转为目标平台——旺店通·企业奇门API接口所能够接收的格式,最终写入目标平台。

数据请求与清洗

在开始ETL转换之前,首先需要从源系统中请求并清洗数据。假设我们从金蝶系统中提取了物料信息,这些信息包括物料编号(FNumber)、物料名称(FName)等。通过轻易云的数据请求模块,我们可以获取到这些原始数据,并进行初步的清洗和验证,以确保数据的准确性和完整性。

数据转换与写入

接下来,我们进入本文的重点——将清洗后的数据进行转换,并通过旺店通·企业奇门API接口写入目标系统。以下是具体步骤和技术细节:

1. 配置元数据

根据提供的元数据配置,我们需要将源系统的数据字段映射到目标系统所需的字段格式。以下是配置示例:

{
  "api": "wdt.goods.push",
  "effect": "EXECUTE",
  "method": "POST",
  "number": "1",
  "id": "1",
  "name": "1",
  "idCheck": true,
  "request": [
    {
      "field": "goods_list",
      "label": "货品节点",
      "type": "array",
      "describe": "货品表主键",
      "children": [
        {
          "field": "goods_no",
          "label": "货品编号",
          "type": "string",
          "describe": "代表货品(spu)所有属性的唯一编号,用于系统货品区分,SPU概念介绍,单击这里",
          "value": "{FNumber}"
        },
        {
          ...
        }
      ]
    }
  ],
  ...
}

在这个配置中,我们定义了一个主要的数据节点 goods_list,其中包含多个子字段,如 goods_nogoods_typegoods_name 等。这些字段对应于源系统中的相应字段,例如 goods_no 对应 FNumber

2. 数据映射与转换

通过轻易云的数据映射工具,我们可以将源系统的数据字段映射到目标系统所需的字段。例如:

  • FNumber 映射到 goods_no
  • FName 映射到 goods_name
  • price_entity.price_retail_price 映射到 retail_price

以下是一个具体的映射示例:

{
  "goods_list": [
    {
      "goods_no": "{FNumber}",
      ...
      "spec_list": [
        {
          ...
          "retail_price": "{{price_entity.price_retail_price}}"
        }
      ]
    }
  ]
}
3. API调用与数据写入

完成数据映射后,我们使用轻易云的平台功能,通过HTTP POST方法调用旺店通·企业奇门API接口,将转换后的数据写入目标系统。以下是一个简化的API调用示例:

POST /api/wdt.goods.push HTTP/1.1
Host: api.wangdian.cn
Content-Type: application/json

{
  ...
}

在实际操作中,轻易云会自动处理API调用过程,包括参数传递、错误处理和结果返回等。

实时监控与反馈

在整个ETL过程中,轻易云提供了全透明可视化的操作界面和实时监控功能,可以随时查看数据流动和处理状态。如果出现任何错误或异常,系统会及时反馈并提供详细的错误信息,以便快速定位问题并解决。

通过上述步骤,我们成功地将源平台的数据进行了ETL转换,并通过旺店通·企业奇门API接口写入了目标平台。这不仅提高了数据处理效率,还确保了业务流程的一致性和准确性。 轻易云数据集成平台金蝶集成接口配置

更多系统对接方案