采用轻易云平台实现管易与金蝶数据对接的实战案例

  • 轻易云集成顾问-钟家寿

管易云·奇门数据集成到金蝶云星空案例分享

在本文中,我们将深入解析如何通过专注的技术方案,将管易云·奇门系统中的退货单数据高效地集成到金蝶云星空销售退货单模块。本次实际运行的方案名为“管易退货单-->金蝶销售退货单(销售退货同步(京东自营))”。

为了实现这一对接,我们采用了轻易云数据集成平台,该平台支持多种强大的功能,如高吞吐量的数据写入能力、集中监控与告警系统、自定义数据转换逻辑等。这些功能确保了大量管易云·奇门接口gy.erp.trade.return.get获取的数据能够及时并可靠地传输到金蝶云星空,并使用其batchSave API完成数据写入。

技术要点概述:

1. 高效的数据抓取与处理

通过定时任务,可靠地抓取管易云·奇门接口提供的最新退货订单。期间处理分页和限流问题,以确保所有待处理订单无遗漏。

2. 数据质量监控及异常检测

在整个6个周期内,实现实时监控和日志记录,快速发现并解决潜在的数据问题,包括格式不匹配和业务规则冲突等。

3. 定制化的数据转换逻辑

针对具体业务场景,自定义了一套符合企业特有需求的数据映射和转换逻辑,以消除源系统与目标系统之间的结构差异,提高最终数据的一致性与准确性。

这些技术步骤不仅简化了复杂的数据对接流程,还全面提升了整体流程的透明度和可管理性。随后的内容将详细阐述上述各项技术要点,以及具体实施过程中遇到的问题及解决方案。 用友与MES系统接口开发配置

使用管易云·奇门接口gy.erp.trade.return.get进行数据获取与加工

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用管易云·奇门接口gy.erp.trade.return.get来获取并加工数据。

接口概述

gy.erp.trade.return.get接口用于获取管易云系统中的退货单信息。该接口支持多种查询条件和分页功能,能够高效地从源系统中提取所需数据。

元数据配置解析

元数据配置是调用接口的基础,定义了请求参数、分页设置和查询条件等。以下是对元数据配置的详细解析:

  • API及方法

    {"api":"gy.erp.trade.return.get","method":"POST"}

    API为gy.erp.trade.return.get,请求方法为POST。

  • 主键字段

    {"number":"code","id":"code"}

    主键字段为code,即退货单编号。

  • 分页设置

    {"pagination":{"pageSize":100}}

    每次请求返回100条记录。

  • 请求参数

    "request":[
    {"field":"code","label":"单据编号","type":"string"},
    {"field":"start_create","label":"创建时间开始段","type":"datetime"},
    {"field":"end_create","label":"创建时间结束段","type":"datetime"},
    {"field":"in_begin_time","label":"入库时间开始段","type":"datetime"},
    {"field":"in_end_time","label":"入库时间结束段","type":"datetime"},
    {"field":"shop_code","label":"店铺代码","type":"string"},
    {"field":"drp_tenant_name","label":"分销商名称","type":"string"},
    {"field":"platform_code","label":"平台单号","type":"string"},
    {"field":"return_type","label":"退货类型代码","type":"string"},
    {"field":"express_no","label":"快递单号","type":"string"},
    {"field":"vip_name","label":"会员名称","type":"string"},
    {"field":"agree","label":"同意状态","type":"string"},
    {"field":"receive","label":"入库状态","type":"string", "value": "1"},
    {"field":"cancel","label":"作废状态","type": "string"},
    {"field": "no_parcel", "label": "是否三无包裹", "type": "string"},
    {"field": "receiver_name", "label": "退货人姓名", "type": "string"},
    {"field": "receiver_phone", "label": "退货人手机", "type": "string"},
    {"field": "warehousein_code", "label": "退入仓库代码", "type": "string"},
    {"field": "warehouseout_code", "label": "退出仓库代码", "type": "string"},
    {
      "field": "modify_start_date",
      "label": "修改时间开始段",
      "type": "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      "field": "modify_end_date",
      label: 修改时间结束段,
      type: "{{CURRENT_TIME|datetime}}"
     }
    ]

