使用轻易云平台进行ETL转换和数据写入金蝶云星空

  • 轻易云集成顾问-陈洁琳

案例分享:金蝶云星空数据集成到金蝶云星空的方案「收款退款单-miniluo」

在实际业务场景中,多系统间的数据对接往往是实现企业信息流通的关键一步。本次技术案例将展示如何通过轻易云平台,将金蝶云星空中的数据无缝集成到同样为金蝶云星空的目标系统,具体案例为“收款退款单-miniluo”。

系统对接背景

我们面临一个主要挑战,即如何确保来自源端金蝶云星空的数据能够快速、高效且不丢失地写入目标端。为了处理这一问题,我们设计了如下几个核心步骤,其中包括高吞吐量的数据写入、实时监控和告警机制,以及定制化的数据转换逻辑等。

实现方案概述

  1. 获取与解析数据

    • 利用executeBillQuery接口抓取源端金蝶云星空中的收款退款单数据。这一过程需要考虑分页和限流的问题,以避免API调用次数超出限制。
  2. 数据转换与映射

    • 针对不同系统之间可能存在的数据格式差异,采用自定义的数据转换逻辑,使得抓取来的原始数据适配目标系统要求。
  3. 批量写入

    • 使用batchSave接口实现大量数据的批量写入,提高了整体效率,并能有效支持高吞吐量需求。
  4. 实时监控与异常处理

    • 建立集中式的监控和告警体系,对每一个任务进行全程跟踪。一旦出现错误,通过异常重试机制保证任务最终成功完成,从而提高系统可靠性。
  5. 日志记录及分析

    • 在整个过程中,对各个环节进行详细的日志记录,便于后期分析与优化。同时,利用可视化工具直观展示每一步操作详情和执行状态。

这种方法不仅提升了所需业务流程自动化程度,还确保了从源头到目标端每个环节都得到严密控制,实现业务透明度最大化。对于大多数涉及复杂多变数据信息桥接的问题,此类解决方案提供了一种全面且灵活的方法来应对多样化挑战。 如何对接钉钉API接口

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

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口来获取收款退款单的数据,并进行初步加工。

接口配置与请求参数

首先,我们需要配置接口和请求参数。根据元数据配置,我们使用POST方法调用executeBillQuery接口,主要参数如下:

  • api: executeBillQuery
  • method: POST
  • number: FBillNo
  • id: FREFUNDBILLENTRY_FEntryID
  • pagination: 支持分页,每页500条记录
  • idCheck: true,表示需要检查ID

请求字段包括但不限于以下内容:

[
  {"field":"FREFUNDBILLENTRY_FEntryID","label":"FREFUNDBILLENTRY_FEntryID","type":"string"},
  {"field":"FID","label":"实体主键","type":"string"},
  {"field":"FBillNo","label":"单据编号","type":"string"},
  {"field":"FDOCUMENTSTATUS","label":"单据状态","type":"string"},
  {"field":"FCreaterId","label":"创建人","type":"string"},
  {"field":"FCreateDate","label":"创建日期","type":"string"},
  // 更多字段...
]

其他请求参数包括分页参数、过滤条件等:

[
  {"field": "Limit", "label": "最大行数", "type": "string", "value": "{PAGINATION_PAGE_SIZE}"},
  {"field": "StartRow", "label": "开始行索引", "type": "string", "value": "{PAGINATION_START_ROW}"},
  {"field": "FilterString", "label": "过滤条件", "type": "string", "value": "FCONTACTUNIT.FNumber= 'PDD14' and FDate >='2024-08-01 00:00:00'"},
  {"field": "FieldKeys", "label": "需查询的字段key集合", "type": "array", "parser":{"name":"ArrayToString","params": ","}},
  {"field": "FormId", "label": "业务对象表单Id", "type": "string", "value": "AR_REFUNDBILL"}
]

调用接口获取数据

在轻易云平台上配置好上述参数后,我们可以发起API请求。示例代码如下:

import requests

url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
payload = {
    'FormId': 'AR_REFUNDBILL',
    'FieldKeys': 'FID,FBillNo,FDOCUMENTSTATUS,FCreateDate,FREFUNDBILLENTRY_FEntryID',
    'FilterString': 'FCONTACTUNIT.FNumber= \'PDD14\' and FDate >=\'2024-08-01 00:00:00\'',
    'Limit': 500,
    'StartRow': 0
}

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

数据清洗与初步加工

