轻易云平台实现ETL转换:金蝶云星空API数据写入案例

  • 轻易云集成顾问-冯潇

金蝶云星空与金蝶云星空的数据集成:收款退款单OK_腾晖copy案例分析

在系统集成和数据处理领域,确保不同业务系统间的无缝对接尤为重要。本次分享的技术案例即是通过轻易云数据集成平台,实现金蝶云星空之间的数据对接,即将“收款退款单OK_腾晖copy”方案成功运行。

本案例主要利用轻易云平台所提供的一系列高效功能,包括高吞吐量的数据写入能力、实时监控与告警系统、自定义数据转换逻辑,以及稳定可靠的API调用。通过这些特性,我们确保了海量数据能够快速、安全地被集成到目标金蝶云星空系统中,并实现全流程透明化管理。

首先,我们需要从源金蝶云星空系统获取必要的交易信息,这一过程采用executeBillQuery API进行定时可靠地抓取。在具体实施过程中,解决API分页和限流问题是关键,通过设置合理参数保证每次请求都能完整、高速返回所需数据。同时,自定义转换逻辑使得获取的数据格式完全符合目标系统要求。

其次,在进行批量数据写入操作时,使用batchSave API可以大幅提升处理效率。为了保障整个写入过程不漏单且准确无误,本方案引入了严格的数据质量监控机制及异常检测,一旦发现问题立即触发告警并执行错误重试机制,从而避免任何潜在风险。

另一方面,由于实际业务环境复杂多变,为适应具体需求,我们特别设计了一套灵活可扩展的映射规则以及控制台视图,使得开发者能够直观便捷地掌握每个环节。这些措施不仅优化了资源配置,还提高了整个接口调用流程的稳定性和安全性。

综上,本案例展示了如何在复杂业务场景下借助先进工具完成高效、稳定且可跟踪的数据集成任务。接下来我们将详细解析该方案中的各个技术细节与实现步骤。 钉钉与ERP系统接口开发配置

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

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

接口配置与请求参数

首先,我们需要配置接口的元数据,以确保能够正确调用金蝶云星空的API。以下是元数据配置的关键部分:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FREFUNDBILLENTRY_FEntryID",
  "pagination": {"pageSize": 500},
  "idCheck": true,
  "request": [
    {"field":"FREFUNDBILLENTRY_FEntryID","label":"FREFUNDBILLENTRY_FEntryID","type":"string","value":"FREFUNDBILLENTRY_FEntryID"},
    {"field":"FID","label":"实体主键","type":"string","value":"FID"},
    {"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
    // ...(省略其他字段)
  ],
  "otherRequest": [
    {"field":"Limit","label":"最大行数","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_PAGE_SIZE}"},
    {"field":"StartRow","label":"开始行索引","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_START_ROW}"},
    {"field":"FilterString","label":"过滤条件","type":"string","describe":"示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=","value":"FDATE ='2024-09-26 00:00:00' and FCONTACTUNIT.FNumber='PDD15'"},
    {"field":"FieldKeys","label":"需查询的字段key集合","type":"array","describe":"金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber"}
  ]
}

请求构建与发送

根据上述元数据配置,我们可以构建请求体并发送POST请求。以下是一个示例请求体:

{
  "FormId": "AR_REFUNDBILL",
  "FieldKeys": [
    "FBillNo", 
    "FID", 
    // ...(其他需要查询的字段)
  ],
  "FilterString": "FDATE ='2024-09-26 00:00:00' and FCONTACTUNIT.FNumber='PDD15'",
  "Limit": 500,
  "StartRow": 0
}

通过轻易云平台,我们可以利用可视化界面方便地配置这些参数,并实时监控请求状态和返回结果。

数据处理与清洗