这些字段定义了可以传递给接口的查询参数,包括时间范围、店铺代码、会员信息等。其中一些字段具有默认值,如receive的值为"1",表示只查询已入库的退货单。

  • 其他请求参数
    {
    "otherRequest":[
        {"field:"page_no," label:"页码," type:" string," describe:"默认为1," value:"{PAGINATION_START_PAGE}"},
        {" field:"page_size," label:"每页大小," type:" string," describe:"默认为10," value:"{PAGINATION_PAGE_SIZE}"}
    ]
    }

这些参数用于控制分页行为,默认从第一页开始,每页返回10条记录。

  • 查询条件
    "condition":[
    [{" field: shop_code, logic: eqv2, value: SXF001}, { field: approve, logic: eqv2, value:1}],
    [{" field: shop_code, logic: eqv2, value: CB0066}, { field: approve, logic: eqv2, value:1}]
    ]

    这些条件用于过滤返回的数据,例如只查询特定店铺且已批准的退货单。

数据获取与加工流程

  1. 构建请求:根据元数据配置构建API请求,包括设置必要的查询参数和分页信息。
  2. 发送请求:通过POST方法向管易云·奇门接口发送请求。
  3. 接收响应:解析响应结果,提取所需的数据字段。
  4. 数据清洗:对接收到的数据进行清洗和格式化处理,例如去除无效字段、标准化日期格式等。
  5. 存储与转换:将清洗后的数据存储到目标系统,并根据业务需求进行必要的数据转换。

示例代码

以下是一个示例代码片段,用于调用gy.erp.trade.return.get接口并处理返回的数据:

import requests
import json

# 构建请求头和URL
url = 'https://api.guanyiyun.com/erp/trade/return/get'
headers = {'Content-Type': 'application/json'}

# 构建请求体
payload = {
    "code":"",
    "start_create":"",
    "end_create":"",
    "in_begin_time":"",
    "in_end_time":"",
    "shop_code":"",
    "drp_tenant_name":"",
    "platform_code":"",
    "return_type":"",
    "express_no":"",
    "vip_name":"",
    "agree":"",
    "receive":"",
    "cancel":"",
    "no_parcel":"",
    "receiver_name":"",
    "receiver_phone":"",
    "warehousein_code":"",
    "warehouseout_code":"",
    "modify_start_date":"",
    "modify_end_date:"",
}

# 添加分页信息
payload.update({
   'page_no': '1',
   'page_size': '100'
})

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

# 检查响应状态码并处理响应数据
if response.status_code == 200:
    data = response.json()
    print("Data received:", data)
else:
    print("Failed to retrieve data:", response.status_code)

通过上述步骤,我们能够高效地从管易云系统中获取并加工退货单数据,为后续的数据集成奠定基础。 打通用友BIP数据接口

轻易云数据集成平台:从管易退货单到金蝶销售退货单的ETL转换

在数据集成生命周期的第二步,我们将重点探讨如何使用轻易云数据集成平台,将已经集成的源平台数据(如管易退货单)进行ETL转换,转为目标平台(金蝶云星空API接口)所能够接收的格式,并最终写入目标平台。

API接口配置与元数据解析

在本案例中,我们需要调用金蝶云星空的batchSave API接口。该接口支持POST方法,并且需要对请求的数据进行多种字段转换和处理。以下是详细的元数据配置解析:

  1. 基本请求配置

    {
     "api": "batchSave",
     "effect": "EXECUTE",
     "method": "POST",
     "idCheck": true,
     ...
    }
    • api: 指定调用的API接口名称。
    • effect: 执行效果,设为EXECUTE表示执行操作。
    • method: 请求方法,使用POST
    • idCheck: 是否检查ID有效性,设为true
  2. 请求参数配置

    请求参数主要分为两部分:头部信息和明细信息。以下是具体字段及其处理方式:

    {
     "request": [
       {
         "field": "FBillTypeID",
         "label": "单据类型",
         "type": "string",
         ...
         "value": "XSTHD10_SYS"
       },
       {
         "field": "FBillNo",
         ...
       },
       {
         ...
       },
       ...
     ]
    }

    其中,每个字段都包含以下属性:

    • field: 字段名称,对应金蝶API中的字段。
    • label: 字段标签,用于描述字段含义。
    • type: 字段类型,如字符串、数组等。
    • describe: 字段描述,解释字段用途。
    • parser: 数据解析器,用于将源数据转换为目标格式。
  3. 字段解析与转换

    以“销售组织”字段为例:

    {
      "field": "FSaleOrgId",
      ...
      "parser": {
        "name": "ConvertObjectParser",
        ...
      },
      ...
      "value": "_function CASE '{shop_code}' WHEN 'SXF001' THEN '103' WHEN 'SXF002' THEN '103' ELSE '100' END"
    }
    • 使用了ConvertObjectParser解析器,将源数据中的shop_code值根据特定规则转换为目标值。
  4. 嵌套数组处理

    明细信息(FEntity)是一个数组,需要对每个子项进行处理:

    {
      ...
      "field": "FEntity",
      ...
      "children": [
        {
          ...
          "field": "FMaterialId",
          ...
          "parser": {
            ...
          },
          ...
        },
        ...
      ]
    }

    每个子项同样包含字段名、标签、类型、描述和解析器等属性。例如,“物料编码”字段通过查找集合来获取对应的编码。

  5. 其他请求参数

    除了主要请求参数外,还需要指定一些额外参数,如业务对象表单ID和操作类型:

    {
      ...
      "otherRequest": [
        {
          ...
          "value": "SAL_RETURNSTOCK"
        },
        {
          ...
          "value": "BatchSave"
        },
        ...
      ]
    }
  6. 操作配置

    最后,需要定义操作方式:

    {
      ...
      "operation": {
        ...
        "method": "batchArraySave"
      }
    }

实际应用案例

在实际应用中,我们通过上述配置,实现了从管易退货单到金蝶销售退货单的数据转换。具体步骤如下:

  1. 数据请求与清洗:从管易系统获取退货单数据,并进行初步清洗和校验。
  2. 数据转换与写入:根据元数据配置,将清洗后的数据映射到金蝶API所需格式,并通过POST请求写入金蝶云星空系统。

通过这种方式,我们不仅实现了不同系统间的数据无缝对接,还确保了每个环节的数据准确性和一致性,大大提升了业务效率和透明度。 如何对接钉钉API接口

更多系统对接方案