在轻易云平台上将吉客云数据转换并写入金蝶云星空

  • 轻易云集成顾问-吕修远

吉客云数据集成到金蝶云星空:JY-BDS组装拆卸单案例分享

在本篇技术文章中,我们将深入探讨如何通过轻易云数据集成平台,将吉客云的数据高效、可靠地集成到金蝶云星空系统中。目标是配置和实现名为“JY-BDS组装拆卸单”的实际运行方案。

首先,考虑到两大系统之间的API接口特性,吉客云提供了获取数据的 erp.combined.get API,而金蝶云星空则支持批量写入操作,通过其 batchSave API 实现。本次集成过程中,我们着重于以下关键环节:

  1. 定时可靠的数据抓取: 使用定时任务机制,从吉客云的 erp.combined.get 接口定期拉取最新数据,并确保每次获取的数据完整且不漏单。在处理分页和限流问题上进行了优化,以便应对大量数据请求。

  2. 自定义数据转换逻辑: 针对业务需求,对从吉客云获取的数据进行必要的格式转化,使其符合金蝶云星空要求。例如,在字段映射与值转换方面,使用自定义规则来保证转换过程准确无误。

  3. 快速批量写入: 实现从轻易平台直接向金蝶云星空的大规模高效写入。在这部分,通过运用分批处理技术以及优化并发数量,使得大量数据能够被快速且稳定地录入到目标系统中。

  4. 集中监控与告警系统: 在整个集成流程中,实时跟踪各项任务状态,包括成功率、执行耗时及异常情况等。一旦出现问题,比如网络延迟或者服务崩溃,可以即时触发告警并启动错误重试机制以保障业务连续性。

  5. 异常处理与日志记录: 详细记录每一笔操作日志,对于可能出现的任何异常都设立完善的捕捉与重试策略,从而减少因偶然因素导致的数据丢失或重复。同时,为后续复盘和调优提供充分依据。

以上几个核心步骤构建了一个健全、高效、安全可靠的数据集成模式。接下来我们将逐步展开详细讲解具体实施方案及相关技术细节。 金蝶与CRM系统接口开发配置

调用吉客云接口erp.combined.get获取并加工数据的技术实现

在数据集成生命周期的第一步,我们需要从源系统吉客云中调用接口erp.combined.get来获取原始数据,并对其进行初步加工。以下将详细探讨如何通过轻易云数据集成平台配置元数据,完成这一过程。

接口调用配置

首先,我们需要根据提供的元数据配置来设置API调用参数。以下是具体的配置细节:

{
  "api": "erp.combined.get",
  "method": "POST",
  "number": "assNo",
  "id": "assId",
  "pagination": {
    "pageSize": 50
  },
  "idCheck": true,
  "request": [
    {
      "label": "开始日期",
      "field": "applyStartDate",
      "type": "string",
      "value": "{{DAYS_AGO_1|datetime}}"
    },
    {
      "label": "结束日期",
      "field": "applyEndDate",
      "type": "string",
      "value": "{{CURRENT_TIME|datetime}}"
    }
  ]
}

参数解析与配置

  1. API与方法

    • api: 指定了要调用的API接口为erp.combined.get
    • method: 使用POST方法进行请求。
  2. 标识字段

    • number: 数据记录的编号字段为assNo
    • id: 数据记录的唯一标识字段为assId
  3. 分页设置

    • pagination: 设置每次请求的数据条数为50条,以便处理大批量数据时能够分批获取,避免单次请求过多导致性能问题。
  4. ID检查

    • idCheck: 设置为true,表示在处理数据时会进行ID检查,确保数据唯一性和完整性。
  5. 请求参数

    • request: 包含两个时间参数,分别是开始日期和结束日期,用于限定查询的数据范围。
      • applyStartDate: 开始日期,使用模板变量{{DAYS_AGO_1|datetime}}表示当前时间前一天。
      • applyEndDate: 结束日期,使用模板变量{{CURRENT_TIME|datetime}}表示当前时间。

数据请求与清洗

在完成上述配置后,通过轻易云平台发起API请求,从吉客云中获取符合条件的数据。以下是一个示例请求体:

{
  "applyStartDate": "<昨天的日期>",
  "applyEndDate": "<当前时间>"
}

假设我们今天是2023年10月10日,那么实际发送的请求体可能如下:

{
  "applyStartDate": "2023-10-09T00:00:00Z",
  "applyEndDate": "2023-10-10T23:59:59Z"
}

数据转换与写入

