利用数据集成平台进行ETL转换并接入旺店通·旗舰版

  • 轻易云集成顾问-黄宏棵

金蝶云星空数据集成到旺店通·旗舰版:标准-金蝶-其他出库单——>旺店通-委外仓退(出库业务)

在企业管理系统中,实现不同平台之间的数据无缝对接往往是一项复杂而关键的任务。本文将介绍如何通过轻易云数据集成平台,完成从金蝶云星空到旺店通·旗舰版的系统对接,重点分享“标准-金蝶-其他出库单——>旺店通-委外仓退(出库业务)”这一方案。

首先,我们需要从金蝶云星空获取相关出库单信息。为此,可使用executeBillQuery API接口进行调用。例如,通过API定时可靠地抓取接口数据,以确保不会漏单。这一过程不仅要处理好分页和限流的问题,还需建立起实时监控与日志记录机制,对每一次API调用进行跟踪和分析,从而保证所有数据都能准确采集。

获取到的数据通常存在格式差异,因此在写入到旺店通·旗舰版之前,需要进行必要的数据转换和映射。利用高效灵活的轻易云数据映射工具,可以处理这些源端与目标端之间的数据格式不一致问题。在转化过程中,要注意针对特定需求对接开发自定义规则,以便满足业务逻辑要求。

之后,将经转化后的批量数据快速写入至旺店通·旗舰版,可以调用wms.stockother.Out.push API来实现这一操作。同样也必须确保该过程中的异常处理及错误重试机制,这可以有效应对可能出现的数据冲突或网络异常等问题,提高整体流程的稳定性和鲁棒性。同时,也可以通过实时监控功能持续关注整个传输链路上的状态变化,一旦发现状况能够及时响应调整。

这个技术案例不仅展示了如何将两个不同系统间实现高效、可靠的数据交互,更体现了多种技术细节,例如分页、限流控制,自定义映射以及异常重试等多个方面的深度应用。 金蝶与CRM系统接口开发配置

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

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台,通过调用金蝶云星空的executeBillQuery接口来获取并加工数据,以实现标准-金蝶-其他出库单到旺店通-委外仓退(出库业务)的集成。

接口配置与请求参数

首先,我们需要配置调用金蝶云星空接口的元数据。以下是元数据配置的详细内容:

{
  "api": "executeBillQuery",
  "effect": "QUERY",
  "method": "POST",
  "number": "FBillNo",
  "id": "FEntity_FEntryID",
  "name": "FBillNo",
  "idCheck": true,
  "request": [
    {"field":"FEntity_FEntryID","label":"FEntryID","type":"string","describe":"FEntryID","value":"FEntity_FEntryID"},
    {"field":"FID","label":"实体主键","type":"string","describe":"实体主键","value":"FID"},
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"},
    {"field":"FDocumentStatus","label":"单据状态","type":"string","describe":"单据状态","value":"FDocumentStatus"},
    {"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","describe":"库存组织","value":"FStockOrgId.FNumber"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"FDate"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"FBillTypeID"},
    {"field":"FNOTE","label":"备注","type":"string","describe":"备注","value":"FNOTE"},
    {"field":...}
  ],
  "otherRequest": [
    {"field":...}
  ],
  "autoFillResponse": true
}

请求参数解析

  1. 基本字段:如FBillNo(单据编号)、FID(实体主键)、FDate(日期)等,这些字段是从金蝶云星空获取出库单信息所必须的。
  2. 过滤条件:通过FilterString字段设置过滤条件,例如:
    FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FStockOrgId.FNumber='101' and FSTOCKID.F_TBIK_Assistant_qtr = '委外仓' and FBillTypeID.FNUMBER in ('QTCKD01_SYS') and FDate>='2024-08-05 00:00:00'

    此过滤条件确保只获取符合特定条件的数据,如指定库存组织、出库类型等。

  3. 分页参数:通过LimitStartRow字段控制查询结果的分页,确保一次请求不会返回过多数据,影响性能。

调用接口与处理响应

在配置好元数据后,通过轻易云平台发起POST请求,调用金蝶云星空的executeBillQuery接口。以下是一个示例请求体:

{
  "FormId": "STK_MisDelivery",
  "FieldKeys": ["FID", "FBillNo", ...],
  "FilterString": "...",
  "Limit": 100,
  "StartRow": 0
}

响应示例如下:

{
  "Result": {
    ...
    "Data": [
      {
        "FID": "...",
        "FBillNo": "...",
        ...
      },
      ...
    ]
  }
}

数据清洗与转换

获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。常见的数据清洗操作包括:

  1. 字段映射:将金蝶云星空中的字段映射到目标系统对应的字段。例如,将FBillNo映射为目标系统中的订单编号。
  2. 数据格式转换:将日期格式从金蝶的格式转换为目标系统所需的格式。
  3. 值校验与处理:检查关键字段是否为空或无效,并进行必要的处理。

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

def clean_data(raw_data):
    cleaned_data = []
    for entry in raw_data:
        cleaned_entry = {
            'order_id': entry['FBillNo'],
            'date': convert_date_format(entry['FDate']),
            ...
        }
        cleaned_data.append(cleaned_entry)
    return cleaned_data

