轻易云数据平台如何优化金蝶云星空API的调用与分页处理

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

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

在企业的日常运营中,系统间的数据集成是实现高效业务流程的关键步骤。本文将详细介绍一个实际运行中的技术方案:通过轻易云平台,将金蝶云星空的数据集成到旺店通·旗舰版进行出库业务处理。

以标准-金蝶-子品组装——>旺店通-委外仓退(出库业务)为例,我们重点探讨如何确保数据在整个流转过程中不漏单、高效写入及稳定性。这其中包括从金蝶云星空接口executeBillQuery抓取订单信息,再经由批量加工和格式转化,最终调用旺店通·旗舰版的wms.stockother.Out.push接口完成出库操作。

首先,为保障数据准确性,通过定时可靠地抓取金蝶云星空API executeBillQuery接口的数据,每次抓取后的分页和限流问题会采用自定义逻辑进行优化,以保证全面获取、无遗漏。在这一过程中,我们还要处理两套系统之间可能存在的数据格式差异,这需要对接前置处理逻辑做精细调整,确保每条记录都能顺利传输并被正确解析。

为了进一步提高效率,大量订单的信息需快速写入到目标平台内。我们采用了批量提交方式,通过分片处理来减少网络开销,提高总吞吐率。而对于高频交易下可能出现的异常情况和错误重试机制,则设计了一套完善的监控与日志记录体系,实时跟踪每条数据流转状态并及时发现解决问题。这不仅提升了整体稳定性,还提供了有力的运维支撑。

最后,对于用户特别关注的数据安全与隐私,通过实施严格权限控制和准入审查制度,在任何情况下,都能尽最大努力保护敏感信息不被泄露或误用,使得整个过程更加可靠、安全。 打通钉钉数据接口

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

在数据集成过程中,调用源系统的API接口是获取数据的关键步骤。本文将深入探讨如何使用轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,以获取并加工所需的数据。

接口概述

金蝶云星空的executeBillQuery接口用于查询业务单据信息。该接口采用POST请求方式,支持多种查询条件和字段选择,能够灵活地满足各种业务需求。以下是该接口的主要元数据配置:

  • API: executeBillQuery
  • Method: POST
  • Effect: QUERY
  • FormId: STK_AssembledApp(业务对象表单ID)

请求参数配置

在调用executeBillQuery接口时,需要配置一系列请求参数。这些参数包括实体主键、单据编号、单据状态等,具体如下:

{
  "FID": "实体主键",
  "FBillNo": "单据编号",
  "FDocumentStatus": "单据状态",
  "FStockOrgId_FNumber": "库存组织",
  "FDate": "日期",
  "FBillTypeID": "单据类型",
  ...
}

其中,关键字段如FBillNo(单据编号)、FDocumentStatus(单据状态)等在实际业务中尤为重要。例如,可以通过设置FDocumentStatus为特定值来筛选出不同状态的单据。

分页与过滤条件

为了提高查询效率和避免数据量过大导致的性能问题,分页和过滤条件是必不可少的配置项:

  • Limit: 最大行数
  • StartRow: 开始行索引
  • FilterString: 过滤条件,例如:
FApproveDate >= '{{LAST_SYNC_TIME|datetime}}' 
AND FStockOrgId.FNumber = '101' 
AND FStockIDSETY.F_TBIK_Assistant_qtr = '委外仓' 
AND FAffairType = 'Assembly' 
AND FDate >= '2024-08-05 17:30:00'

通过上述过滤条件,可以精确地筛选出符合特定时间范围、库存组织、事务类型等要求的数据。

字段选择

为了避免不必要的数据传输,可以通过配置FieldKeys来指定需要查询的字段集合。例如:

{
  "FieldKeys": [
    "FID", 
    "FBillNo", 
    "FDocumentStatus", 
    ...
  ]
}

这些字段将决定返回结果中的数据结构,有助于后续的数据处理和分析。

调用示例

以下是一个完整的调用示例,通过轻易云平台发起POST请求:

{
  "api": "executeBillQuery",
  "method": "POST",
  "request": {
    "FormId": "STK_AssembledApp",
    "FieldKeys": ["FID", "FBillNo", ...],
    "FilterString": "FApproveDate >= '{{LAST_SYNC_TIME|datetime}}' AND FStockOrgId.FNumber = '101' AND FStockIDSETY.F_TBIK_Assistant_qtr = '委外仓' AND FAffairType = 'Assembly' AND FDate >= '2024-08-05 17:30:00'",
    ...
  }
}

该请求将返回符合条件的业务单据信息,供后续的数据清洗和转换使用。

