高效调用金蝶云星辰API与数据处理策略案例分享

  • 轻易云集成顾问-谢楷斌

金蝶云星辰V2到旺店通·企业奇门数据集成案例

在实现采购入库单数据从金蝶云星辰V2系统流转至旺店通·企业奇门的过程中,我们充分利用了两者公开的API接口,确保数据无缝对接及业务流程高效运作。本文将重点分享如何通过调用金蝶云星辰V2 /jdy/v2/scm/pur_inbound 接口抓取数据,并使用 wdt.stockin.purchase.push 接口快速、准确地写入到旺店通·企业奇门。

为了应对大量数据的处理需求,我们设计了一套批量集成方案,通过定时任务可靠抓取金蝶云星辰V2接口的数据。在此过程中,为了解决分页和限流问题,我们采用了多线程并行处理和智能重试机制,显著提升了整体效率。此外,为应对两端系统间的数据格式差异,我们制定了精细化的数据映射规则,对接异常处理与错误重试机制也被纳入其中,以保证系统运行的稳定性。

以下是具体操作步骤及技术细节解析: 如何开发企业微信API接口

调用金蝶云星辰V2接口/jdy/v2/scm/pur_inbound获取并加工数据的技术案例

在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星辰V2接口/jdy/v2/scm/pur_inbound获取采购入库单数据,并对其进行加工处理。

接口调用与请求参数配置

我们使用GET方法调用金蝶云星辰V2的采购入库单接口/jdy/v2/scm/pur_inbound。该接口的请求参数配置如下:

{
  "api": "/jdy/v2/scm/pur_inbound",
  "effect": "QUERY",
  "method": "GET",
  "number": "bill_no",
  "id": "id",
  "name": "bill_no",
  "idCheck": true,
  "request": [
    {"field":"enable","label":"可用状态","type":"string","describe":"可用状态,1:可用,0:禁用,-1:全部","value":"1"},
    {"field":"search","label":"模糊搜索","type":"string","describe":"模糊搜索-名称、编码、规格、条形码"},
    {"field":"parent_id","label":"商品类别","type":"string","describe":"商品类别ID"},
    {"field":"isdataperm","label":"数据权限","type":"string","describe":"是否添加数据权限校验,默认false"},
    {"field":"create_start_time","label":"创建开始时间戳","type":"string","describe":"开始时间(格式:“时间戳”,-1表示不过滤),创建时间"},
    {"field":"create_end_time","label":"创建结束时间戳","type":"string","describe":"结束时间(格式:“时间戳”,-1表示不过滤),创建时间"},
    {"field":"modify_start_time","label":"修改开始时间戳","type":"string","describe":"开始时间(格式:“时间戳”,-1表示不过滤),修改时间", "value": "_function {LAST_SYNC_TIME}*1000"},
    {"field":"modify_end_time","label":"修改结束时间戳","type":"string","describe":"结束时间(格式:“时间戳”,-1表示不过滤),修改时间", "value": "_function {CURRENT_TIME}*1000"},
    {"field":"page","label":"当前页","type":"string","describe":"当前页(默认1)", "value": "1"},
    {"field":"page_size","label":"每页显示条数","type":"string", "describe": "每页显示条数(默认10,最大100)", "value": "10"},
    {"field": "bill_status", "label": "单据状态", "type": "string", "describe": "单据状态", "value": "C"}
  ],
  ...
}

请求参数详解

  • enable: 设置为"1",表示只查询可用状态的数据。
  • search: 支持模糊搜索,可以根据名称、编码、规格或条形码进行查询。
  • parent_id: 商品类别ID,用于过滤特定类别的商品。
  • isdataperm: 数据权限校验,默认为false。
  • create_start_timecreate_end_time: 用于过滤特定创建时间范围内的数据。
  • modify_start_timemodify_end_time: 用于过滤特定修改时间范围内的数据。这里特别注意,我们使用了函数_function {LAST_SYNC_TIME}*1000_function {CURRENT_TIME}*1000来动态获取上次同步和当前的Unix时间戳。
  • pagepage_size: 分页参数,默认第一页,每页显示10条记录。
  • bill_status: 单据状态,设置为"C"表示只查询已审核的单据。

数据加工与处理

在获取到原始数据后,我们需要对其进行必要的清洗和转换,以确保数据符合目标系统的要求。以下是一些常见的数据处理步骤:

  1. 字段映射与转换

    • 将源系统中的字段映射到目标系统中对应的字段。例如,将金蝶云星辰中的bill_no映射到旺店通中的订单编号字段。
  2. 数据清洗

    • 去除无效或冗余的数据,例如删除空值或重复记录。
    • 格式化日期和数值类型的数据,使其符合目标系统的格式要求。
  3. 业务逻辑处理

    • 根据业务需求对数据进行进一步处理,例如计算总金额、生成唯一标识符等。
  4. 错误处理与日志记录

    • 在数据处理过程中捕获并记录错误信息,以便后续排查和修复。

示例代码

以下是一个示例代码片段,用于展示如何通过轻易云平台调用接口并处理返回的数据:

import requests
import json

