实施旺店通到金蝶云的高效数据处理流程案例

  • 轻易云集成顾问-林峰

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

在本技术案例中,我们将探讨如何通过高效的数据集成方案,实现旺店通·旗舰奇门的入库数据与金蝶云星空系统的无缝对接。该项目名为“19 旺店通其他入库(预入库转入专用)”,主要目标是在保障数据不漏单和高效处理的前提下,批量将业务数据从旺店通传输到金蝶云,优化企业资源管理。

获取接口数据:调用 API wdt.wms.stockin.other.querywithdetail

为了实现这一需求,首先需要定时可靠地抓取旺店通·旗舰奇门接口提供的数据。我们利用API wdt.wms.stockin.other.querywithdetail 对各个预入库单进行查询,通过分页机制确保能够完整获取所有待处理的数据,同时避免触发API限流。这一过程采用自定义转换逻辑,将原始数据格式调整为适配金蝶云星空的结构。

数据快速写入: 调用 API batchSave

完成初步的数据转换后,我们使用batchSave API,将经过清洗和整理后的大量业务数据快速写入到金蝶云星空系统中。由于轻易云平台支持高吞吐量的数据写入能力,这一步骤得以大幅提升处理效率,并保证了每条记录都准确进入目标系统内存储。

实现监控与告警机制

为了确保全程顺利进行,并实时掌握任务状态及性能表现,我们设置了集中监控和告警系统。在任何异常情况发生时,例如某批次失败或响应延迟过长等,都能及时通知相关人员并采取补救措施。同时,还配置了自动重试机制,以最大程度减少人工干预,提高整体流程稳定性。

此案例中所展现的不仅是一个简单对接,更是一套全面、可视化的解决方案,通过整合前端(旺店通·旗舰奇门)与后台(金蝶云星空)的资源流动,大幅提升了业务运作效率及透明度,为企业提供强有力的数据支撑。 打通钉钉数据接口

调用旺店通·旗舰奇门接口wdt.wms.stockin.other.querywithdetail获取并加工数据

在数据集成生命周期的第一步,我们需要调用源系统的API接口获取数据,并进行初步加工。本文将详细介绍如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.wms.stockin.other.querywithdetail,并对获取的数据进行处理。

接口概述

接口wdt.wms.stockin.other.querywithdetail用于查询其他入库单的详细信息。该接口采用POST请求方式,支持分页查询和多种业务参数过滤。以下是元数据配置中的关键字段:

  • api: wdt.wms.stockin.other.querywithdetail
  • method: POST
  • number: order_no
  • id: stockin_id
  • idCheck: true

请求参数配置

请求参数分为分页参数和业务参数两大类:

  1. 分页参数(pager)

    • page_size: 每页记录数,默认值为50。
    • page_no: 页码,默认值为1。
  2. 业务参数(params)

    • start_time: 查询开始时间,使用上次同步时间({{LAST_SYNC_TIME|datetime}})。
    • end_time: 查询结束时间,使用当前时间({{CURRENT_TIME|datetime}})。
    • status: 入库单状态,固定值80。
    • warehouse_no: 仓库编号。
    • stockin_no: 入库单号。
    • other_stockin_no: 其它入库业务单号。

条件过滤

条件过滤部分定义了两个逻辑条件组,用于筛选符合特定条件的数据:

  1. 第一组条件:

    • reason: 等于“预入库转其它入库(系统默认)”。
    • logistics_no: 不包含“WP”。
  2. 第二组条件:

    • remark: 包含“预入库转其它入库(系统默认)”。
    • logistics_no: 不包含“WP”。

数据请求与清洗

在调用接口获取数据后,需要对返回的数据进行初步清洗和处理,以确保数据质量和一致性。以下是具体步骤:

  1. 发送请求 根据元数据配置构建请求体,并发送POST请求到指定的API端点。

  2. 解析响应 对响应结果进行解析,提取出有效的入库单信息。

  3. 数据清洗 根据定义的条件过滤规则,对返回的数据进行筛选。例如,只保留符合“预入库转其它入库(系统默认)”且物流编号不包含“WP”的记录。

  4. 转换与写入准备 清洗后的数据将作为后续转换与写入阶段的输入。在此阶段,可以根据需要对字段进行重命名、格式转换等操作,以满足目标系统的要求。

实践案例