数据清洗与加工

获取到原始数据后,需要对其进行清洗和加工,以满足目标系统的数据格式要求。例如,可以对日期格式进行转换,对金额字段进行汇总计算等。这一步骤通常在轻易云平台内通过可视化操作界面完成,使得整个过程透明且高效。

总结

调用金蝶云星空的executeBillQuery接口是数据集成生命周期中的关键环节。通过合理配置请求参数、分页与过滤条件,以及字段选择,可以高效地获取所需数据,并为后续的数据清洗与转换奠定基础。在实际应用中,应根据具体业务需求灵活调整这些配置,以实现最佳效果。 企业微信与ERP系统接口开发配置

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

在数据集成生命周期的第二步,主要任务是将已经集成的源平台数据进行ETL转换,并转为目标平台所能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将标准-金蝶-子品组装的数据转换为旺店通·旗舰版API接口所需的格式,并最终写入目标平台。

1. API接口元数据配置

首先,我们需要了解目标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": "{FStockIDSETY_FNumber}"},
        {"field": "reason", "label": "出库原因", "type": "string", "value": "子品组装出库"},
        {"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”: “{FMaterialIDSETY_FNumber}”},
        {“field”: “num”, “label”: “数量”, “type”: “string”, “value”: “{FQtySETY}”},
        {“field”:“remark”,“label”:”明细备注“,“type”:”string“,“value”:”{FDescriptionSETY}“}
      ]
    }
  ],
  ”groupCalculate”:{
    ”headerGroup”:[“FBillNo”,“FStockIDSETY_FNumber”,“FID”,“FNote”],
    ”bodyGroup”:[“FMaterialIDSETY_FNumber”,“FDescriptionSETY”,“FMaterialIDSETY_FRefCost”],
    ”bodyName”:”list”,
    ”calculate”:{
      ”FQtySETY”:”$sum”
    }
  },
  ”buildModel”:true
}

2. 数据请求与清洗

在开始ETL转换之前,首先需要从源系统(金蝶)获取原始数据,并进行必要的清洗和预处理。这一步骤确保了数据的一致性和完整性,为后续的转换工作打下基础。

3. 数据转换与写入

接下来,我们进入关键步骤:将清洗后的数据按照目标API接口的要求进行转换,并通过POST方法写入旺店通·旗舰版。以下是详细步骤:

a. 构建请求头(Order)

根据元数据配置,我们需要构建一个包含多个字段的请求头对象order。每个字段都需要从源系统的数据中提取并映射到相应的位置。例如:

  • outer_no 映射到 {FBillNo}
  • warehouse_no 映射到 {FStockIDSETY_FNumber}
  • reason 固定值为 子品组装出库
  • is_check 固定值为 true
  • remark 映射到 {FNote}
  • 收件人信息(如名称、电话、省、市、区、地址)可以设定为固定值或根据业务需求动态生成。
b. 构建请求体(Order Details)

请求体部分是一个数组,包含多个订单明细对象order_details。每个对象也需要从源系统的数据中提取并映射。例如:

  • spec_no 映射到 {FMaterialIDSETY_FNumber}
  • num 映射到 {FQtySETY}
  • remark 映射到 {FDescriptionSETY}
c. 聚合计算

在构建过程中,需要对某些字段进行聚合计算。例如,对于数量字段num,我们可能需要对同一订单中的多个项目进行求和操作,这可以通过配置中的 $sum 实现。

d. 最终构建与发送请求

最后,将所有构建好的数据对象组合起来,通过HTTP POST方法发送至目标API接口。示例代码如下:

import requests
import json

url = 'https://api.wangdian.cn/openapi2/wms.stockother.Out.push'
headers = {'Content-Type': 'application/json'}

data = {
    'order': {
        'outer_no': FBillNo,
        'warehouse_no': FStockIDSETY_FNumber,
        'reason': '子品组装出库',
        'is_check': 'true',
        'remark': FNote,
        'receiver_name': '接口传单',
        'receiver_mobile': '18888888888',
        'receiver_province': '广东省',
        'receiver_city': '广州市',
        'receiver_district': '白云区',
        'receiver_address': '接口传单'
    },
    'order_details': [
         {
            'spec_no': FMaterialIDSETY_FNumber,
            'num': FQtySETY,
            'remark': FDescriptionSETY
         }
         # 可以有多个明细对象
     ]
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())

通过上述步骤,我们成功地将标准-金蝶-子品组装的数据转换并写入旺店通·旗舰版API接口,实现了跨系统的数据无缝对接。 金蝶与MES系统接口开发配置

更多系统对接方案