ETL转换:将吉客云销售数据高效写入金蝶云系统

  • 轻易云集成顾问-姚缘

吉客云·奇门数据集成到金蝶云星空:从销售订单到销售出库单的全流程解决方案

在实际业务场景中,经常需要将不同系统的数据进行对接与集成,以实现信息的一致性和业务流程的无缝衔接。本案例详细介绍了如何使用轻易云数据集成平台,将吉客云·奇门上的(线上)销售订单高效、准确地同步至金蝶云星空,并生成相应的销售出库单。

确保不漏单的关键:定时抓取与实时监控

首先,为确保从吉客云·奇门获取的数据不遗漏,我们使用jackyun.tradenotsensitiveinfos.list.get接口,通过定时任务机制,可靠地抓取在线销售订单数据。该机制结合轻易云平台提供的实时监控功能,可以随时查看数据流动情况,保证每一条记录都能被成功读取并处理。

高效写入大量数据:批量操作与分页策略

为了应对大量订单数据快速写入金蝶云星空的问题,我们调用其batchSave API,实现批量数据插入。此过程中需特别注意的是,由于API接口本身存在分页和限流限制,因此我们设计了相关策略来合理划分请求次数,从而避免触发限流规则导致的数据丢失或处理延迟问题。

数据格式差异与自定义映射:提升兼容性和精度

在将吉客云·奇门的数据转换为金蝶云星空所需格式前,还涉及了一些必要的数据清洗和标准化操作。例如,两者之间可能存在字段名称、类型或结构上的差异,为解决这些问题,我们通过灵活配置字段映射关系,实现对各个目标字段精准对应。此外,针对一些复杂或特殊需求,可利用轻易平台提供的自定义脚本功能,对原始数据信息再作进一步加工处理。

通过上述步骤,不仅实现了两大系统间高效、平稳的数据交互,也为企业优化资源管理、提升运营效率打下坚实基础。在后续部分,将继续深入探讨具体实现细节及异常情况处理措施。

用友与MES系统接口开发配置

使用轻易云数据集成平台调用吉客云·奇门接口获取并加工数据

在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get,并对获取的数据进行初步加工。

接口配置与请求参数

首先,我们需要配置元数据,以便正确调用吉客云·奇门的API接口。以下是元数据配置的详细信息:

{
  "api": "jackyun.tradenotsensitiveinfos.list.get",
  "effect": "QUERY",
  "method": "POST",
  "number": "tradeNo",
  "id": "tradeNo",
  "idCheck": true,
  "request": [
    {"field": "startModified", "label": "startModified", "type": "string", "value": "{{LAST_SYNC_TIME|datetime}}"},
    {"field": "endModified", "label": "endModified", "type": "string", "value": "{{CURRENT_TIME|datetime}}"},
    {"field": "pageSize", "label": "pageSize", "type": "string", "describe":"111","value":"{PAGINATION_PAGE_SIZE}"},
    {"field": "pageIndex", "label": "pageIndex", "type": "string",  "describe":"111","value":"{PAGINATION_START_PAGE}"},
    {"field": "fields", 
        "label":"fields",
        "type":"string",
        "describe":"111",
        "value":"tradeNo,orderNo,shopName,companyName,warehouseName,logisticName,mainPostid,goodsDetail.goodsNo,..."}
    },
    {"field":"isDelete","label":"isDelete","type":"string"},
    {"field":"tradeStatus","label":"tradeStatus","type":"string","value":"6000"},
    {"field":"tradeTypeList","label":"tradeTypeList","type":"string","value":"1,2,3,4,5,6,7,9,10,11,13,91,92,93,100","parser":{"name":"StringToArray","params":","}}
  ],
  ...
}

请求参数解析

  1. 时间参数

    • startModifiedendModified 分别表示查询的起始和结束时间,使用动态变量 {{LAST_SYNC_TIME|datetime}}{{CURRENT_TIME|datetime}} 来自动填充。
  2. 分页参数

    • pageSizepageIndex 用于分页查询,确保每次请求的数据量适中,避免一次性获取过多数据导致性能问题。
  3. 字段选择

    • fields 参数指定了需要返回的字段列表,包括订单号、商品详情等多个字段。这些字段在后续的数据处理和转换中将被用到。
  4. 过滤条件

    • isDeletetradeStatus 用于过滤已删除或特定状态的交易记录。
    • tradeTypeList 使用了自定义解析器 StringToArray 将字符串转换为数组,以便支持多种交易类型的查询。

数据请求与清洗

在完成接口配置后,通过轻易云平台发起POST请求,从吉客云·奇门系统获取原始数据。获取的数据可能包含多层嵌套结构,需要进行初步清洗和展平(flatten)操作。

例如,对于嵌套的商品详情(goodsDetail),可以通过以下步骤进行处理:

  1. 展平嵌套结构

    • 使用平台提供的 beatFlat 功能,将嵌套的商品详情和配送信息展平为一维结构,便于后续处理。
  2. 过滤无效数据

    • 根据条件配置中的逻辑规则(如:shopCode 不等于某值,goodsDetail.goodsNo 不等于某值),过滤掉不符合条件的数据记录。

