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

  • 轻易云集成顾问-曾平安

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

在此次技术案例中,我们将探讨如何实现金蝶云星空数据无缝对接到旺店通·企业奇门系统。这一过程主要涉及从金蝶云星空内获取销售订单数据,并通过高效的接口调用和转换,将这些数据准确快速地写入到旺店通·企业奇门。整个方案旨在保证数据处理的时效性、可靠性以及集成过程中每个环节的透明度。

方案名称:云星空销售订单(渠道)> 旺店通销售订单

具体来说,本文所涉及的数据流动包括以下几个重要步骤:

  1. 抓取金蝶云星空接口executeBillQuery:核心任务是如何利用executeBillQuery API定时、可靠地提取最新的销售订单信息。在这个过程中,需要应对接口分页及限流等挑战,确保能够高效且稳定地获取大规模数据而不漏单。

  2. 自定义数据转换逻辑:获取到原始数据后,根据业务需求进行必要的数据清洗与格式转换,这一步骤十分关键,用于适应两套系统间可能存在的数据结构差异。此处可以灵活应用自定义规则,以完成不同字段之间的映射关系。

  3. 批量写入到旺店通·企业奇门:使用wdt.trade.push API,将处理完毕后的订单批量推送至旺店通系统。这一阶段需要特别注意的是处理API调用中的异常情况及错误重试机制,以保障即使在网络波动或临时故障情况下,也能最终成功提交所有待传输的数据。

  4. 实时监控与日志记录:通过集中监控和告警系统,对整个流程进行实时跟踪,包括任务状态、性能指标等,同时保留详细日志以备查阅和分析,这有助于及时发现并解决潜在问题,提高整体运行效率。

这次我们将重点介绍这些关键节点,通过实际案例展示具体解决方案,以及各环节中采用的一些优化措施。 数据集成平台API接口配置

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

在数据集成过程中,调用源系统的API接口是获取数据的关键步骤。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口来获取销售订单数据,并进行初步加工。

API 接口配置

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

  • API: executeBillQuery
  • Method: POST
  • FormId: SAL_SaleOrder
  • FieldKeys: 需查询的字段集合,以逗号分隔
  • FilterString: 过滤条件,用于筛选符合条件的数据
  • Pagination: 分页参数,确保每次请求的数据量适中

请求参数配置

