通过轻易云平台实现易快报与金蝶云的ETL数据集成

  • 轻易云集成顾问-叶威宏

易快报采购退单对接金蝶应付单的技术方案解析

在系统集成项目中,确保数据的准确性和实时性是至关重要的一环。本文将介绍如何使用轻易云数据集成平台,将易快报(EasyReports)的采购退单数据无缝对接到金蝶云星空(Kingdee Cloud Galaxy)的应付单模块。

我们采用了定时抓取易快报接口/api/openapi/v1.1/docs/getApplyList的数据,并通过轻易云平台进行批量处理,将处理后的结果写入金蝶云星空的API batchSave。为了实现这一目标,我们需要应对以下几个关键技术挑战:

首先,为了确保所有采购退单记录都能够被完整抓取并正确导入,我们设置了可靠的定时任务机制,每隔固定时间间隔调用一次易快报的数据获取接口。此外,通过分页和限流策略,有效避免数据遗漏与接口超载问题。

其次,在数据传输过程中,考虑到两套系统之间的数据格式差异,我们设计了一系列映射规则。在轻易云的平台上,对从易快报告取得的数据进行必要的清洗、转换和格式化,使其符合金蝶云星空接受标准。这一步骤充分利用了轻易云提供的可视化配置界面,大大简化了复杂的数据转换过程。

此外,对于异常情况,如网络不稳定导致部分数据无法及时上传,我们实现了错误重试机制。一旦发现某次批量操作失败,系统会自动触发重新尝试,从而保证整个流程的不间断运行。同时,通过实时监控和详细日志记录,可以迅速定位与解决潜在的问题,提高整体效率和可靠性。

未来文章将深入探讨具体配置细节,包括如何编排每个工作流节点,以及各阶段遇到的问题及其解决办法。这一案例不仅展示了跨系统集成中的常见挑战,还提供了一些实用技巧供参考,希望能为相关从业人员带来帮助。 如何对接企业微信API接口

调用易快报接口获取并加工数据

在轻易云数据集成平台的生命周期中,调用源系统接口是数据处理的第一步。本文将深入探讨如何通过调用易快报接口 /api/openapi/v1.1/docs/getApplyList 获取并加工数据,以实现采购退单对接金蝶应付单的集成方案。

接口配置与调用

首先,我们需要配置元数据以便正确调用易快报的API接口。以下是元数据配置的详细信息:

{
  "api": "/api/openapi/v1.1/docs/getApplyList",
  "effect": "QUERY",
  "method": "GET",
  "number": "form.code",
  "id": "id",
  "idCheck": true,
  "otherRequest": [
    {"field":"type","label":"type","type":"string","describe":"expense : 报销单\nloan : 借款单\nrepayment : 还款记录\npayment : 付款单\nrequisition : 申请单\ncustom : 通用审批单\nreceipt : 收款单","value":"expense"},
    {"field":"start","label":"分页查询起始值","type":"string"},
    {"field":"count","label":"count","type":"string","describe":"最大不能超过 100","value":"100"},
    {"field":"orderBy","label":"查询字段","type":"string","describe":"createTime : 创建时间\nupdateTime : 更新时间\nsubmitDate : 提交时间\npayDate : 支付时间(单据为 paid 、archived 状态且经过出纳支付节点时有效)","value":"updateTime"},
    {"field":"startDate","label":"查询起始时间","type":"string","describe":"格式:yyyy-MM-dd HH:mm:ss","value":"{{LAST_SYNC_TIME|datetime}}"},
    {"field":"endDate","label":"查询结束时间","type":"string","describe":"格式:yyyy-MM-dd HH:mm:ss","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"specificationId","label":"单据模板ID 不带小版本号","type":"string","describe":"支持多个,用 , 分割,不传查所有模板,通过 根据企业ID获取单据模板列表 获取,例:\"Kk09lCDmlg3Q00\"","value":"ID01nGlvJpZbeT"},
    {"field":"active","label":"是否已删除","type":"string","describe":"true : 未删除   false : 已删除 ","value": "true"},
    {"field": "state", "label": "单据状态", "type": "string", "value": "paying,PROCESSING,paid,archived"}
  ],
  "condition":[[{"field": "preApprovedNodeName", "logic": "eqv2", "value": "Cancel PO"}, []]]
}

