通过轻易云平台实现数据的ETL转换与写入金蝶云星空

  • 轻易云集成顾问-姚缘

简道云数据集成到金蝶云星空的最佳实践案例分享

在现代企业信息化建设中,数据的高效、准确传递至关重要。本文将详细介绍如何将简道云中的“其他入库单”数据集成到金蝶云星空,实现业务流程的自动化与高效管理。本方案名为“简道云-其他入库单--->金蝶-其他入库单”,通过轻易云的数据集成平台,我们可以灵活、高效地配置和监控整个数据处理过程。

为了确保每一笔简道云中的“其他入库单”都能精准、不遗漏地写入到金蝶云星空,我们需要进行以下关键技术操作:

  1. 调用简道云API接口:首先,通过 /api/v2/app/{app_id}/entry/{entry_id}/data 接口从简道云获取所需的数据。该接口支持分页机制,使得当有大量记录时,可以分批次抓取,避免超出接口限流规定。

  2. 处理分页与限流问题:由于简道云API接口对返回的数据量有限制,因此我们必须合理利用分页参数,每次抓取固定数量的数据。同时,为防止触发限流限制,应设置合适的请求速率。

  3. 数据格式转换:鉴于简道云与金蝶云星空之间存在数据格式差异,在进行数据传输前,需要将获取到的数据经过规范化转换,以符合金蝶系统要求。这一步骤涉及字段映射及特殊值处理等细节工作,这里依托轻易平台提供丰富的ETL工具,大幅提升改造效率。

  4. 大批量快速写入:集成过程中,经常会遇到需要同步大量历史数据或高频交易流水。在这一环节,通过调用 batchSave API 可以实现批量快速录入;特别注意的是,为提高稳定性和安全性,还应搭配错误重试机制,即在出现异常时可重新执行操作以保证任务最终完成。

  5. 实时监控与日志记录:使用轻易平台内置的全透明可视化操作界面,可针对各个环节状态进行实时追踪,确保随时掌握任务进展。同时,本方案强调了详细日志记录功能,让运维人员能迅速定位并解决潜在问题,提高整体服务可靠性。

以上是本文章开头部分内容,引导您进入本案例中具体实施技术细节。接下来,将结合实际运行环境逐步分析如何通过这些步骤实现二者间无缝、高效、安全对接,从而进一步优化企业内部管理流程。 如何对接企业微信API接口

调用简道云接口获取并加工数据

在轻易云数据集成平台中,调用源系统接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用简道云接口/api/v2/app/{app_id}/entry/{entry_id}/data来获取并加工数据。

接口配置与调用

首先,我们需要配置并调用简道云提供的API接口。根据元数据配置,以下是具体的请求参数和方法:

  • API路径: /api/v2/app/{app_id}/entry/{entry_id}/data
  • 请求方法: POST
  • 主要参数:
    • appId: 应用ID
    • entryId: 表单ID
    • fields: 需要查询的字段,多个字段以逗号隔开
    • limit: 每页返回数量,默认值为100
    • filter: 过滤参数

以下是一个示例请求体:

{
    "appId": "642307c010703500087839ac",
    "entryId": "64a7b2656a020e0009870703",
    "fields": "_widget_1689138470701,_id",
    "limit": "100",
    "filter": {
        "rel": "and",
        "cond_1": {
            "field": "updateTime",
            "type": "datetime",
            "method": "range",
            "value": ["2023-01-01T00:00:00Z", "{{LAST_SYNC_TIME|datetime}}"]
        },
        "cond_2": {
            "field": "flowState",
            "type": "flowState",
            "method": "in",
            "value": ["1"]
        }
    }
}

数据清洗与转换

在获取到原始数据后,下一步是对数据进行清洗和转换。这一步骤确保数据符合目标系统的要求,并且可以无缝对接。以下是一些常见的数据清洗与转换操作:

  1. 字段映射: 将简道云中的字段映射到目标系统中的相应字段。例如,将简道云中的_widget_1689138470701映射到金蝶系统中的itemCode

  2. 数据格式转换: 将日期格式从ISO 8601转换为目标系统所需的格式。例如,将2023-01-01T00:00:00Z转换为2023/01/01 00:00:00

  3. 数据过滤: 根据业务需求过滤掉不需要的数据。例如,只保留状态为“已审核”的记录。

以下是一个示例代码片段,用于将简道云的数据转换为金蝶系统所需的格式:

import datetime

def transform_data(record):
    transformed_record = {
        'itemCode': record['_widget_1689138470701'],
        'entryId': record['_id'],
        'updateTime': datetime.datetime.strptime(record['updateTime'], '%Y-%m-%dT%H:%M:%SZ').strftime('%Y/%m/%d %H:%M:%S'),
        'flowState': record['flowState']
    }
    return transformed_record

