轻易云平台如何实现复杂ETL转换并写入金蝶云

  • 轻易云集成顾问-蔡威

Q7预入库ToOMS预入库单:旺店通·旗舰奇门数据集成到金蝶云星空

在系统对接与数据集成的实际项目中,如何高效、准确地将多个平台的数据无缝衔接,是每个技术团队都面临的挑战。本文将聚焦于一个具体案例——将旺店通·旗舰奇门的数据集成到金蝶云星空,通过该实例详细探讨技术实现细节。

首先,我们需要解决的是从旺店通·旗舰奇门获取待处理的预入库单数据。这一步主要通过调用wdt.wms.stockin.prestockin.search接口完成,此接口负责返回符合条件的预入库单信息。为了确保获取过程不漏单,需特别注意分页和限流问题,该接口支持分页查询参数,因此在实际操作中,可以采用循环调用并结合适当等待时间以应对限流限制。

接下来,将提取的数据快速且批量写入到金蝶云星空是另一个关键环节。在此过程中,需要使用金蝶提供的batchSave API 进行数据写入操作。要保证大数据量能迅速、高效地导入,并发机制和事务控制成为重中之重。此外,还必须针对两者之间的数据格式差异进行适当转换,这往往涉及字段映射以及单位转换等细微但至关重要的调整。

当然,在整个流程运行期间,对实时监控和日志记录也提出了较高要求。一旦出现异常情况,如网络波动导致连接断开或API响应超时,通过完善的错误捕捉与自动重试机制,能够有效避免因突发状况而造成业务中断。同时,为了进一步提高系统透明度,实现完整生命周期管理,每一次数据传输及处理状态都应该被详细记录与可视化展示。

综上所述,本案例旨在说明如何通过精准调用API、优化性能设置、健全监控体系,最终实现跨平台复杂场景下的数据顺畅迁移与同步。 用友与外部系统接口集成开发

调用旺店通·旗舰奇门接口wdt.wms.stockin.prestockin.search获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.wms.stockin.prestockin.search,并对获取的数据进行加工处理。

接口调用配置

首先,我们需要配置API接口的元数据,以确保能够正确地请求和处理数据。以下是该接口的元数据配置:

{
  "api": "wdt.wms.stockin.prestockin.search",
  "method": "POST",
  "number": "stockin_no",
  "id": "stockin_id",
  "idCheck": true,
  "request": [
    {
      "field": "pager",
      "label": "分页参数",
      "type": "object",
      "children": [
        {
          "field": "page_size",
          "label": "分页大小",
          "type": "int",
          "value": 50,
          "parent": "pager"
        },
        {
          "field": "page_no",
          "label": "页号",
          "type": "int",
          "value": 1,
          "parent": "pager"
        }
      ]
    },
    {
      "field": "params",
      "label": "业务参数",
      "type": "object",
      ...
    }
  ],
  ...
}

请求参数详解

在请求参数中,我们需要特别关注分页参数和业务参数:

  • 分页参数:用于控制每次请求的数据量和页码。

    • page_size:每页返回的数据条数,默认值为50。
    • page_no:当前请求的页码,默认值为1。
  • 业务参数:用于指定查询条件。

    • mt_frommt_to:修改时间范围,使用模板变量动态生成时间。
    • status:入库单状态,默认值为80。
    • warehouse_nostockin_nologistics_no:分别为仓库编码、入库单号和寄回物流单号。

数据过滤与清洗

在获取数据后,需要对数据进行过滤和清洗。根据元数据配置中的条件,我们可以设置过滤规则。例如:

"condition_bk":[[{"field":"logistics_no","logic":"notlike","value":"WP"}]],
"condition":[[{"field":"logistics_no","logic":"notlike","value":"WP"}]]

上述条件表示过滤掉物流单号包含“WP”的记录。这一步骤确保了我们只处理符合业务需求的数据。

数据转换与写入

在完成数据清洗后,需要将数据转换为目标系统可接受的格式,并写入到目标系统中。这一步通常涉及字段映射和格式转换。例如,将源系统中的字段名映射到目标系统中的字段名,并根据目标系统的要求调整数据格式。

异常处理与监控

在整个过程中,异常处理和监控也是不可忽视的部分。轻易云平台提供了全透明可视化的操作界面,可以实时监控数据流动和处理状态。一旦出现异常,可以及时采取措施进行修复。

通过以上步骤,我们实现了从调用源系统接口到数据清洗、转换和写入的一整套流程。在实际操作中,根据具体业务需求,还可以进一步优化和调整各个环节,以提升整体效率和准确性。 用友与CRM系统接口开发配置

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