写入目标系统

经过清洗和转换后的数据可以通过轻易云平台写入到目标系统,如旺店通。此过程通常涉及调用目标系统提供的API接口,将处理后的数据批量写入。

总结而言,通过轻易云平台调用金蝶云星空的executeBillQuery接口,并对获取的数据进行清洗和转换,可以实现不同系统间的数据无缝对接。这一过程不仅提高了业务透明度和效率,还确保了数据的一致性和准确性。 数据集成平台API接口配置

使用轻易云数据集成平台进行ETL转换并写入旺店通·旗舰版API接口

在数据集成生命周期的第二步中,我们将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,转为目标平台——旺店通·旗舰版API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台实现这一过程。

API接口配置

在本案例中,我们需要调用旺店通·旗舰版的wms.stockother.Out.push API接口。该接口用于处理出库业务,具体元数据配置如下:

{
  "api": "wms.stockother.Out.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "order",
      "label": "单据头",
      "type": "object",
      "children": [
        {"field": "outer_no", "label": "外部单号", "type": "string", "value": "{FBillNo}"},
        {"field": "warehouse_no", "label": "仓库编号", "type": "string", "value": "{FSTOCKID_FNumber}"},
        {"field": "reason", "label": "出库原因", "type": "string", "value": "{F_TBIK_CKLX}"},
        {"field": "is_check", "label": "是否审核", "type":"string","value":"true"},
        {"field":"remark","label":"备注","type":"string","value":"{FNOTE}"},
        {"field":"receiver_name","label":"收件人名称","type":"string","value":"接口传单"},
        {"field":"receiver_mobile","label":"收件人电话","type":"string","value":"18888888888"},
        {"field":"receiver_province","label":"省","type":"string","value":"广东省"},
        {"field":"receiver_city","label":"市","type":"string","value":"广州市"},
        {"field":"receiver_district","label":"区","type":"string","value":"白云区"},
        {"field":"receiver_address","label":"地址","type":"string","value":"接口传单"}
      ]
    },
    {
      "field": "order_details",
      "label": "单据明细",
      "type": ["array"],
      "value" : ["list"],
      children: [
          { field: 'spec_no', label: '商家编码', type: 'string', value: '{FMATERIALID_FNumber}' },
          { field: 'num', label: '数量', type: 'string', value: '{FBaseQty}' },
          { field: 'remark', label: '明细备注', type: 'string', value: '{FEntryNote}' }
      ]
    }
  ],
  groupCalculate:{
    headerGroup:["FBillNo",...],
    bodyGroup:["FMATERIALID_FNumber"...],
    bodyName:"list",
    calculate:{
       FBaseQty:"$sum"
     }
   },
   buildModel:true
}

数据请求与清洗

首先,我们从源系统(金蝶)中提取出库单的数据。这一步骤涉及到对原始数据的清洗和初步转换,以确保其符合目标系统的要求。例如,将金蝶中的字段FBillNo映射到目标系统中的outer_no字段。

数据转换与写入

在轻易云数据集成平台上,我们可以利用其强大的ETL功能,将清洗后的数据进一步转换为旺店通·旗舰版API所需的格式。以下是具体步骤:

  1. 定义请求结构:根据元数据配置定义请求结构,包括单据头和单据明细部分。
  2. 字段映射:将源系统的数据字段映射到目标系统的字段。例如:
    • FBillNo -> outer_no
    • FSTOCKID_FNumber -> warehouse_no
    • F_TBIK_CKLX -> reason
  3. 聚合计算:对于需要聚合计算的字段,如数量(FBaseQty),我们可以使用内置的计算函数(如求和 $sum)来完成。
  4. 构建模型:根据定义好的请求结构和映射关系,构建最终的数据模型。

示例代码

以下是一个示例代码片段,展示如何利用轻易云平台进行上述操作:

import requests
import json

# 构建请求头
order = {
    'outer_no': source_data['FBillNo'],
    'warehouse_no': source_data['FSTOCKID_FNumber'],
    'reason': source_data['F_TBIK_CKLX'],
    'is_check': True,
    'remark': source_data['FNOTE'],
    'receiver_name': '接口传单',
    'receiver_mobile': '18888888888',
    'receiver_province': '广东省',
    'receiver_city': '广州市',
    'receiver_district': '白云区',
    'receiver_address': '接口传单'
}

# 构建请求体
order_details = []
for item in source_data['details']:
    order_details.append({
        'spec_no': item['FMATERIALID_FNumber'],
        'num': item['FBaseQty'],
        'remark': item['FEntryNote']
    })

payload = {
    'order': order,
    'order_details': order_details
}

# 发起POST请求
response = requests.post('https://api.wangdian.cn/wms.stockother.Out.push', json=payload)
print(response.json())

通过上述步骤,我们成功地将金蝶系统中的出库单数据转换为旺店通·旗舰版API所能接受的格式,并通过POST请求将其写入目标系统。这一过程充分利用了轻易云数据集成平台的ETL功能,实现了不同系统间的数据无缝对接。 如何开发金蝶云星空API接口

更多系统对接方案