数据转换与写入

经过清洗后的数据,需要进一步转换为目标系统所需的格式,并写入金蝶系统。此过程包括:

  1. 字段映射

    • 将源系统中的字段映射到目标系统中的相应字段。例如,将 tradeNo 映射为金蝶系统中的订单编号。
  2. 格式转换

    • 根据目标系统要求,对日期、数值等字段进行格式转换。例如,将日期格式从ISO标准转换为目标系统所需的格式。
  3. 批量写入

    • 使用轻易云平台提供的批量写入功能,将处理后的数据高效地导入金蝶系统,确保数据一致性和完整性。

通过以上步骤,我们成功实现了从吉客云·奇门接口获取销售订单数据,并将其加工后写入金蝶系统。这不仅提高了数据处理效率,也确保了不同系统间的数据一致性和准确性。 轻易云数据集成平台金蝶集成接口配置

数据集成生命周期中的ETL转换:将吉客云奇门销售订单数据写入金蝶云星空

在数据集成的生命周期中,ETL(提取、转换、加载)是至关重要的一环。本文将详细探讨如何通过轻易云数据集成平台,将从吉客云奇门获取的销售订单数据进行转换,并写入到金蝶云星空的API接口中。

API接口配置与元数据解析

在进行ETL操作之前,首先需要理解金蝶云星空API接口的配置及其元数据。以下是一个典型的API配置:

{
    "api": "batchSave",
    "method": "POST",
    "idCheck": true,
    "operation": {
        "method": "merge",
        "field": "tradeNo",
        "bodyName": "details",
        "bodySum": ["goodsDetail_goodsDelivery_sendCount"],
        "header": ["tradeNo", "shopCode", "warehouseCode", "sourceTradeNos", "consignTime", "onlineTradeNo"],
        "body": ["goodsDetail_goodsNo", "goodsDetail_goodsDelivery_sendCount", "goodsDetail_goodsDelivery_batchamount", 
                 "goodsDetail_goodsDelivery_batchNo", "goodsDetail_shareFavourableAfterFee", 
                 "goodsDetail_sellTotal", "goodsDetail_sellCount"]
    },
    ...
}

该配置文件定义了API请求的方法、需要检查的ID字段、以及操作方式等关键参数。

数据转换与映射

在数据转换过程中,需要将吉客云奇门的数据字段映射到金蝶云星空所需的字段格式。以下是一些关键字段及其映射关系:

  • tradeNo -> FBillNo(单据编号)
  • consignTime -> FDate(日期)
  • shopCode -> FCustomerID(客户)
  • warehouseCode -> FStockID(仓库)

具体的字段映射配置如下:

[
    {"field":"FBillTypeID","label":"单据类型","type":"string","value":"XSCKD01_SYS"},
    {"field":"FBillNo","label":"单据编号","type":"string","value":"{tradeNo}"},
    {"field":"FDate","label":"日期","type":"string","value":"{{consignTime|date}}"},
    {"field":"FCustomerID","label":"客户","type":"string","value":"{shopCode}"},
    {"field":"FStockOrgId","label":"发货组织","type":"string","value":"100"},
    {"field":"FNote","label":"备注","type":"string","value":"{sellerMemo}"},
    {"field":"FEntity","label":"明细信息","type":"array",
     ...
     }
]

数据处理逻辑与函数应用

在处理复杂的数据转换时,可能需要使用函数来计算或格式化某些字段。例如,计算含税单价和判断是否为赠品:

{
  ...
  {"field":"FTaxPrice","label":"含税单价","type":"string",
   "value":"_function {{details.goodsDetail_shareFavourableAfterFee}}/{{details.goodsDetail_sellCount}}"
  },
  {"field":"FIsFree","label":"是否赠品","type":"string",
   "value":"_function CASE WHEN {{details.goodsDetail_sellTotal}}>0 THEN 'false' ELSE 'true' END"
  }
}

上述配置中,使用了自定义函数来计算含税单价,并根据销售总额判断是否为赠品。

请求组装与发送

完成数据转换后,需要组装请求并发送到金蝶云星空API。以下是一个完整的请求示例:

{
  "FormId": "SAL_OUTSTOCK",
  "Operation": {
      ...
  },
  ...
  {
      ...
      {
          ...
          {
              ...
              {
                  ...
                  {
                      ...
                  }
              }
          }
      }
  }
}

通过POST方法将组装好的请求发送至batchSave API端点,实现数据的写入操作。

实时监控与错误处理

在整个ETL过程中,通过轻易云平台提供的实时监控功能,可以随时查看数据流动和处理状态。一旦出现错误,可以根据日志信息快速定位并修正问题。

总结来说,通过合理配置元数据和API接口,利用轻易云平台强大的ETL功能,可以高效地将吉客云奇门的数据无缝集成到金蝶云星空,实现不同系统间的数据互通。 如何对接钉钉API接口

更多系统对接方案