金蝶云星空接口配置:如何利用轻易云平台实现数据转换与写入

  • 轻易云集成顾问-吕修远

吉客云·奇门数据集成到金蝶云星空:销售单对接技术案例

在实际业务过程中,高效、可靠的数据集成无疑是实现系统间平稳协同的关键。本文将详细介绍一个成功的案例——通过轻易云数据集成平台,将吉客云·奇门的数据准确写入至金蝶云星空,尤其针对方案销售单对接销售出库_类型93内部采销。

首先,在确保吉客云·奇门数据不漏单方面,利用其提供的API接口jackyun.tradenotsensitiveinfos.list.get进行定时抓取,以保证每条交易信息都被捕获。在抓取过程中,需要特别处理接口的分页和限流问题,通过设置合理的分页参数和限流机制来确保存储效率与稳定性。

其次,批量将大量获取的数据高效写入到金蝶云星空中,我们采用了它提供的batchSave API,并进行了相应的数据格式转换。这部分工作涉及两个系统之间数据字段映射与转换,为此我们定制了一系列适配规则来确保两边系统无缝衔接。同时,实现了实时监控和日志记录功能,对整个传输过程施行全方位监管以防止异常情况发生。

在遇到意外情况下,例如网络抖动或临时性服务不可用,我们设计了一整套重试机制以提高对接可靠性。错误重试不仅涵盖了基础通信故障,还包括如字段遗漏、格式错误等细节问题,从而保障最终数据一致性的同时,提高容错能力。

总之,从初始抓取吉客云·奇门接口开始,到最后的一步步推进至金蝶云星空,全程透明可视化操作大幅减轻了管理复杂度。本案例不仅展示了解决具体业务需求的方法,同时也为其他类似场景下的数据集成提供有效借鉴。 打通钉钉数据接口

调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get获取并加工数据

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get来获取销售单数据,并对其进行初步加工。

接口概述

吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get用于获取不敏感的交易信息列表。该接口采用POST请求方式,支持多种查询条件和分页功能,能够灵活地获取所需的交易数据。

元数据配置解析

以下是元数据配置的详细解析:

