从数据获取到写入:轻易云平台实现销售单对接金蝶云星空

  • 轻易云集成顾问-彭萍

吉客云·奇门数据集成到金蝶云星空:销售单对接销售出库_类型1零售业务_合并

在本案例中,我们将重点探讨如何通过轻易云数据集成平台,将吉客云·奇门中的销售单数据高效、可靠地对接至金蝶云星空的销售出库系统。此次集成方案命名为:"销售单对接销售出库_类型1零售业务_合并"。

实现这一目标的关键步骤包括通过调用吉客云·奇门提供的数据接口jackyun.tradenotsensitiveinfos.list.get,以定时获取最新的交易信息,并使用金蝶云星空的batchSave API批量写入处理后的数据。在此过程中,需要解决两个系统之间的数据格式差异、分页与限流管理,以及确保任务执行过程中的异常处理和监控,所有这些都依赖于强大的可视化操作界面和实时监控功能。

具体而言,在设计数据流时,通过自定义转换逻辑来适应特定业务需求是一个重要环节,尤其是在面对大规模、高频次的数据传输任务时。我们的解决方案不仅支持高吞吐量的数据写入能力,还提供集中式的监控和告警系统,能实时跟踪每个集成任务的状态和性能,从而保证了整个流程的一致性和可靠性。

以下内容将详细介绍各个技术要点及其实现方法,通过实际案例演示如何配置和优化这套复杂的数据集成功能,为企业在数字化转型过程中提供有效支撑。 钉钉与WMS系统接口开发配置

使用轻易云数据集成平台调用吉客云·奇门接口获取并加工数据

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

接口调用配置

首先,我们需要配置接口调用的元数据。根据提供的元数据配置,接口调用采用POST方法,主要参数包括:

  • api: 接口名称,固定为jackyun.tradenotsensitiveinfos.list.get
  • method: 请求方法,固定为POST
  • number: 销售单号字段,对应tradeNo
  • id: 唯一标识字段,对应tradeId
  • pagination: 分页信息,每页记录数为20
  • idCheck: 是否进行ID检查,设置为true
  • condition: 查询条件,这里设置了订单状态大于等于6000

请求参数

请求参数部分较为复杂,包括时间范围、分页信息、订单状态等。以下是关键参数及其描述:

  • modified_beginmodified_end: 修改时间范围,必须同时存在且间隔不超过七天
  • startModifiedendModified: 最后修改时间范围
  • tradeNo: 销售单号,可以多个用逗号分隔
  • pageSize: 每页记录数,默认50,最大200,这里设置为200
  • pageIndex: 页码,从0开始
  • hasTotal: 是否返回总记录数,首次调用时传1
  • 其他时间范围参数如创建时间、审核时间、发货时间等

特别注意的是发货时间的起始和截止值通过函数计算得出:

"startConsignTime": "_function from_unixtime(({LAST_SYNC_TIME}-86400),'%Y-%m-%d %H:%i:%s')",
"endConsignTime": "_function from_unixtime(({CURRENT_TIME}-86400),'%Y-%m-%d 23:59:59')"

这些函数确保了我们获取的是最近一天的数据。

数据请求与清洗

在完成请求参数配置后,我们发送请求以获取销售单数据。返回的数据需要经过清洗和转换,以便后续处理。以下是一些关键步骤:

  1. 字段映射:根据元数据配置中的fields字段列表,我们只提取需要的字段。
  2. 格式转换:例如,将返回结果中的consignTime字段格式化为日期类型,并重命名为consign_date
  3. 去重与合并:如果有重复记录或需要合并处理的数据,需要进行去重和合并操作。

示例代码

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

import requests
import json

# 配置请求URL和头部信息
url = "https://api.jackyun.com/tradenotsensitiveinfos/list/get"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}

# 配置请求参数
payload = {
    "modified_begin": "2023-01-01 00:00:00",
    "modified_end": "2023-01-07 23:59:59",
    "pageSize": 200,
    "pageIndex": 0,
    "hasTotal": 1,
    # 其他必要的参数...
}

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

# 检查响应状态码
if response.status_code == 200:
    data = response.json()

    # 数据清洗与转换
    cleaned_data = []
    for record in data["result"]:
        cleaned_record = {
            "consign_date": record["consignTime"],
            # 映射其他字段...
        }
        cleaned_data.append(cleaned_record)

    # 输出或进一步处理cleaned_data
else:
    print(f"Error: {response.status_code}, {response.text}")