根据提供的元数据配置,我们需要设置请求参数。以下是主要字段及其含义:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FSaleOrderEntry_FEntryID",
  "pagination": {
    "pageSize": 500
  },
  "idCheck": true,
  "request": [
    {"field":"FSaleOrderEntry_FEntryID","label":"FSaleOrderEntry_FEntryID","type":"string","value":"FSaleOrderEntry_FEntryID"},
    {"field":"FID","label":"FID","type":"string","value":"FID"},
    {"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
    {"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
    {"field":"FSaleOrgId_FNumber","label":"销售组织","type":"string","value":"FSaleOrgId.FNumber"},
    {"field":"FDate","label":"日期","type":"string","value":"FDate"},
    {"field":"FCustId_FNumber","label":"客户","type":"string","value":"FCustId.FNumber"}
    // ...其他字段省略
  ],
  "otherRequest": [
    {"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"},
    {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
    {"field": "TopRowCount", "label": "返回总行数", "type": "int", "describe": "金蝶的查询分页参数"},
    {"field": "FilterString", 
        "label": 
        "过滤条件",
        "type":
        "string",
        "describe":
        "示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=",
        "value":
        "FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FDocumentStatus='C' and FBillTypeID= '64263f3581d8f9'"
   },
   {
        "field":
        "FieldKeys",
        "label":
        "需查询的字段key集合",
        "type":
        "array",
        "describe":
        "金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber",
        "parser":
        {"name":
        "ArrayToString",
        "params":
        ","}
   }
 ]
}

数据请求与清洗

在轻易云平台上,我们可以通过配置上述请求参数来调用金蝶云星空接口。以下是具体步骤:

  1. 设置API调用地址和方法

    • URL: https://api.kingdee.com/executeBillQuery
    • Method: POST
  2. 构建请求体: 根据元数据中的request字段,构建请求体。例如:

{
  "_FormId_":"",
  "_FieldKeys_":"",
  "_FilterString_":"",
}
  1. 处理分页: 设置分页参数,确保每次请求的数据量不超过500条。

  2. 发送请求并获取响应: 使用HTTP客户端(如Postman或编程语言中的HTTP库)发送请求,并解析响应数据。

  3. 数据清洗与转换: 对获取的数据进行初步清洗和转换,例如去除无效字段、格式化日期等。

示例代码

以下是一个简单的Python示例代码,用于调用executeBillQuery接口并处理响应数据:

import requests
import json

url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
payload = {
    "_FormId_":"",
    "_FieldKeys_":"",
    "_FilterString_":"",
}

response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()

# 数据清洗与转换
cleaned_data = []
for item in data['Result']:
    cleaned_item = {
        '单据编号': item['FBillNo'],
        '单据状态': item['FDocumentStatus'],
        '销售组织': item['FSaleOrgId.FNumber'],
        # ...其他字段处理
    }
    cleaned_data.append(cleaned_item)

print(cleaned_data)

小结

通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,可以高效地获取销售订单数据,并进行初步清洗和转换。这为后续的数据处理和分析打下了坚实基础。在实际应用中,可以根据业务需求进一步优化和扩展此流程。 用友与MES系统接口开发配置

数据集成生命周期中的ETL转换与写入

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

元数据配置解析

在进行ETL转换之前,首先需要理解元数据配置。这些配置定义了从源系统到目标系统的数据映射和转换规则。以下是一个典型的元数据配置示例:

{
  "api": "wdt.trade.push",
  "method": "POST",
  "operation": {
    "method": "merge",
    "field": "FBillNo,FSOStockId_FNumber",
    "bodyName": "details_list",
    "bodySum": ["FQty"],
    "header": [
      "FBillNo", "F_ora_sheng", "FDate", "F_ora_shi", 
      "F_ora_qu", "FSalerId", "FNote", "FBillAllAmount", 
      ...
    ],
    ...
  },
  ...
}

该配置文件定义了API接口wdt.trade.push,并指定了POST请求方法。operation字段描述了如何合并和处理数据字段,以及哪些字段属于表头(header)和表体(body)。

数据请求与清洗

在进行ETL之前,需要从源系统获取原始数据,并对其进行清洗和预处理。假设我们从云星空销售订单(渠道)获取如下数据:

{
  "FBillNo": "SO123456",
  ...
}

这些原始数据需要根据元数据配置进行映射和转换,以符合旺店通·企业奇门API接口的要求。

数据转换与映射

根据元数据配置,我们需要将源系统的数据字段映射到目标系统所需的字段。例如:

  • FBillNo 映射为 tid
  • FDate 映射为 trade_timepay_time
  • FSaleOrgId_FNumber 映射为 fenxiao_nick
  • FCustId_FNumber 映射为 buyer_nick

具体的映射规则如下:

[
  {
    "field": "tid",
    "label": "原始单号",
    ...
    "value": "{FBillNo}"
  },
  {
    ...
    "field": "trade_time",
    ...
    "value": "{FDate}"
  },
  ...
]

通过这种方式,我们可以确保源系统的数据字段正确地映射到目标系统所需的字段。

构建请求体

在完成数据转换后,需要构建API请求体。以下是一个构建好的请求体示例:

{
  "shop_no": "HBJBT01",
  ...
  "trade_list": [
    {
      ...
      "tid": "{FBillNo}",
      ...
      "trade_time": "{FDate}",
      ...
      }
   ],
   ...
}

这里,我们将所有必要的数据字段按照旺店通·企业奇门API接口的要求进行组织,并包含在请求体中。

数据写入

最后一步是将构建好的请求体发送到旺店通·企业奇门API接口。通过轻易云数据集成平台,可以使用以下代码片段实现这一过程:

import requests

url = 'https://api.wangdian.cn/openapi2/wdt.trade.push'
headers = {'Content-Type': 'application/json'}
data = {
   # 构建好的请求体
}

response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
   print("Data successfully written to the target platform.")
else:
   print(f"Failed to write data: {response.text}")

通过上述步骤,我们完成了从源平台到目标平台的数据ETL转换与写入。这一过程不仅确保了数据的一致性和完整性,还极大提升了业务流程的效率和透明度。 泛微OA与ERP系统接口开发配置

更多系统对接方案