# 定义请求URL和参数
url = 'https://api.kingdee.com/jdy/v2/scm/pur_inbound'
params = {
    'enable': '1',
    'search': '',
    'parent_id': '',
    'isdataperm': 'false',
    'create_start_time': '-1',
    'create_end_time': '-1',
    'modify_start_time': str(int(LAST_SYNC_TIME) * 1000),
    'modify_end_time': str(int(CURRENT_TIME) * 1000),
    'page': '1',
    'page_size': '10',
    'bill_status': 'C'
}

# 发起GET请求
response = requests.get(url, params=params)
data = response.json()

# 数据清洗与转换
processed_data = []
for record in data['data']:
    processed_record = {
        'order_number': record['bill_no'],
        # 更多字段映射...
    }
    processed_data.append(processed_record)

# 输出处理后的数据
print(json.dumps(processed_data, indent=4))

通过上述步骤,我们可以高效地从金蝶云星辰V2获取采购入库单数据,并对其进行必要的加工处理,为后续的数据写入做好准备。这一过程不仅提高了数据集成的效率,还确保了数据的一致性和准确性。 数据集成平台可视化配置API接口

使用轻易云数据集成平台实现采购入库单数据转换与写入旺店通·企业奇门API接口

在数据集成的生命周期中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据(金蝶)进行ETL转换,并转为目标平台旺店通·企业奇门API接口所能够接收的格式,最终写入目标平台。

数据请求与清洗

在开始ETL转换之前,首先需要从源系统(金蝶)中提取所需的采购入库单数据。这个过程包括数据请求与清洗,确保提取的数据符合目标系统的要求。以下是一个示例配置,用于从金蝶系统中提取采购订单号:

{
  "field": "purchase_no",
  "label": "采购订单",
  "type": "string",
  "value": "_findCollection find purchase_no from ef23b625-309d-36b4-91f3-7498948a13d9 where api_outer_no={{material_entity.material_entity_src_bill_no}}"
}

数据转换与写入

一旦完成了数据请求与清洗,我们进入ETL过程的核心部分:数据转换与写入。这一步骤需要将提取的数据按照旺店通·企业奇门API接口的要求进行格式转换,并通过API接口将数据写入目标系统。

API接口配置

在本案例中,我们使用wdt.stockin.purchase.push API接口来实现采购入库单的数据写入。以下是该接口的元数据配置:

{
  "api": "wdt.stockin.purchase.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "bill_no",
    "bodyName": "material_entity",
    "bodySum": ["material_entity_qty"],
    "header": ["material_entity_src_bill_no", "bill_no", "material_entity_stock_number"],
    "body": ["material_entity_material_number", "material_entity_qty", 
             "material_entity_tax_price", "material_entity_cess", 
             "material_entity_comment"]
  },
  ...
}
请求参数配置

为了确保数据能够正确传输到目标系统,需要对请求参数进行详细配置。以下是主要字段及其配置说明:

  1. 外部单号(outer_no)

    {
     "field": "outer_no",
     "label": "外部单号",
     "type": "string",
     ...
     "value": "{bill_no}"
    }

    外部单号用于标识唯一单据编号,避免重复推送。

  2. 仓库编号(warehouse_no)

    {
     ...
     "field": "warehouse_no",
     ...
     "value": "{{material_entity.material_entity_stock_number}}"
    }

    仓库编号用于区分不同仓库。

  3. 货品明细节点(details_list)

    {
     ...
     {
       ...
       {"field":"spec_no","label":"商家编码","type":"string","describe":"ERP内单品唯一编码(SKU),代表单品(SKU)所有属性,并且为库存量出入计算最小单元。SKU概念介绍,单击这里","value":"{{material_entity.material_entity_material_number}}","parent":"goods_list"},
       {"field":"stockin_num","label":"入库数量","type":"string","describe":"入库数量","value":"{{material_entity.material_entity_qty}}","parent":"goods_list"},
       {"field":"stockin_price","label":"入库价","type":"string","describe":"入库价格,如推送为0默认取成本价。","value":"{{material_entity.material_entity_tax_price}}","parent":"goods_list"},
       {"field":"tax","label":"税率","type":"string","describe":"对征税对象的征收比例或征收额度。例如税率为16%,请求时填值为0.16","value":"{{material_entity.material_entity_cess}}","parent":"goods_list"},
       {"field":"remark","label":"备注","type":"string","value":"{{material_entity.material_entity_comment}}"}
       ...
     }
    }

    每个货品明细节点包含多个字段,例如商家编码、入库数量、入库价等,这些字段需要根据源系统的数据进行映射和转换。

数据加载

在完成所有必要的数据转换后,通过POST方法将处理后的数据发送到旺店通·企业奇门API接口,实现数据加载:

{
  ...
  {
    ...
    method: 'POST',
    url: 'https://api.wangdian.cn/openapi2/stockin_purchase_push.php',
    data: transformedData,
    headers: {
      'Content-Type': 'application/json'
    }
  }
}

通过上述步骤,我们成功地将金蝶系统中的采购入库单数据转换并写入到旺店通·企业奇门API接口。这不仅实现了异构系统间的数据无缝对接,还提升了业务流程的自动化程度和效率。

以上就是使用轻易云数据集成平台进行ETL转换和数据写入的技术案例,希望能为您的项目提供参考和帮助。 轻易云数据集成平台金蝶集成接口配置

更多系统对接方案