# 示例原始记录
raw_record = {
    '_widget_1689138470701': 'ITEM001',
    '_id': '1234567890',
    'updateTime': '2023-01-01T00:00:00Z',
    'flowState': '1'
}

# 转换后的记录
transformed_record = transform_data(raw_record)
print(transformed_record)

自动填充响应与条件检查

在轻易云平台中,可以配置自动填充响应和条件检查,以确保数据处理的准确性和完整性。根据元数据配置,我们可以设置如下条件:

"autoFillResponse": true,
"condition":[[{"field":"_widget_1602228805094","logic":"egt","value":"2024-04-01timestamp"}]]

这意味着在处理过程中,如果某个字段满足特定条件(例如大于等于某个时间戳),则自动填充响应。这种机制有助于提高数据处理的效率和准确性。

实时监控与调试

为了确保整个过程顺利进行,实时监控和调试是必不可少的。轻易云平台提供了全透明可视化的操作界面,可以实时监控数据流动和处理状态。一旦发现异常,可以迅速定位问题并进行修正。

通过以上步骤,我们可以高效地调用简道云接口获取并加工数据,为后续的数据写入和集成打下坚实基础。 金蝶与WMS系统接口开发配置

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

在数据集成生命周期的第二阶段,我们需要将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,使其符合目标平台金蝶云星空API接口所能接收的格式,并最终写入目标平台。本文将详细探讨这一过程中的关键技术和实现细节。

配置元数据

在进行ETL转换之前,首先需要配置元数据。以下是元数据配置的详细说明:

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

数据请求与清洗

在ETL过程的第一步,我们从源平台(如简道云)请求数据并进行清洗。这个步骤主要涉及到对原始数据进行初步处理,如去除无效数据、填补缺失值等。

{
  "_widget_1704939983297": "...", 
  "_widget_1689138470701": "...", 
  "_widget_1602228805094|datetime": "...", 
  ...
}

数据转换

接下来,我们将清洗后的数据进行转换,以符合金蝶云星空API接口的要求。以下是一些关键字段及其转换规则:

  1. 单据类型(FBillTypeID)

    • 类型:字符串
    • 描述:单据类型
    • 转换器:ConvertObjectParser
    • 参数:FNumber
    • 值:QTRKD01_SYS
  2. 库存组织(FStockOrgId)

    • 类型:字符串
    • 描述:组织
    • 转换器:ConvertObjectParser
    • 参数:FNumber
    • 值:{_widget_1704939983297}
  3. 单据编号(FBillNo)

    • 类型:字符串
    • 描述:单据编号
    • 值:{_widget_1689138470701}
  4. 日期(FDate)

    • 类型:字符串
    • 描述:日期
    • 值:{{_widget_1602228805094|datetime}}
  5. 供应商(FSUPPLIERID)

    • 类型:字符串
    • 值: _findCollection find FNumber from ... where FName={_widget_1706800755390} FUseOrgId_FNumber={_widget_1704939983297}
    • 转换器:ConvertObjectParser
    • 参数:FNumber
  6. 货主类型(FOwnerTypeIdHead)

    • 类型:字符串
    • 描述:多类别基础资料列表
    • 值:BD_OwnerOrg
  7. 货主(FOwnerIdHead)

    • 类型:字符串
    • 描述:多类别基础资料
    • 转换器:ConvertObjectParser
    • 参数:FNumber
    • 值:{_widget_1704939983297}
  8. 备注(FNOTE)

    • 类型:字符串
    • 描述:多行文本
    • 值:{_widget_1682315028057}

明细信息处理

对于明细信息,我们需要处理每一条记录,并确保其格式符合目标平台的要求:

{
  "field": "FEntity",
  ...
  "children": [
    {
      ...
      {
        "field": "FMATERIALID",
        ...
        "value": "{{_widget_1602228805384._widget_1682160091458}}"
      },
      ...
    }
  ]
}

数据写入目标平台

完成所有转换后,使用配置好的API接口将数据写入金蝶云星空。以下是关键参数:

  • FormId: STK_MISCELLANEOUS
  • IsVerifyBaseDataField: true
  • Operation: Save
  • IsAutoSubmitAndAudit: true

使用POST方法调用API,将处理后的数据发送至金蝶云星空,实现最终的数据写入。

{
  ...
  "operation": {
    ...
    "method": "batchArraySave"
  }
}

通过上述步骤,我们成功地将源平台的数据经过ETL转换后,写入到了金蝶云星空中。这一过程不仅保证了数据的一致性和完整性,还提高了系统间的数据交互效率。 如何对接钉钉API接口

更多系统对接方案