ETL技术解析:将数据写入金蝶云星空API接口

  • 轻易云集成顾问-杨嫦

致远A8+数据集成到金蝶云星空案例分享:正式OA-ERP机加件采购申请单

在企业信息化过程中,系统间的数据对接与集成是提高业务流程效率的关键环节。本文将重点分享一个实际运行的系统对接集成案例:将致远A8+中的"正式OA-ERP机加件采购申请单"数据集成到金蝶云星空。在本方案中,我们利用了多个技术特性和接口功能,以实现高效、稳定的跨系统数据同步。

为了确保此次数据集成能够顺利进行,首先需要解决的是如何可靠地抓取致远A8+接口数据,并确保数据不漏单。我们使用了致远A8+提供的API接口/seeyon/rest/flow/FromFinish/{templateCode}/{startTime}/{endTime}进行定时调用,通过设置合理的时间范围来抓取新生成和变更的数据。同时,为避免分页和限流问题,我们引入了批量处理逻辑,并结合监控机制实时跟踪任务状态,有效提升了数据获取的可靠性。

另一方面,在将大量的数据快速写入到金蝶云星空时,也面临着诸多挑战,如如何处理两者之间的数据格式差异以及异常处理与错误重试机制。为此,本方案采用自定义转换规则,对致远A8+提取的数据进行清洗和映射,使之符合金蝶云星空接受标准,然后通过其API batchSave 批量提交。此外,配置集中监控和告警系统实时追踪各个环节,及时检测并修复可能出现的问题,提高整体流程可见性及健壮性。

通过以上步骤,实现了一整套严密且高效的数据抓取、转换、写入流程,此次成功搭建不仅充分发挥了各平台优势,也为未来类似项目提供了有效借鉴。后续部分我们将详细介绍具体实施细节及代码示例,以进一步阐述每个模块操作过程及注意事项。 金蝶云星空API接口配置

调用致远A8+接口获取并加工数据的技术案例

在数据集成生命周期的第一步中,调用源系统接口获取数据是至关重要的一环。本文将详细探讨如何通过轻易云数据集成平台调用致远A8+接口 /seeyon/rest/flow/FromFinish/{templateCode}/{startTime}/{endTime} 获取并加工数据。

接口概述

该接口用于查询指定时间范围内已完成的流程实例。通过配置元数据,可以灵活地设置请求参数和处理返回的数据。以下是元数据配置的详细信息:

{
  "api": "/seeyon/rest/flow/FromFinish/{templateCode}/{startTime}/{endTime}",
  "effect": "QUERY",
  "method": "GET",
  "number": "flowTitle",
  "id": "flowId",
  "name": "flowTitle",
  "idCheck": true,
  "request": [
    {"field":"templateCode","label":"templateCode","type":"string","value":"JJJCGSQD"},
    {"field":"startTime","label":"startTime","type":"string","value":"{{LAST_SYNC_TIME|date}}"},
    {"field":"endTime","label":"endTime","type":"string","value":"_function DATE_FORMAT(DATE_ADD('{{CURRENT_TIME|date}}', INTERVAL 1 DAY), '%Y-%m-%d')"},
    {"field":"qcloudflowList","label":"qcloudflowList","type":"string","value":"qcloudflowList"}
  ],
  "autoFillResponse": true
}

请求参数解析

  1. templateCode: 固定值 JJJCGSQD,表示机加件采购申请单的模板代码。
  2. startTime: 动态值 {{LAST_SYNC_TIME|date}},表示上次同步时间。
  3. endTime: 动态值 _function DATE_FORMAT(DATE_ADD('{{CURRENT_TIME|date}}', INTERVAL 1 DAY), '%Y-%m-%d'),表示当前时间加一天后的日期。
  4. qcloudflowList: 固定值 qcloudflowList,用于标识特定的流程列表。

数据请求与清洗

在调用接口时,通过GET方法发送请求,并传递上述参数。以下是一个示例请求URL:

GET /seeyon/rest/flow/FromFinish/JJJCGSQD/2023-10-01/2023-10-02

返回的数据通常包含多个流程实例的信息,需要对这些数据进行清洗和处理,以便后续的数据转换与写入步骤。

数据转换与写入

在获取到原始数据后,需要对其进行转换。例如,将流程实例中的某些字段映射到目标系统所需的格式。以下是一个简单的数据转换示例:

[
  {
    "flowId": "12345",
    "flowTitle": "机加件采购申请单 - 001",
    "startDate": "2023-10-01",
    ...
  },
  ...
]

在轻易云平台中,可以通过配置自动填充响应(autoFillResponse)来简化这一过程,使得返回的数据能够自动映射到目标系统所需的字段格式。

