借助轻易云平台实现销售出库单数据对接案例解析

  • 轻易云集成顾问-冯潇

旺店通-销售出库单-->金蝶-销售出库单【赠品店铺】数据集成案例

在企业数字化转型过程中,数据的有效管理和高效对接至关重要。本文将分享一个具体的系统集成案例,即如何将旺店通·旗舰奇门的数据集成到金蝶云星空中,特别是关于销售出库单的对接。在这个项目中,我们利用了轻易云数据集成平台,实现了从获取旺店通·旗舰奇门API接口(wdt.wms.stockout.sales.querywithdetail)到批量写入金蝶云星空API(batchSave)的完整流程。

获取旺店通·旗舰奇门销售出库单

首先,通过调用旺店通·旗舰奇门提供的API接口wdt.wms.stockout.sales.querywithdetail来实时抓取销售出库单的数据。该接口支持分页查询,并能返回详细的订单信息,这对于确保数据不漏单和保证业务连续性至关重要。

import requests

def get_sales_orders(api_url, params):
    response = requests.post(api_url, json=params)
    return response.json()

params = {
    "shop_no": "D12345",
    "start_time": "2023-01-01 00:00:00",
    "end_time": "2023-01-31 23:59:59"
}

sales_orders = get_sales_orders("https://api.wangdiantong.com/wdt/wms/stockout/sales/querywithdetail", params)

通过上述代码,我们可以定时可靠地抓取所需时间段内所有销售出库订单,并处理分页与限流问题,确保不会遗漏任何一条记录。这一步骤还借助了集中监控和告警系统,以实现实时追踪任务状态及性能,一旦出现异常能够及时响应和处理。

数据转换与质量监控

在获得原始数据后,需要进行必要的数据转换以适应金蝶云星空特定的数据结构。使用轻易云平台提供的自定义数据转换逻辑,可以针对不同字段进行精准映射。例如,将“客户名称”对应到目标数据库中的“buyerName”字段:

{
   "data_mapping": [
       {"source_field": "customer_name", "target_field": "buyerName"},
       {"source_field":"order_id","target_field":"saleOrderNo"}
   ]
}

同时,为进一步确保持久化存储时无误,还引入了自动化的数据质量监控机制。如发现异常,例如缺失必填字段或格式错误等情况,会即时触发告警并作相应修复操作,从而提升整体运行效率及稳定性。

批量写入金蝶云星空

最后一步 用友BIP接口开发配置

调用旺店通·旗舰奇门接口获取并加工数据

在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.wms.stockout.sales.querywithdetail,获取销售出库单数据并进行初步加工。

接口概述

接口wdt.wms.stockout.sales.querywithdetail用于查询销售出库单的详细信息。该接口采用POST请求方式,支持分页查询和多种业务参数配置,以满足不同场景下的数据需求。

请求参数配置

根据元数据配置,我们需要构建一个包含分页参数和业务参数的请求体。以下是具体的请求参数说明:

  1. 分页参数(pager)

    • page_size: 每页返回的数据条数,默认值为50。
    • page_no: 当前页码,默认值为1。
  2. 业务参数(params)

    • start_time: 查询开始时间,使用上次同步时间{{LAST_SYNC_TIME|datetime}}
    • end_time: 查询结束时间,使用当前时间{{CURRENT_TIME|datetime}}
    • status_type: 出库单状态类型,默认值为3(按照指定状态查询)。
    • status: 出库单状态详细信息,默认值为110。
    • warehouse_no: 仓库编码,可选。
    • stockout_no: 出库单编号,可选。
    • shop_nos: 店铺编号,多店铺使用英文逗号分隔,默认值为"C00099,C00314"。
    • src_order_no: 销售订单号,可选。
    • need_sn: 是否返回SN信息,可选。
    • position: 是否按照货位排序,可选。

以下是构建请求体的示例代码:

{
  "pager": {
    "page_size": 50,
    "page_no": 1
  },
  "params": {
    "start_time": "{{LAST_SYNC_TIME|datetime}}",
    "end_time": "{{CURRENT_TIME|datetime}}",
    "status_type": "3",
    "status": "110",
    "warehouse_no": "",
    "stockout_no": "",
    "shop_nos": "C00099,C00314",
    "src_order_no": "",
    "need_sn": "",
    "position": ""
  }
}

数据清洗与转换

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

  1. 字段映射:将源系统中的字段映射到目标系统所需的字段。例如,将order_no映射到目标系统的订单编号字段。
  2. 数据过滤:根据特定条件过滤不需要的数据。例如,通过条件过滤掉src_trade_no包含"CKSQD"的记录。
  3. 格式转换:将日期、时间等字段转换为目标系统所需的格式。

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