假设我们需要从2023年10月1日到2023年10月31日期间,查询状态为80的其他入库单,并且仓库编号为WH001。我们可以构建如下请求体:

{
  "pager": {
    "page_size": "50",
    "page_no": "1"
  },
  "params": {
    "start_time": "2023-10-01T00:00:00",
    "end_time": "2023-10-31T23:59:59",
    "status": "80",
    "warehouse_no": "WH001"
  }
}

发送请求后,我们会得到一个包含多个入库单详细信息的响应。接下来,我们应用条件过滤规则,对响应中的每条记录进行检查,只保留符合以下条件的记录:

[
  {
    "reason": "预入库转其它入库(系统默认)",
    "logistics_no": {"$notlike": "%WP%"}
  },
  {
    "remark": {"$like": "%预入库转其它入库(系统默认)%"},
    "logistics_no": {"$notlike": "%WP%"}
  }
]

通过上述步骤,我们可以高效地获取并清洗所需的数据,为后续的数据转换与写入做好准备。这一过程不仅提高了数据处理的透明度和效率,还确保了数据的一致性和准确性。 用友BIP接口开发配置

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在数据集成过程中,将源平台的数据转换为目标平台所需的格式是关键步骤。本文将详细介绍如何使用轻易云数据集成平台将源数据进行ETL(Extract, Transform, Load)转换,并通过金蝶云星空API接口将其写入目标平台。

配置元数据

首先,我们需要了解元数据配置的结构和作用。以下是我们要使用的元数据配置:

{
    "api": "batchSave",
    "method": "POST",
    "idCheck": true,
    "operation": {
        "rowsKey": "array",
        "rows": 5,
        "method": "batchArraySave"
    },
    "request": [
        {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"},
        {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD02"},
        {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"106"},
        {"field":"F_KD_Assistant","label":"其他入库类型","type":"string","value":"QTRKLX012","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
        {"field":"FStockDirect","label":"库存方向","type":"string","value":"GENERAL"},
        {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{{stockin_time|dateTime}}"},
        {"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
        {"field":"FOwnerIdHead","label":"货主","type":"","describe":"","parser":{"name":"","params":""},"value":""},
        {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""},
        {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""},
        {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""}
    ],
    "otherRequest":[
        {"field":"",
            "label":"",
            "type":"",
            "describe":"",
            "parser":{
                "name":"",
                "params":[]
            },
            "value":[]
        }
    ]
}

数据提取与清洗

首先,我们从源系统中提取原始数据。在这个过程中,确保所有必要的数据字段都被正确提取,并且数据格式符合要求。例如:

{
    "order_no": "ORD123456",
    "stockin_time": "2023-10-01T12:00:00Z",
    ...
}

数据转换

接下来,我们需要将提取到的数据进行转换,使其符合金蝶云星空API接口的要求。以下是一些关键字段及其转换规则:

  1. 单据编号 (FBillNo):

    {"field": "FBillNo", "value": "{order_no}"}

    order_no 转换为 FBillNo

  2. 单据类型 (FBillTypeID):

    {
       "field": "FBillTypeID",
       "parser": {
           "name": "ConvertObjectParser",
           "params": ["FNumber"]
       },
       "value": "QTRKD02"
    }

    使用 ConvertObjectParser 将固定值 QTRKD02 转换为目标格式。

  3. 库存组织 (FStockOrgId):

    {
       ...
       ...
       ...
    }
  4. 日期 (FDate):

    {
       ...
       ...
       ...
    }
  5. 备注 (FNOTE):

    {
       ...
       ...
       ...
    }
  6. 明细信息 (FEntity):

{
    ...
}

数据写入

最后,将转换后的数据通过金蝶云星空API接口写入目标系统。使用POST方法调用batchSave API:

import requests

url = 'https://api.kingdee.com/batchSave'
headers = {'Content-Type': 'application/json'}
payload = {
    # 这里填充已转换的数据
}

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

实践案例

假设我们有如下源数据:

{
    ...
}

经过上述步骤处理后,最终生成如下目标数据:

{
    ...
}

通过上述步骤,我们成功地将源平台的数据进行了ETL转换,并通过金蝶云星空API接口写入了目标系统。这种方法不仅提高了数据处理的效率,还确保了数据的一致性和准确性。 如何开发用友BIP接口

更多系统对接方案