使用轻易云平台完成金蝶收料通知单到旺店通的ETL转换流程

  • 轻易云集成顾问-蔡威

金蝶收料通知单-旺店通收料通知: 实现高效系统对接的技术解析

在本案例中,我们将深入探讨如何通过系统集成平台,实现金蝶云星空的数据无缝对接到旺店通·企业奇门,特别是关于“金蝶收料通知单-旺店通收料通知”的具体实施方法。

确保数据不漏单

首先,在执行从金蝶云星空接口获取数据的过程中,我们需要保证每一条重要的业务数据都不会遗漏。这主要依赖于调用executeBillQuery接口,精确抓取每个时间段内新增或变动的数据。通过定时任务调度机制,能够可靠地从金蝶云星空提取需要同步的数据,并对已处理记录进行标记和日志留存,从而实现全业务周期上的透明追踪和管理。

大量数据快速写入

为了应对大批量的数据同步需求,对接过程中涉及使用wdt.purchase.order.push接口,大容量、批量式地将数据快速写入到旺店通·企业奇门。在实际运行方案中,通过合理配置并行处理进程以及优化网络传输策略,很好地提高了整体效率。同时,为保障高速输入环境下的稳定性,需要特别关注API限流及容错处理机制。

分页与限流问题

处理来自金蝶云星空的大量数据时,不可避免地会遇到分页和限流问题。针对这一点,可采用分段拉取、逐页提交的方法,每次只请求一定数量的数据,以防止超出API限制导致请求失败。此外,为提升安全性,还可以加入动态调整参数,根据响应速度和网络状况实时调整查询频率与页大小,从而更稳定高效地完成大规模数据集成任务。

在后续部分,我们将详细介绍如何调用上述API并进行必要的数据格式转换,以及其他关键技术细节以实现两端系统间顺畅交互。 泛微OA与ERP系统接口开发配置

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

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

接口配置与调用

首先,我们需要配置并调用金蝶云星空的executeBillQuery接口。该接口采用POST方法,通过传递特定的参数来查询收料通知单的数据。以下是关键的元数据配置:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FDetailEntity_FEntryID",
  "pagination": {
    "pageSize": 500
  },
  "idCheck": true,
  "condition_bk": [
    [
      {
        "field": "FBillNo",
        "logic": "eqv2",
        "value": null
      }
    ],
    [],
    []
  ],
  ...
}

请求参数详解

在请求参数中,我们需要特别关注以下几个字段:

  • FormId: 表单ID,必须填写金蝶的表单ID,例如PUR_ReceiveBill
  • FieldKeys: 查询字段集合,指定我们需要从金蝶系统中获取的字段。
  • FilterString: 过滤条件,用于筛选符合条件的数据,例如根据供应商编号和审核日期进行过滤。

以下是一个示例请求体:

{
  "FormId": "PUR_ReceiveBill",
  "FieldKeys": [
    "FBillNo", 
    "FDocumentStatus", 
    ...
  ],
  "FilterString": "FApproveDate>='2023-01-01' and FMATERIALID.F_POIH_Combo = 1",
  ...
}

数据清洗与加工

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

  1. 字段映射:将金蝶系统中的字段映射到目标系统所需的字段。例如,将FBillNo映射为目标系统中的订单编号。
  2. 数据类型转换:确保所有字段的数据类型符合目标系统的要求。例如,将日期字符串转换为标准日期格式。
  3. 去重处理:如果存在重复记录,需要进行去重处理,以确保数据的一致性和准确性。

示例代码

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

import requests
import json

# 配置请求头和URL
url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}

# 构建请求体
payload = {
    'FormId': 'PUR_ReceiveBill',
    'FieldKeys': 'FBillNo,FDocumentStatus,FMaterialId.fnumber,...',
    'FilterString': 'FApproveDate>="2023-01-01" and FMATERIALID.F_POIH_Combo = 1',
    ...
}

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

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

    # 数据清洗与加工
    cleaned_data = []
    for record in data:
        cleaned_record = {
            '订单编号': record['FBillNo'],
            '单据状态': record['FDocumentStatus'],
            ...
        }
        cleaned_data.append(cleaned_record)

    # 输出清洗后的数据
    print(json.dumps(cleaned_data, indent=4))
else:
    print(f"请求失败,状态码: {response.status_code}")

通过上述步骤,我们可以高效地从金蝶云星空获取所需的收料通知单数据,并进行初步加工,为后续的数据转换与写入做好准备。这不仅提高了数据处理的效率,也确保了数据的一致性和准确性。 金蝶与MES系统接口开发配置