{
  "api": "jackyun.tradenotsensitiveinfos.list.get",
  "method": "POST",
  "number": "tradeNo",
  "id": "tradeId",
  "pagination": {"pageSize": 20},
  "idCheck": true,
  "condition": [[{"field":"tradeStatus","logic":"egt","value":"6000"}]],
  "request": [
    {"field":"modified_begin","label":"起始时间","type":"string","describe":"修改起始时间,和结束时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空"},
    {"field":"modified_end","label":"结束时间","type":"string","describe":"修改结束时间,和起始时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空"},
    {"field":"startModified","label":"最后修改时间(起始)","type":"string"},
    {"field":"endModified","label":"最后修改时间(截止)","type":"string"},
    {"field":"tradeNo","label":"销售单号,多个用半角逗号分隔","type":"string"},
    {"field":"pageSize","label":"每页记录数,默认50,最大200","type":"string","value":"200"},
    {"field":"pageIndex","label":"页码,0为第1页","type":"string"},
    {"field":"hasTotal","label":"默认返回,首次调用时可以传1获取总记录数","type":"string","value":"1"},
    {"field":"startCreated","label":"创建时间(起始)","type":"string"},
    {"field":"endCreated","label":"创建时间(截止)","type":"string"},
    {"field":"startAuditTime","label":"审核时间(起始)","type":"string"},
    {"field":"endAuditTime","label":"审核时间(截止)","type":"string"},
    {"field":"startConsignTime","label":"发货时间(起始)","type\":\"string\",\"value\":\"_function from_unixtime(({CURRENT_TIME}-86400),'%Y-%m-%d 00:00:00')\"},
    {"field\":\"endConsignTime\",\"label\":\"发货时间(截止)\",\"type\":\"string\",\"value\":\"_function from_unixtime(({CURRENT_TIME}-86400),'%Y-%m-%d 23:59:59')\"},
    {"field\":\"tradeStatus\",\"label\":\"订单状态\",\"type\":\"string\"},
    {"field\":\"tradeType\",\"label\":\"订单类型\",\"type\":\"string\",\"value\":\"93\"},
    {"field\":\"sourceTradeNos\",\"label\":\"网店订单号\",\"type\":\"string\"},
    {"field\":\"fields\",\"label\":\"需要返回字段列表逗号分隔\",\"type\":\"string\",\"value\":\"checkTotal,tradeNo,postFee,otherFee,chargeCurrency,accountName,payType,payNo,sellerMemo,buyerMemo,goodsDetail,goodsDetail.goodsNo,goodsDetail.goodsName,goodsDetail.specName,goodsDetail.barcode,goodsDetail.sellCount,goodsDetail.unit,goodsDetail.sellPrice,goodsDetail.sellTotal,goodsDetail.cost,goodsDetail.discountTotal,goodsDetail.discountPoint,goodsDetail.taxFee,goodsDetail.shareFavourableFee,goodsDetail.estimateWeight,goodsDetail.goodsMemo,goodsDetail.cateName,goodsDetail.brandName,goodsDetail.goodsTags,goodsDetail.isFit,goodsDetail.isGift,goodsDetail.discountFee,goodsDetail.taxRate,goodsDetail.estimateGoodsVolume,goodsDetail.isPresell,goodsDetail.customerPrice,goodsDetail.customerTotal,..."}
  ],
  "omissionRemedy":{"crontab": "20 */2 * * *", "takeOverRequest":[]}
}

请求参数设置

在实际操作中,我们需要根据业务需求设置请求参数。以下是一些关键参数的设置:

  • modified_beginmodified_end:用于指定修改日期范围,这两个参数必须同时存在且间隔不超过七天。
  • pageSizepageIndex:用于分页控制,每页记录数设置为200条,从第一页开始。
  • startConsignTimeendConsignTime:用于指定发货日期范围,这里使用了函数计算当前日期前一天的起止时间。
  • fields:指定需要返回的字段列表,以逗号分隔。

例如:

{
  "modified_begin": "2023-09-01",
  "modified_end": "2023-09-07",
  "pageSize": 200,
  "pageIndex": 0,
  "startConsignTime": "_function from_unixtime(({CURRENT_TIME}-86400),'%Y-%m-%d 00:00:00')",
  "endConsignTime": "_function from_unixtime(({CURRENT_TIME}-86400),'%Y-%m-%d 23:59:59')",
  "fields": "checkTotal,..."
}

数据清洗与转换

在获取到原始数据后,需要对其进行清洗与转换,以便后续处理和分析。常见的数据清洗操作包括:

  1. 去除冗余字段:只保留业务需要的字段。
  2. 字段重命名:将字段名转换为更易理解或符合业务规范的名称。
  3. 数据格式转换:如日期格式、金额单位等。

例如,将原始数据中的日期格式从字符串转换为标准日期格式:

import pandas as pd

# 假设 data 是从接口获取到的数据
data['consign_time'] = pd.to_datetime(data['consign_time'], format='%Y-%m-%d %H:%M:%S')

实时监控与异常处理

在整个数据集成过程中,通过轻易云平台的实时监控功能,可以随时查看数据流动和处理状态。一旦发现异常情况,如接口调用失败或数据格式错误,可以及时采取措施进行修正。

通过以上步骤,我们可以高效地从吉客云·奇门接口获取销售单数据,并对其进行初步加工,为后续的数据分析和处理打下坚实基础。 金蝶与外部系统打通接口

将源平台数据转换为金蝶云星空API接口格式并写入目标平台

在数据集成的生命周期中,ETL(提取、转换、加载)过程是将源平台的数据转换为目标平台所需格式的关键步骤。本文将详细探讨如何使用轻易云数据集成平台,将销售单对接销售出库类型93内部采销的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

API接口配置

在进行数据转换和写入之前,首先需要了解金蝶云星空API接口的配置。根据提供的元数据配置,我们需要使用batchSave API,通过POST方法提交数据。以下是API接口的一些关键配置项:

  • api: batchSave
  • method: POST
  • idCheck: true
  • operation:
    • rowsKey: array
    • rows: 10
    • method: batchArraySave

请求字段解析与映射

请求字段定义了从源数据到目标数据的映射关系。以下是一些关键字段及其解析方式:

  1. 单据类型 (FBillTypeID)

    • 类型:string
    • 描述:单据类型
    • 值:XSCKD01_SYS
  2. 单据编号 (FBillNo)

    • 类型:string
    • 描述:单据编号
    • 值:{tradeNo}
  3. 日期 (FDate)

    • 类型:string
    • 描述:日期
    • 值:{consignTime}
  4. 销售组织 (FSaleOrgId)

    • 类型:string
    • 描述:组织
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 值:
      "_mongoQuery 38faaa66-9955-34e5-bd58-7c4099b53af5 findField=content.warehouseCompanyCode where={\"content.warehouseCode\" : {\"$eq\":\"{warehouseCode}\"}}"
  5. 客户 (FCustomerID)

    • 类型:string
    • 描述:基础资料
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 值:{shopCode}
  6. 备注 (FNote)

    • 类型:string
    • 描述:多行文本
    • 值:{sellerMemo}

明细信息字段解析

对于明细信息(FEntity),我们需要处理多个子字段,这些子字段包含了具体的商品信息。以下是一些关键字段及其解析方式:

  1. 物料编码 (FMaterialId)

    • 类型:string
    • 描述:基础资料
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 值:
      "{{goodsDetail.goodsNo}}"
  2. 实退数量 (FRealQty)

    • 类型:string
    • 描述:数量
    • 值:
      "{{goodsDetail.sellCount}}"
  3. 单价 (FPrice)

    • 类型:string
    • 描述:单价
    • 值:
      "_function round(({{goodsDetail.shareFavourableAfterFee}}/{{goodsDetail.sellCount}}),4)"
  4. 金额 (FAmount)

    • 类型:string
    • 描述:金额
    • 值:
      "{{goodsDetail.shareFavourableAfterFee}}"
  5. 仓库 (FStockId)

    "_mongoQuery 38faaa66-9955-34e5-bd58-7c4099b53af5 findField=content.warehouseCompanyCode where={\"content.warehouseCode\" : {\"$eq\":\"{warehouseCode}\"}}"

特殊字段处理

某些字段需要特殊处理,例如计算含税单价、折扣额和税率等。这些字段通常通过函数计算得到:

  1. 含税单价 (FTaxPrice)

    "_function round(({{goodsDetail.shareFavourableAfterFee}}/{{goodsDetail.sellCount}}),4)"
  2. 销售成本价(网店)(F_LSJC_Decimal1)

    "_function {{goodsDetail.cost}}/{{goodsDetail.sellCount}}"
  3. 总成本(网店)(F_LSJC_Decimal)

    "{{goodsDetail.cost}}"

最终请求结构

最终请求结构将包含所有上述字段,并按照金蝶云星空API的要求进行组织。通过轻易云数据集成平台,可以实现全透明可视化操作,确保每个环节清晰易懂,并实时监控数据流动和处理状态。

通过上述步骤,我们可以将源平台的数据成功转换为金蝶云星空API接口所能接收的格式,并顺利写入目标平台。这不仅提升了业务的透明度和效率,也确保了不同系统间的数据无缝对接。 金蝶与WMS系统接口开发配置

更多系统对接方案