参数详解

  • API路径: /api/openapi/v1.1/docs/getApplyList
  • 请求方式: GET
  • 主要参数:
    • type: 单据类型,这里设置为expense(报销单)。
    • start: 分页查询起始值。
    • count: 每次请求返回的数据条数,最大不能超过100。
    • orderBy: 查询字段,这里选择updateTime(更新时间)。
    • startDateendDate: 查询时间范围,分别对应上次同步时间和当前时间。
    • specificationId: 单据模板ID。
    • active: 是否已删除,这里设置为true(未删除)。
    • state: 单据状态,包括paying, PROCESSING, paid, 和 archived

数据请求与清洗

在调用上述API后,我们会获得一组原始数据。这些数据需要经过清洗和转换,以便后续写入金蝶应付单系统。以下是一个简单的数据清洗示例:

import requests
import json
from datetime import datetime

# 设置请求参数
params = {
    'type': 'expense',
    'start': '0',
    'count': '100',
    'orderBy': 'updateTime',
    'startDate': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
    'endDate': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
    'specificationId': 'ID01nGlvJpZbeT',
    'active': 'true',
    'state': 'paying,PROCESSING,paid,archived'
}

# 发起GET请求
response = requests.get('https://your-api-endpoint.com/api/openapi/v1.1/docs/getApplyList', params=params)

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

    # 数据清洗示例
    cleaned_data = []

    for item in data['data']:
        cleaned_item = {
            'id': item['id'],
            'code': item['form']['code'],
            'amount': item['form']['amount'],
            # 添加更多需要清洗和转换的字段
        }
        cleaned_data.append(cleaned_item)

    # 输出清洗后的数据
    print(json.dumps(cleaned_data, indent=4))
else:
    print(f"Error: {response.status_code}")

小结

通过上述步骤,我们成功调用了易快报的API接口,并对获取到的数据进行了初步清洗。这些清洗后的数据可以进一步进行转换和写入金蝶应付单系统,从而完成整个数据集成过程。在实际应用中,可以根据具体业务需求调整参数和清洗逻辑,以确保数据准确无误地传递到目标系统。 泛微OA与ERP系统接口开发配置

轻易云数据集成平台:ETL转换与金蝶云星空API接口对接技术案例

在数据集成的生命周期中,ETL(提取、转换、加载)是至关重要的一环。本文将深入探讨如何使用轻易云数据集成平台,将源平台的数据进行ETL转换,最终通过金蝶云星空API接口写入目标平台。

数据请求与清洗

在数据集成的第一阶段,我们已经从源平台获取了原始数据,并进行了必要的清洗和预处理。接下来,我们将这些数据转换为目标平台所需的格式。

数据转换与写入

为了将数据成功写入金蝶云星空,我们需要遵循其API接口规范。以下是一个具体的元数据配置示例:


{
    "api": "batchSave",
    "method": "POST",
    "pagination": {"pageSize": 100},
    "operation": {
        "rowsKey": "array",
        "rows": 1,
        "method": "batchArraySave"
    },
    "idCheck": true,
    "request": [
        {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"YFD02_SYS"},
        {"field":"FSETTLEORGID","label":"结算组织","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"102"},
        {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{code}"},
        {"field":"FBUSINESSTYPE","label":"业务类型","type":"string","describe":"单据编号","value":"FY"},
        {"field":"FDATE","label":"业务日期","type":"string","describe":"业务日期","value":"{{preNodeApprovedTime|datetime}}"},
        {"field":"FSUPPLIERID","label":"供应商","type":"string","describe":"客户","value":"_mongoQuery ed5a5701-c0ef-3ce4-9de6-a3a08ac1d46d findField=content._system.code where={\"id\":{\"$eq\":\"{{u_供应商名称}}\"}}", "parser":{"name":"ConvertObjectParser", "params": "FNumber"}},
        {"field": "FCURRENCYID", "label": "币别", "type": "string", "describe": "币别", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{FCURRENCYID}", 
            "mapping":{"target": "64ca4880a6fc7b0a9b6cc8b2", 
            "direction": "positive"}},
        {"field": "FAP_Remark", 
            "label": 
            "易快报付款条件", 
            "type":
                "string",
                "value":
                    "{{u_付款条件说明}}"},
                    {"field":
                        "F_VRKB_Remarks",
                        "label":
                        "费用详情",
                        "type":
                        "string",
                        "value":
                        "{title}"},
                    {"field":
                        "FsubHeadFinc",
                        "label":
                        "表头财务",
                        "type":
                        "object",
                        "children":[
                         {"field":

![电商OMS与WMS系统接口开发配置](https://pic.qeasy.cloud/T28.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案