在数据集成过程中,ETL(提取、转换、加载)是至关重要的一环。本文将深入探讨如何通过轻易云数据集成平台,将源平台的数据进行转换,最终写入金蝶云星空API接口所能接收的格式。

元数据配置解析

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

{
  "api": "batchSave",
  "method": "POST",
  "operation": {
    "rowsKey": "array",
    "rows": 20,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FStockOrgId","label":"库存组织","type":"string","value":"106","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{stockin_no}"},
    {"field":"Fwarehouse_no","label":"仓库代码","type":"string","describe":"组织","value":"{warehouse_no}"},
    {"field":"Fstatus","label":"状态","type":"string","value":"{status}"},
    {"field":"FRemark","label":"备注","type":"string","value":"{remark}"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{{check_time|datetime}}"},
    {"field":"Fshop_no","label":"店铺代码","type":"string"},
    {"field":"Fshop_name","label":"店铺","type":"string"},
    {"field":"Flogistics_no","label":"快递单号","type":"string","describe":"基础资料","value":"{logistics_no}"},
    {"field":"Flogistics_code","label":"物流公司","type":"string","describe":"","value": "{logistics_name}"},
    {"field": "FSrcBillNo", "label": "源单编号", "type": "string"},
    {
      "field": "FEntity",
      "label": "明细信息",
      "type": "array",
      "children": [
        {"field": "FMaterialID", "label": "料号", "type": "string", 
         "value": "{{detail_list.goods_no}}", 
         "parser":{"name": "ConvertObjectParser", 
                   "params": "FNumber"}
        },
        {"field": "FGoodNo", 
         "label": "", 
         "type": "", 
         "", 
         "{{detail_list.goods_no}}", 
         ""},
        {"field": "", 
         "", 
         "", 
         "{{detail_list.num}}", 
         ""},
        {"field":"","","","{{detail_list.remark}}"}
      ],
      ""
    }
  ],
  "",
  [
    {
      "",
      "",
      "",
      "",
      ""
    },
    {
      "",
      "",
      "",
      ""
    }
  ],
  ""
}

数据请求与清洗

在数据请求阶段,我们从源系统中提取原始数据。这些数据通常是杂乱无章且格式不统一的,因此需要进行清洗和标准化处理。在轻易云平台上,可以使用各种内置工具和自定义脚本来完成这一过程。

数据转换与写入

接下来是关键的ETL转换步骤。在这个阶段,我们将清洗后的数据按照金蝶云星空API接口要求的格式进行转换。以下是具体操作步骤:

  1. 设置API和请求方法

    • api字段指定了目标API接口为batchSave
    • method字段指定了HTTP请求方法为POST
  2. 配置操作参数

    • operation部分定义了批量保存操作的细节,包括每次批量处理的数据行数(20行)和方法名称(batchArraySave)。
  3. 映射字段

    • 每个字段在request数组中都进行了详细配置。例如,FBillNo字段映射到源数据中的stockin_no,并且类型为字符串。
    • 使用解析器(如ConvertObjectParser)对某些字段进行特殊处理,例如将库存组织ID从对象转换为数字。
  4. 处理嵌套结构

    • 对于复杂的嵌套结构,如明细信息(FEntity),需要逐层定义每个子字段,并使用模板语言(如Mustache)来引用源数据中的相应值。
  5. 其他请求参数

    • otherRequest部分包含了一些额外的参数,例如业务对象表单ID(FormId),验证基础资料有效性(IsVerifyBaseDataField),以及执行的操作(Operation)。

实际案例

假设我们有一批预入库单,需要将其导入到金蝶云星空系统中。预入库单的数据结构如下:

{
  “stockin_no”: “SI20231001”,
  “warehouse_no”: “WH001”,
  “status”: “Pending”,
  “remark”: “Initial stock”,
  “check_time”: “2023-10-01T10:00:00Z”,
  “logistics_no”: “LN123456789”,
  “logistics_name”: “DHL”,
  “detail_list”: [
     {
       “goods_no”: “G001”,
       “num”: 100,
       “remark”: “First batch”
     },
     {
       “goods_no”: “G002”,
       “num”: 200,
       “remark”: “Second batch”
     }
   ]
}

通过上述元数据配置,我们可以将该预入库单的数据转换为金蝶云星空API所需的格式,并发送POST请求进行批量保存操作。

总结

通过轻易云数据集成平台,我们能够高效地完成从源系统到目标系统的数据ETL转换和写入过程。本文详细介绍了如何利用元数据配置,实现对金蝶云星空API接口的数据集成,为实际业务场景提供了强有力的技术支持。 金蝶与CRM系统接口开发配置

更多系统对接方案