实践案例

假设我们需要将致远A8+中的机加件采购申请单同步到ERP系统中,具体步骤如下:

  1. 配置元数据:如上所述,设置API路径、请求方法、请求参数等。
  2. 发送请求:通过轻易云平台发起GET请求,获取指定时间范围内的流程实例。
  3. 清洗数据:对返回的数据进行必要的清洗和过滤,例如去除无效字段或格式化日期。
  4. 转换数据:将清洗后的数据转换为目标系统所需的格式。
  5. 写入目标系统:通过轻易云平台将转换后的数据写入ERP系统。

以上步骤展示了如何利用轻易云平台高效地实现致远A8+与ERP系统之间的数据集成。在实际操作中,还可以根据业务需求进一步优化和调整各个环节,以确保数据集成过程的准确性和高效性。 电商OMS与ERP系统接口开发配置

将源平台数据ETL转换并写入金蝶云星空API接口

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台。在这个技术案例中,我们将重点探讨如何将数据转为金蝶云星空API接口所能够接收的格式,并通过POST请求写入目标平台。

API接口配置与元数据解析

在这个案例中,我们使用的API接口为batchSave,其请求方法为POST。以下是元数据配置的详细解析:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "FBillTypeID",
      "label": "单据类型",
      "type": "string",
      "describe": "111",
      "parser": {"name": "ConvertObjectParser", "params": "FNUMBER"},
      "value": "CGSQD01_SYS"
    },
    {
      ...
    }
  ],
  ...
}

数据字段解析与转换

  1. 单据类型(FBillTypeID)

    • 字段类型:字符串
    • 转换器:ConvertObjectParser
    • 参数:FNUMBER
    • 值:CGSQD01_SYS
  2. 申请日期(FApplicationDate)

    • 字段类型:字符串
    • 值:{{mainData.申请日期|datetime}}
  3. 申请类型(FRequestType)

    • 字段类型:字符串
    • 值:Material
  4. 申请组织(FApplicationOrgId)

    • 字段类型:字符串
    • 转换器:ConvertObjectParser
    • 参数:FNumber
    • 值:100
  5. 币别(FCurrencyId)

    • 字段类型:字符串
    • 转换器:ConvertObjectParser
    • 参数:FNumber
    • 值:PRE001
  6. 单据编号(FBillNo)

    • 字段类型:字符串
    • 值:{{mainData.流水号}}
  7. 汇率类型(FExchangeTypeId)

    • 字段类型:字符串
    • 转换器:ConvertObjectParser
    • 参数:FNumber
    • 值:HLTX01_SYS
  8. 交期(F_Boey_JQ)

    • 字段类型:字符串
    • 值:{{mainData.交期|datetime}}
  9. 明细信息(FEntity): 包含多个子字段,如物料编码、申请数量、材料、表面处理等,每个子字段也需要进行相应的转换和解析。

请求示例

根据上述配置,构建的请求体示例如下:

{
  "FormId": "PUR_Requisition",
  "Operation": "BatchSave",
  "IsAutoSubmitAndAudit": true,
  "IsVerifyBaseDataField": false,
  "Model": {
    ...
    // 主表信息
    {
      ...
      // 明细信息
      {
        ...
      }
    }
  }
}

实施步骤

  1. 数据提取与清洗: 从源系统中提取原始数据,并进行必要的清洗和预处理。这一步骤确保数据质量和一致性。

  2. 数据转换: 使用轻易云平台提供的转换工具,根据元数据配置,将源数据字段映射到目标系统所需的格式。例如,将日期格式化为金蝶云星空所接受的标准格式。

  3. 构建请求体: 根据元数据配置,构建符合金蝶云星空API接口规范的JSON请求体。确保所有必填字段都已正确填充,并且字段值经过适当的解析和转换。

  4. 发送请求并处理响应: 使用HTTP POST方法,将构建好的请求体发送到金蝶云星空API接口。处理响应结果,根据返回的信息判断操作是否成功,并进行相应的错误处理或日志记录。

技术要点总结

  • 使用轻易云平台提供的可视化界面和工具,可以方便地进行元数据配置和ETL过程管理。
  • 利用元数据中的解析器,如ConvertObjectParser, 可以自动完成复杂的数据转换任务。
  • 构建符合目标系统API规范的请求体,是确保数据成功写入的重要环节。
  • 实时监控和日志记录,有助于快速定位和解决集成过程中的问题,提高整体效率和透明度。

通过这些技术手段,我们可以实现不同系统间的数据无缝对接,确保业务流程顺畅高效。 如何对接用友BIP接口

更多系统对接方案