获取到原始数据后,需要对其进行初步清洗和转换,以便后续处理和分析。主要包括以下步骤:

  1. 格式转换:将日期、时间等字段转换为标准格式,确保一致性。
  2. 字段映射:根据业务需求,将原始数据中的字段映射到目标系统所需的字段。例如,将吉客云中的assNo映射到目标系统中的订单编号字段。
  3. 去重与校验:利用ID检查功能,对获取的数据进行去重和校验,确保每条记录都是唯一且有效的。

通过以上步骤,我们可以高效地从吉客云中获取并初步加工所需的数据,为后续的数据转换与写入奠定基础。这一过程中,轻易云平台提供了全透明可视化操作界面,使得每个环节都清晰易懂,并实时监控数据流动和处理状态,大大提升了业务透明度和效率。 如何开发企业微信API接口

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

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台能够接收的格式。本文将详细探讨如何利用轻易云数据集成平台,将源数据转换为金蝶云星空API接口所需的格式,并最终写入目标平台。

元数据配置解析

首先,我们需要理解元数据配置中的各个字段及其作用。以下是一个典型的元数据配置示例:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{assNo}"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{companyCode}"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"ZZCX01_SYS"},
    {"field":"FAffairType","label":"事务类型","type":"string","describe":"下拉列表","value":"_function case {assembleType} when 1 then 'Assembly' else 'Dassembly' end"},
    {"field":"FSubProOwnerIdH","label":"子件货主","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{companyCode}"},
    {"field":"FSubProOwnTypeIdH","label":"子件货主类型","type":"string","describe":"组织","value":"BD_OwnerOrg"},
    {"field":"FOwnerTypeIdHead","label":"成品货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
    {"field":"FOwnerIdHead","label":"成品货主","type":"string","describe":"多类别基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{companyCode}"},
    {"field":"FDate","label":"","type":"","describe":"","value":""},
    {"field":"","label":"","type":"","describe":"","value":""}
  ],
  "otherRequest":[
    {"field":"","label":"","type":"","describe":"","value":""}
  ]
}

数据转换与写入

  1. 请求头设置:在请求头中,我们需要指定API路径和HTTP方法。在这个例子中,api字段设定为batchSave,表示我们将使用金蝶云星空的批量保存接口;method字段设定为POST,表示我们将使用HTTP POST方法发送请求。

  2. 字段映射与转换

    • FBillNo:单据编号,从源数据中的assNo字段获取。
    • FStockOrgId:库存组织,需要通过ConvertObjectParser解析器将源数据中的公司代码(companyCode)转换为金蝶系统识别的格式。
    • FBillTypeID:单据类型,固定值为“ZZCX01_SYS”,同样需要通过解析器进行转换。
    • FAffairType:事务类型,根据条件判断,如果装配类型(assembleType)为1,则值为“Assembly”,否则为“Dassembly”。
    • FSubProOwnerIdH, FOwnerIdHead, FOwnerIdSETY, 等等:这些字段都需要通过解析器将公司代码转换为金蝶系统识别的格式。
  3. 日期格式化

    • FDate: 日期字段,需要通过函数将UNIX时间戳(毫秒)转换为标准日期时间格式。
  4. 嵌套数组处理

    • FEntity: 成品信息,包括物料编码、数量、仓库等,需要从源数据中的产品信息(product)提取并映射到相应字段。
    • FSubEntity: 子件信息,包括物料编码、数量、仓库等,需要从源数据中的材料信息(material)提取并映射到相应字段。
  5. 其他请求参数

    • FormId: 固定值“STK_AssembledApp”,表示业务对象表单ID。
    • IsAutoSubmitAndAudit: 设置为true,表示自动提交并审核。
    • IsVerifyBaseDataField: 设置为true,表示验证所有基础资料有效性。

实际案例

假设我们有如下源数据:

{
  "assNo": "A12345",
  "companyCode": "C001",
  "assembleType": 1,
  "applyDate": 1672531199000,
  "remark": "测试备注",
  "product": [
    {
      "goodsNo": "P001",
      "quantity": 10,
      "warehouseCode": "W001",
      "rowRemark": ""
    }
  ],
  "material": [
    {
      "goodsNo": "",
      ""
      ""
      ""
      ""
      ""
      ""

根据上述元数据配置和处理逻辑,我们可以生成如下目标平台所需的数据格式:

{
  ...
}

通过轻易云的数据集成平台,我们可以轻松实现复杂的数据转换和写入操作,从而确保不同系统间的数据无缝对接,提高业务效率。 如何开发金蝶云星空API接口

更多系统对接方案