转载 聚水潭与金蝶云星空数据集成技术方案

发布时间:
更新时间:
浏览次数:1180
评论数:0

聚水潭数据集成到金蝶云星空的技术案例分享

在企业日常运营中,数据的高效流转和准确对接至关重要。本文将聚焦于一个具体的系统对接集成案例:如何通过轻易云数据集成平台,将聚水潭中的盘点单数据无缝集成到金蝶云星空中的其他出库单。

方案概述

本次集成方案命名为“聚水潭-盘点单-->金蝶-其他出库单”,旨在实现从聚水潭获取盘点单数据,并将其批量写入到金蝶云星空的其他出库单模块中。该方案不仅需要处理大量的数据,还需确保每一条记录的准确性和实时性。

技术要点

  1. 高吞吐量的数据写入能力: 为了满足业务需求,我们需要支持高吞吐量的数据写入能力,使得大量盘点单数据能够快速被集成到金蝶云星空系统中,从而提升整体数据处理时效性。

  2. API接口调用与分页处理: 聚水潭提供了获取盘点单数据的API接口/open/inventory/count/query,我们需要定时可靠地抓取这些接口数据。同时,由于接口存在分页和限流问题,我们必须设计合理的分页策略,以确保所有数据都能被完整获取,不漏单。

  3. 自定义数据转换逻辑: 聚水潭与金蝶云星空之间的数据格式存在差异,为此我们需要支持自定义的数据转换逻辑,以适应特定业务需求和不同的数据结构。这一步骤对于保证数据的一致性和完整性尤为关键。

  4. 集中监控与告警系统: 集成过程中,实时监控任务状态和性能是必不可少的。通过集中监控和告警系统,我们可以及时发现并处理任何异常情况,确保整个流程顺利进行。

  5. 异常处理与错误重试机制: 在实际操作中,可能会遇到各种异常情况,如网络波动或API调用失败等。因此,我们设计了完善的异常处理与错误重试机制,以提高系统的稳定性和可靠性。

  6. 批量集成与日志记录: 为了提高效率,我们采用批量方式将聚水潭的数据写入到金蝶云星空,同时实现实时监控与日志记录功能,以便后续审计和问题排查。

通过上述技术要点,本次集成方案不仅能够有效解决两大平台间的数据对接问题,还能显著提升业务透明度和运行效率。接下来,我们将详细介绍具体实施步骤及相关配置细节。 数据集成平台API接口配置

金蝶与外部系统打通接口

调用聚水潭接口获取并加工数据

在数据集成过程中,调用源系统的API接口是关键的一步。本文将详细探讨如何通过轻易云数据集成平台调用聚水潭接口/open/inventory/count/query,并对获取的数据进行加工处理。

配置元数据

首先,我们需要配置元数据以便正确调用聚水潭的API接口。以下是相关配置:

{
  "api": "/open/inventory/count/query",
  "method": "POST",
  "number": "io_id",
  "id": "io_id",
  "idCheck": true,
  "buildModel": true,
  "request": [
    {"field":"page_index","label":"开始页码","type":"string","describe":"第几页,从第一页开始,默认1","value":"1"},
    {"field":"page_size","label":"每页条数","type":"string","describe":"每页多少条,默认30,最大50","value":"50"},
    {"field":"modified_begin","label":"修改开始时间","type":"datetime","describe":"修改起始时间,和结束时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空","value":"{{LAST_SYNC_TIME|datetime}}"},
    {"field":"modified_end","label":"修改结束时间","type":"datetime","describe":"修改结束时间,和起始时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"status","label":"单据状态","type":"string","describe":"单据状态,Confirmed=生效,WaitConfirm待审核,Creating=草拟,Archive=归档,Cancelled=作废", "value": "Confirmed"}
  ],
  "condition_bk":[[{"field": "items.qty", "logic": "gt", "value": "0"}]],
  "beatFlat":["items"],
  "condition":[[{"field": "items.qty", "logic": "lt", "value": "-0"}]]
}

数据请求与清洗

在生命周期的第一步,我们需要从聚水潭系统中获取盘点单的数据。通过上述配置,我们可以发起一个POST请求来获取所需的数据。

  1. 分页处理:由于每次请求返回的数据量有限(最大50条),我们需要实现分页机制,通过page_indexpage_size字段控制分页。
  2. 时间过滤:使用modified_beginmodified_end字段限定查询范围,以确保只获取指定时间段内的数据。
  3. 状态过滤:通过设置status为“Confirmed”,我们只提取已生效的盘点单。

数据转换与写入

在成功获取数据后,需要对其进行清洗和转换,以适应目标系统金蝶云星空的格式要求。这一步骤包括:

  1. 字段映射:将聚水潭返回的数据字段映射到金蝶云星空所需的字段。例如,将盘点单中的数量信息映射到其他出库单中的相应字段。
  2. 数据过滤:根据业务需求,对不符合条件的数据进行过滤。例如,只保留数量大于零的记录。
  3. 自定义逻辑:根据特定业务需求,实现自定义的数据转换逻辑。这可能涉及复杂的计算或条件判断。

实时监控与日志记录

为了确保整个过程顺利进行,并及时发现问题,可以利用平台提供的实时监控和日志记录功能。通过这些功能,可以跟踪每个数据集成任务的状态、性能,并在出现异常时及时告警。

  • 高吞吐量支持:平台支持高吞吐量的数据写入能力,使得大量数据能够快速被集成到目标系统中。
  • 异常检测与重试机制:当发生错误时,可以自动触发重试机制,以确保数据不丢失、不漏单。

示例场景

假设我们需要定期从聚水潭拉取过去一天内所有已确认的盘点单,并将其转换为金蝶云星空中的其他出库单。具体步骤如下:

  1. 设置定时任务,每天凌晨执行一次。
  2. 调用聚水潭接口,通过设置合适的时间范围(如前一天至当前时间)来拉取数据。
  3. 对拉取到的数据进行清洗、转换,并批量写入金蝶云星空系统中。
  4. 利用实时监控功能跟踪任务执行情况,并在出现异常时触发告警和重试机制。

以上就是调用聚水潭接口并加工处理数据的方法,通过合理配置元数据和利用平台提供的各种特性,可以高效地完成这一过程。 用友与SCM系统接口开发配置

如何对接企业微信API接口

将聚水潭盘点单数据转换并写入金蝶云星空

在数据集成过程中,ETL(提取、转换、加载)是关键步骤之一。将聚水潭的盘点单数据转换为金蝶云星空可接收的其他出库单格式,需经过多个环节的数据处理与映射。以下详细探讨如何实现这一过程。

数据提取与转换

首先,从聚水潭平台提取盘点单数据。提取的数据包含多个字段,如单据编号、库存组织、领用组织、日期、物料编码等。这些数据需要根据金蝶云星空API接口的要求进行转换。

元数据配置如下:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{items_io_id}"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"标准其他出库单:QTCKD01_SYS\n资产出库:QTCKD02_SYS\nVMI出库:QTCKD03_SYS\n费用物料出库:QTCKD04_SYS\n库存调整:QTCKD05_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTCKD01_SYS"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{brand}"},
    {"field":"FPickOrgId","label":"领用组织","type":"string","describe":"领用组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{brand}"},
    {"field":"FStockDirect","label":"库存方向","type":"string","describe":"库存方向","value":"GENERAL"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{io_date}"},
    {"field": "FEntity", "label": "明细信息", "type": "array", "describe": "明细信息", "value": "list", 
      "children":[{"field": "FMaterialId", "label": "物料编码", "type": "string", 
                  "describe": "基础资料", 
                  "parser":{"name": "ConvertObjectParser", 
                            "params": "FNumber"}, 
                  "value": "{items_sku_id}"}
                ]
     }
  ],
  ...
}

数据映射与转换逻辑

  1. 字段映射

    • FBillNo映射到items_io_id
    • FBillTypeID固定为QTCKD01_SYS
    • FStockOrgIdFPickOrgId均映射到brand,并通过ConvertObjectParser进行解析。
    • FDate直接从源数据中的日期字段获取。
  2. 复杂逻辑处理

    • FDeptId: 根据品牌(brand)字段的值,通过条件语句选择不同的部门编码。例如,当品牌是'7or9'时,部门编码为'BM2800'。
    • FEntity: 包含多条明细记录,每条记录对应一个物料编码和数量等信息。需要对子项进行循环处理,将每个子项的物料编码(items_sku_id)和实发数量(items_qty)进行相应的转换。

数据加载

完成数据转换后,通过调用金蝶云星空API接口将数据写入目标平台。调用方式采用POST请求,并设置相关参数,如自动提交并审核、验证基础资料等。

{
  ...
  {
    field: 'FormId',
    label: '业务对象表单Id',
    type: 'string',
    describe: '必须填写金蝶的表单ID如:PUR_PurchaseOrder',
    value: 'STK_MisDelivery'
  },
  {
    field: 'IsAutoSubmitAndAudit',
    label: '提交并审核',
    type: 'bool',
    describe: '提交并审核',
    value: true
  },
  ...
}

异常处理与重试机制

在实际操作中,可能遇到网络延迟或API调用失败等异常情况,需要设计异常处理与重试机制。例如,当接口返回错误时,可以记录日志并设置重试次数,以确保数据最终成功写入目标平台。

实时监控与日志记录

为了确保整个ETL过程顺利进行,实时监控和日志记录至关重要。通过集成平台提供的监控系统,可以实时跟踪每个数据集成任务的状态和性能,及时发现并解决问题。

总结

通过上述步骤,实现了将聚水潭盘点单数据转换为金蝶云星空其他出库单格式,并成功写入目标平台。在这个过程中,关键在于准确的数据映射、灵活的转换逻辑以及完善的异常处理机制。 如何开发钉钉API接口

金蝶与SCM系统接口开发配置