获取到数据后,需要对其进行清洗和初步加工,以便后续处理。以下是一些常见的数据清洗步骤:

  1. 去除空值和重复值:确保数据完整性。
  2. 字段格式转换:例如,将日期字符串转换为日期对象。
  3. 数据筛选:根据业务需求筛选出需要的记录。

示例代码如下:

import pandas as pd

# 假设data是从API返回的数据列表
df = pd.DataFrame(data)

# 去除空值和重复值
df.dropna(inplace=True)
df.drop_duplicates(inplace=True)

# 字段格式转换
df['FCreateDate'] = pd.to_datetime(df['FCreateDate'])

# 数据筛选
filtered_df = df[df['FDOCUMENTSTATUS'] == 'A']

小结

通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,可以高效地获取收款退款单的数据。在此过程中,合理配置API请求参数、有效地清洗和加工数据,是确保数据集成成功的关键步骤。 电商OMS与ERP系统接口开发配置

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在轻易云数据集成平台中,将已经集成的源平台数据进行ETL转换,并最终写入目标平台金蝶云星空API接口,是一个复杂但高效的过程。本文将深入探讨这一过程中的技术细节,特别是如何利用元数据配置来实现这一目标。

数据请求与清洗

在数据生命周期的第一步,我们已经完成了数据的请求与清洗。这一步确保了从源系统获取的数据是干净且结构化的,为后续的ETL转换打下了坚实的基础。

数据转换与写入

接下来,我们重点关注如何将清洗后的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。以下是详细步骤和技术要点:

配置API接口元数据

根据提供的元数据配置,我们需要将各个字段映射到金蝶云星空所需的格式。以下是关键字段及其配置解析:

  1. 单据类型(FBillTypeID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 默认值:SKTKDLX01_SYS
  2. 日期(FDATE)

    • 类型:字符串
    • 值:{FDATE}
  3. 往来类型(FCONTACTUNITTYPE)

    • 类型:字符串
    • 值:{FCONTACTUNITTYPE}
  4. 往来单位(FCONTACTUNIT)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 映射目标ID:63556c380bc98d4c8e11c30d
  5. 收款单位类型(FRECTUNITTYPE)

    • 类型:字符串
    • 值:{FRECTUNITTYPE}
  6. 收款单位(FRECTUNIT)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 映射目标ID:63556c380bc98d4c8e11c30d
  7. 币别(FCURRENCYID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 默认值:PRE001
  8. 结算组织(FSETTLEORGID)

    • 类型:字符串
    • 解析器:ConvertObjectParser
    • 参数:FNumber
    • 映射目标ID:6355fe20c4a6d536d27cd8dc
  9. 销售组织(FSALEORGID) 同上,与结算组织类似。

  10. 业务类型(FBUSINESSTYPE) 同上,直接映射。

  11. 汇率(FEXCHANGERATE) 同上,直接映射。

  12. 支付组织(FPAYORGID) 同上,与结算组织类似。

  13. 结算本位币(FSETTLEMAINBOOKID) 同上,默认值为 PRE001.

  14. 明细部分 (数组) FREFUNDBILLENTRY

    明细部分包含多个字段,每个字段都有其特定配置。例如:

    {
        "field": "FACCOUNTID",
        "label": "我方银行账号",
        "type": "string",
        "parser": {
            "name": "ConvertObjectParser",
            "params": "FNumber"
        },
        "value": "_function case when '{FCONTACTUNIT}' ='PDD14' then '18011967948' else '{FACCOUNTID}' end",
        "parent": "FREFUNDBILLENTRY"
    }

    上述配置表明,如果 FCONTACTUNITPDD14, 则银行账号为 18011967948, 否则使用 {FACCOUNTID} 的值。

批量保存操作

最后一步是将处理后的数据通过批量保存操作 (batchSave) 写入金蝶云星空。具体请求参数如下:

{
    "FormId": "AR_REFUNDBILL",
    "Operation": "BatchSave",
    "IsAutoSubmitAndAudit": false,
    "IsVerifyBaseDataField": false,
}

这些参数确保了我们可以批量保存并提交审核,同时验证基础资料有效性。

总结

通过上述详细步骤和技术要点,我们成功地将源平台的数据进行了ETL转换,并最终写入到金蝶云星空API接口中。这一过程充分利用了轻易云数据集成平台提供的强大功能,实现了不同系统间的数据无缝对接,大大提升了业务效率和透明度。 用友与WMS系统接口开发配置

更多系统对接方案