以上代码展示了如何配置请求参数、发送请求以及对返回的数据进行清洗和转换。在实际应用中,还需根据具体业务需求进一步完善。

小结

通过上述步骤,我们成功实现了从吉客云·奇门接口获取销售单数据,并进行了必要的数据清洗和转换。这一步骤是整个数据集成过程中的基础,为后续的数据写入和处理奠定了坚实基础。 金蝶与SCM系统接口开发配置

使用轻易云数据集成平台将销售单数据转换并写入金蝶云星空

在数据集成过程中,将源平台的数据转换为目标平台所能接收的格式是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台,将销售单数据通过ETL(提取、转换、加载)过程,转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

配置元数据

在轻易云数据集成平台中,我们需要配置元数据来定义API请求的各个字段及其对应的处理逻辑。以下是一个典型的元数据配置示例:

{
    "api": "batchSave",
    "method": "POST",
    "idCheck": true,
    "operation": {
        "rowsKey": "array",
        "rows": 10,
        "method": "batchArraySave"
    },
    "request": [
        {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"XSCKD01_SYS"},
        {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号"},
        {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{consign_date}"},
        {"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_mongoQuery 38faaa66-9955-34e5-bd58-7c4099b53af5 findField=content.warehouseCompanyCode where={\"content.warehouseCode\" : {\"$eq\":\"{warehouseCode}\"}}"},
        {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"多类别基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_mongoQuery 38faaa66-9955-34e5-bd58-7c4099b53af5 findField=content.warehouseCompanyCode where={\"content.warehouseCode\" : {\"$eq\":\"{warehouseCode}\"}}"},
        {"field":"FOwnerIdHead","label":"货主","type":"string","describe":"多类别基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_mongoQuery 38faaa66-9955-34e5-bd58-7c4099b53af5 findField=content.warehouseCompanyCode where={\"content.warehouseCode\" : {\"$eq\":\"{warehouseCode}\"}}"},
        {"field":"FCustomerID","label":"客户","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{shopCode}"},
        {"field":"FNote","label":"","type":"","describe":"","value":""},
        {"field":"","label":"","type":"","describe":"","value":""},
        {"field":"","label":"","type":"","describe":"","value":""}
    ],
    "otherRequest":[
        {"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "SAL_OUTSTOCK"},
        {"field": "Operation", "label": "", "type": "", ""},
        {"field": "", ""}
    ]
}

数据提取与清洗

首先,我们需要从源系统中提取原始销售单数据,并对其进行清洗和预处理。这一步通常包括以下几个步骤:

  1. 提取原始数据:从源系统中提取原始销售单数据,确保所有必要字段都已包含。
  2. 数据清洗:对提取的数据进行清洗,包括去除无效或重复的数据,确保数据质量。

数据转换

在完成数据清洗后,需要将清洗后的数据转换为金蝶云星空API接口所能接受的格式。根据上述元数据配置,我们需要处理以下关键字段:

  1. FBillTypeID:固定值"XSCKD01_SYS",表示单据类型。
  2. FBillNo:从源系统中获取的销售单编号。
  3. FDate:从源系统中获取的日期字段,映射到consign_date
  4. FSaleOrgIdFStockOrgIdFOwnerIdHead:通过_mongoQuery查询仓库公司代码,根据warehouseCode进行映射。
  5. FCustomerID:直接映射为shopCode

对于明细信息(FEntity),我们需要处理以下字段:

  1. FMaterialId:物料编码,通过ConvertObjectParser解析为物料编码的数字形式。
  2. FRealQty:实退数量,从源系统中的goodsDetail_sellCount获取。
  3. Flot:批号,固定值"01"。
  4. FAmountFTaxPriceFDiscount等其他字段按照相应规则进行映射和计算。

数据加载

最后一步是将转换后的数据通过API接口写入金蝶云星空。在此过程中,需要注意以下几点:

  1. API请求方法和路径配置:根据元数据配置,使用POST方法调用batchSave接口。
  2. 批量处理机制:设置批量处理参数,如每次提交的数据行数(例如10行)。
  3. 错误处理与重试机制:在实际操作中可能会遇到网络问题或其他异常情况,需要设置错误处理和重试机制,以确保数据能够成功写入目标系统。

通过以上步骤,我们可以实现从源平台到金蝶云星空的数据无缝对接,并确保每个环节都能高效稳定地运行。 如何开发用友BIP接口

更多系统对接方案