获取到原始数据后,需要对其进行清洗和转换,以满足业务需求。例如,可能需要将日期格式统一、过滤掉无效记录或计算某些字段值。以下是一些常见的数据处理操作:

  1. 日期格式转换: 将所有日期字段统一转换为标准格式,如YYYY-MM-DD

    from datetime import datetime
    
    def convert_date_format(date_str):
       return datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d')
  2. 无效记录过滤: 根据业务规则,过滤掉某些状态下的记录,例如只保留审核通过的单据。

    def filter_valid_records(records):
       return [record for record in records if record['FDOCUMENTSTATUS'] == 'C']
  3. 字段计算: 根据业务需求,计算新的字段值,例如计算应退金额和实退金额之间的差异。

    def calculate_difference(record):
       record['RefundDifference'] = float(record['FREFUNDTOTALAMOUNT']) - float(record['FREALREFUNDAMOUNT'])
       return record

数据写入目标系统

经过清洗和转换的数据,需要写入目标系统。这一步通常涉及到调用目标系统的API,将处理后的数据批量插入或更新。轻易云平台支持多种异构系统间的数据无缝对接,可以方便地实现这一过程。

例如,将处理后的数据写入另一个数据库或ERP系统:

def write_to_target_system(processed_data):
    # 假设目标系统提供了一个批量插入API
    target_api_url = 'https://target-system.example.com/api/batch_insert'

    response = requests.post(target_api_url, json=processed_data)

    if response.status_code == 200:
        print("Data successfully written to target system.")
    else:
        print(f"Failed to write data: {response.text}")

通过以上步骤,我们完成了从调用金蝶云星空接口获取数据,到清洗、转换,再到写入目标系统的整个过程。这一过程在轻易云平台上实现,全程可视化操作,大大提升了效率和透明度。 用友与外部系统接口集成开发

使用轻易云数据集成平台实现ETL转换并写入金蝶云星空API接口的技术案例

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台配置元数据,实现这一过程。

1. 配置API接口

首先,我们需要配置金蝶云星空的API接口。根据提供的元数据配置,使用batchSave API进行批量保存操作。请求方法为POST,并且需要进行ID校验。

{
    "api": "batchSave",
    "method": "POST",
    "idCheck": true,
    ...
}

2. 定义操作方法与字段映射

在操作方法中,我们使用merge方法,将多个字段合并到一个请求体中。主要字段包括:单据类型(FBillTypeID)、日期(FDATE)、往来类型(FCONTACTUNITTYPE)、往来单位(FCONTACTUNIT)等。

{
    "operation": {
        "method": "merge",
        "field": "FBillTypeID,FBillNo,FDATE,FPAYORGID",
        "bodyName": "details",
        ...
    }
}

3. 配置请求字段

接下来,我们需要配置每个请求字段及其解析器。例如,单据类型(FBillTypeID)使用ConvertObjectParser解析器,将其参数设置为FNumber,并指定值为SKTKDLX01_SYS

{
    "field": "FBillTypeID",
    "label": "单据类型",
    "type": "string",
    "parser": {
        "name": "ConvertObjectParser",
        "params": "FNumber"
    },
    "value": "SKTKDLX01_SYS"
}

其他字段如日期(FDATE)、往来单位类型(FCONTACTUNITTYPE)、收款单位类型(FRECTUNITTYPE)等也需要进行类似配置。

4. 子级明细配置

对于明细部分,需要定义子级字段。例如,结算方式(FSETTLETYPEID)、原收款用途(FPURPOSEID)、退款金额(FREFUNDAMOUNTFOR)等。这些字段同样使用解析器进行转换,并指定其父级为FREFUNDBILLENTRY

{
    "field": "FSETTLETYPEID",
    "label": "结算方式",
    "type": "string",
    ...
}

5. 请求体结构

完整的请求体结构如下:

{
    ...
    {
        "field": "FormId",
        ...
        {"value":"AR_REFUNDBILL"},
        ...
        {"value":"BatchSave"},
        ...
        {"value":"false"},
        ...
        {"value":"false"}
    }
}

6. 数据转换与写入

在完成上述配置后,轻易云数据集成平台会自动将源平台的数据进行ETL转换,并生成符合金蝶云星空API接口要求的数据格式。最终,通过POST请求将转换后的数据写入目标平台。

通过这种方式,我们能够高效地实现不同系统间的数据无缝对接,并确保数据在传输和处理过程中的准确性和一致性。这不仅提高了业务流程的透明度和效率,还大大简化了系统集成的复杂性。 用友与MES系统接口开发配置

更多系统对接方案