def clean_data(raw_data):
    cleaned_data = []
    for record in raw_data:
        if 'CKSQD' not in record['src_trade_no']:
            cleaned_record = {
                'order_id': record['order_no'],
                'stockout_id': record['stockout_id'],
                'warehouse_code': record['warehouse_no'],
                'shop_code': record['shop_nos'],
                # 其他字段映射
            }
            cleaned_data.append(cleaned_record)
    return cleaned_data

实时监控与错误处理

在整个数据集成过程中,实时监控和错误处理也是不可忽视的重要环节。通过轻易云平台提供的实时监控功能,可以随时查看数据流动和处理状态,及时发现并解决问题。此外,还可以设置错误处理机制,例如重试策略、告警通知等,以确保数据集成过程的稳定性和可靠性。

总结

通过上述步骤,我们实现了从旺店通·旗舰奇门接口获取销售出库单数据,并进行了初步的数据清洗与转换。这只是轻易云数据集成平台生命周期中的第一步,通过合理配置元数据和高效调用API接口,可以极大提升数据集成效率,为后续的数据处理和写入打下坚实基础。 数据集成平台可视化配置API接口

使用轻易云数据集成平台将销售出库单转换并写入金蝶云星空API接口

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)处理,以便将其转换为目标平台——金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细介绍如何利用轻易云数据集成平台完成这一过程。

数据请求与清洗

首先,我们从源系统(旺店通)提取销售出库单的数据。这一步通常包括数据请求和初步清洗,以确保数据质量和一致性。假设我们已经完成了这一步,接下来重点讨论如何将这些数据转换为金蝶云星空所需的格式,并通过API接口写入目标系统。

数据转换与写入

在轻易云数据集成平台中,配置元数据是实现ETL过程的关键。以下是我们需要配置的元数据:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 20,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"XSCKD01_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{consign_time}"},
    {"field":"FStockOrgId","label":"发货组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100.01"},
    {"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","value":"{shop_no}","parser":{"name":"ConvertObjectParser","params":"FNumber"},"mapping":{"target":"65693884484e3b37ea13d9f4","direction":"positive"}},
    {"field":"FSettleOrgID","label":"结算组织","type":"string","value":"{shop_no}","parser":{"name":"ConvertObjectParser","params":"FNumber"},"mapping":{"target":"65693884484e3b37ea13d9f4","direction":"positive"}},
    {"field":"FLinkMan","label":"收货人姓名","type":...

以上配置定义了如何将源系统的数据字段映射到金蝶云星空API所需的字段。具体字段解释如下:

  • FBillTypeID: 单据类型,固定值XSCKD01_SYS
  • FBillNo: 单据编号,对应源系统中的order_no
  • FDate: 日期,对应源系统中的consign_time
  • FStockOrgId: 发货组织,固定值100.01
  • FSaleOrgId: 销售组织,对应源系统中的shop_no,并通过ConvertObjectParser进行转换。
  • FSettleOrgID: 结算组织,同样对应shop_no并进行转换。
  • FLinkMan: 收货人姓名,对应源系统中的receiver_name
  • FLinkPhone: 联系电话,对应源系统中的receiver_telno

明细信息处理

对于明细信息,我们使用数组结构来处理每个商品的详细信息:

{
  "field": "FEntity",
  "label": "明细信息",
  "type": "array",
  "children": [
    {"field": "FMaterialID", "label": "物料编码", "type": "string", "describe": "基础资料", "parser":{"name":...

每个明细项包括以下字段:

  • FMaterialID: 物料编码,对应源系统中的goods_no,并通过解析器进行转换。
  • FRealQty: 实发数量,对应源系统中的goods_count
  • FTaxPrice: 含税单价,对应源系统中的sell_price
  • FStockID: 仓库,对应源系统中的warehouse_no,并进行转换。
  • FEntrynote: 明细备注,对应源系统中的备注信息。

API调用与提交

最后,通过配置其他请求参数来完成API调用:

"otherRequest":[
  {"field":...

这些参数包括业务对象表单ID(如:SAL_OUTSTOCK)、执行操作(如:Save)、是否自动提交并审核等。

通过以上步骤,我们可以成功地将销售出库单从旺店通转换为金蝶云星空API所需的格式,并通过轻易云数据集成平台实现无缝对接和写入。这不仅提高了数据处理效率,也确保了业务流程的一致性和准确性。 如何对接钉钉API接口

更多系统对接方案