使用轻易云数据集成平台实现金蝶收料通知单到旺店通·企业奇门的ETL转换

在数据集成过程中,将金蝶收料通知单的数据转换为旺店通·企业奇门API接口所能接收的格式是一个关键步骤。本文将详细探讨如何利用轻易云数据集成平台完成这一ETL(提取、转换、加载)过程。

数据提取与清洗

首先,我们从金蝶系统中提取收料通知单的数据。假设我们已经完成了数据的提取和初步清洗,接下来需要进行数据转换和写入目标平台的操作。

数据转换与写入

在轻易云数据集成平台上,我们需要配置元数据以确保数据能够正确地映射到旺店通·企业奇门API接口。以下是具体的元数据配置和操作步骤:

  1. API接口配置

    我们使用的API接口为wdt.purchase.order.push,请求方法为POST。此接口用于将采购订单推送到旺店通系统。

  2. 字段映射

    根据提供的元数据配置,我们需要将金蝶系统中的字段映射到旺店通API所需的字段。以下是主要字段的映射关系:

    • FBillNo -> outer_no
    • FDate -> expect_arrive_time
    • FStockID -> warehouse_no
    • FNote -> remark
    • FSupplierId -> provider_no
  3. 请求参数配置

    请求参数分为一级节点和二级节点,分别对应采购单的整体信息和明细信息。

    • 一级节点(采购单整体信息):

      [
      {"field":"provider_no","value":"{FSupplierId}"},
      {"field":"warehouse_no","value":"{FStockID}"},
      {"field":"outer_no","value":"{FBillNo}"},
      {"field":"remark","value":"{FNote}"}
      ]
    • 二级节点(采购单明细信息):

      [
      {"field":"spec_no","value":"{FMaterialId}"},
      {"field":"num","value":"{FActReceiveQty}"},
      {"field":"price","value":"{FPrice}"},
      {"field":"tax","value":"{FEntryTaxRate}"}
      ]
  4. 元数据配置示例

    以下是完整的元数据配置示例:

    
    {
     "api": "wdt.purchase.order.push",
     "method": "POST",
     "idCheck": true,
     "operation": {
       "method": "merge",
       "field": "FBillNo",
       "bodyName": "details",
       "bodySum": [],
       "header": ["FBillNo", "FDate", "FStockID", "FNote", "FSupplierId", "FSrcBillNo"],
       "body": ["FMaterialId", "FActReceiveQty", "FPrice", "FEntryTaxRate"]
     },
     "request": [
       {"field": "provider_no", "label": "供应商编号", "type": "string", "describe": "", "value": "{FSupplierId}"},
       {"field": "warehouse_no", "label": "",  ... },
       ...
       {
         ...
         ...
         ...
         {
           ...
           ...
           ...
           {
             ...
             ...
             ...
             {
               ...
               ...
               ...
               {
                 ...
                 ...
                 ...
                 {
                   ... 
                   ... 
                   ... 
                   { 
                     ... 
                     ... 
                     ... 
                     { 
                       ... 
                       ... 
                       ... 
                       { 
                         ... 
                         ... 
                         ... 
                         { 
                           ... 
                           ... 
                           ... 
    
                           {  
                             ...
    
                             ...
    
                             ...
    
                             {
    
                               ...
    
                               ...
    
                               ...
    
                               {
    
                                 ...
    
                                 ...
    
                                 ...
    
                                 {
    
                                   ...
    
                                   ...
    
                                   ...
    
                                   {
    
                                     ...
    
                                     ...
    
                                     ...
    
                                     {
    
                                       ...
    
                                       ...
    
                                       ...
    
                                       {
    
                                         ...
    
                                         ...
    
                                         ...
    
                                         {
    
                                           ...
    
                                           ...
    
                                           ...
    
                                           {
    
                                             ...
    
                                             ...
    
                                             ...
    
                                             {
    
                                               ...
    
                                               ...
    
                                               ...
    
                                               {
    
                                                 ...
    
                                                 ...
    
                                                ...
    
                                                {
    
                                                  ...
    
                                                  ...
    
                                                  ...
    
                                                  {
    
                                                    ...
    
                                                    ...
    
                                                    ...
    
                                                    {
    
                                                      ...
    
                                                      ...
    
                                                      ...
    
                                                      {
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    
                                                        ...
    ![用友BIP接口开发配置](https://pic.qeasy.cloud/T3.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案