ETL转换:从旺店通到金蝶云星空的数据写入流程

  • 轻易云集成顾问-卢剑航

旺店通物料对接金蝶-new:从旗舰奇门到金蝶云星空的数据集成实战

在企业信息化系统对接中,高效且稳定的数据集成方案至关重要。本案例聚焦于如何通过轻易云数据集成平台实现旺店通·旗舰奇门与金蝶云星空之间的无缝数据对接,完成物料信息的全面互联。这一过程中,选用了关键的API接口wdt.goods.goods.querywithspecbatchSave来分别获取及保存数据,从而保证了整个流程的顺畅进行。

确保不漏单

为了确保集成过程中所有订单信息能够完整捕获,我们通过调用旺店通·旗舰奇门提供的API接口wdt.goods.goods.querywithspec。这一操作不仅能够获取详细商品规格,还能极大限度地避免数据遗漏。在配置过程中,我们依靠轻易云提供的平台特性,实现了定时可靠的抓取任务,无需手动干预,从而提升了业务处理效率。

大量数据快速写入

在实际应用场景中,通常需要将大量查询结果批量写入到金蝶云星空。我们采用了其开放API batchSave进行高效的数据传输,这一策略不仅提高了处理速度,同时也显著降低了系统资源消耗。在实施这一步骤时,通过优化批次大小和并发数,有效规避了网络延迟和性能瓶颈问题。

解决分页与限流

由于旺店通·旗舰奇门API存在请求分页和限流限制,在设计方案时特别注意这些技术细节。为此,我们在服务器端建立了一套健壮的分页机制,并配合使用缓存队列存储临时拉取的数据,以应对高频请求情况,同时实时监控执行状态保障任务顺利完成。

综上所述,本技术案例以实现稳健、高效、自动化为目标,通过合理选择并配置相关接口方法,实现两个异构系统间的数据无缝交互,为企业日常运营提供有力支持。 如何开发金蝶云星空API接口

调用旺店通·旗舰奇门接口wdt.goods.goods.querywithspec获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.goods.goods.querywithspec来获取并加工数据。

接口概述

接口wdt.goods.goods.querywithspec用于查询商品信息,支持按商家编码、货品编号、品牌编号等多种条件进行查询。该接口采用POST请求方式,返回符合条件的商品信息列表。

元数据配置解析

元数据配置如下:

{
  "api": "wdt.goods.goods.querywithspec",
  "effect": "QUERY",
  "method": "POST",
  "number": "goods_no",
  "id": "goods_no",
  "name": "brand_name",
  "idCheck": true,
  "request": [
    {
      "field": "pager",
      "label": "分页参数",
      "type": "object",
      "describe": "分页参数",
      "children": [
        {
          "field": "page_size",
          "label": "分页大小",
          "type": "int",
          "describe": "分页大小",
          "value": "50"
        },
        {
          "field": "page_no",
          "label": "页号",
          "type": "int",
          "describe": "从1开始",
          "value": "1"
        }
      ]
    },
    {
      "field": "params",
      ...
    }
  ],
  ...
}

请求参数详解

  1. 分页参数

    • page_size:每页返回的数据条数,默认值为50。
    • page_no:页码,从1开始。
  2. 业务参数

    • spec_no:商家编码。
    • goods_no:货品编号。
    • brand_name:品牌编号。
    • class_name:分类名称。
    • barcode:条码。
    • hide_deleted:是否隐藏已删除的货品。0表示返回全部,1表示隐藏已删除,默认隐藏。
    • start_time:起始修改时间,默认值为上次同步时间({{LAST_SYNC_TIME|datetime}})。
    • end_time:结束修改时间,默认值为当前时间({{CURRENT_TIME|datetime}})。

数据请求与清洗

在实际操作中,我们需要按照以下步骤进行数据请求与清洗:

  1. 构建请求体

    根据元数据配置构建请求体,例如:

    
    {
     ...
     {
       ...
       {
         ...
         {
           ...
           {
             ...
             {
               ...
               {
                 ...
                 {
                   ...
                   {
                     ...
                     {
                       ...
                       {
                         ...
                         {
                           ...
                           {
                             ...
                             {
                               ...
                               {
                                 ...
                                 {
                                   ...
                                   {
                                     ...
    ![系统集成平台API接口配置](https://pic.qeasy.cloud/S11.png~tplv-syqr462i7n-qeasy.image)
    ### 使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在数据集成过程中,将源平台的数据转换为目标平台可接收的格式是至关重要的一步。本文将详细探讨如何利用轻易云数据集成平台,将旺店通物料数据通过ETL(提取、转换、加载)过程,转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

数据请求与清洗

首先,确保从源平台(如旺店通)获取的数据是完整且准确的。数据请求阶段通常涉及API调用以获取原始数据,并对这些数据进行初步清洗和验证,以确保其符合预期格式和内容要求。这一步骤虽然重要,但本文重点将放在后续的ETL转换和写入操作上。

数据转换与写入

在完成初步的数据清洗后,接下来就是关键的ETL转换过程。根据提供的元数据配置,我们需要将源平台的数据字段映射到目标平台金蝶云星空API接口所需的字段格式。以下是具体步骤:

  1. 定义API接口参数

    • API接口为batchSave,使用POST方法。
    • 需要进行ID检查(idCheck: true)。
    • 操作类型为批量保存(operation: { rowsKey: "array", rows: 1, method: "batchArraySave" })。
  2. 字段映射

    • 将源平台的字段映射到目标平台对应的字段。例如,将旺店通物料编码(goods_no)映射到金蝶云星空的编码字段(FNumber)。
[
    {"field": "FNumber", "label": "编码", "type": "string", "value": "{goods_no}"},
    {"parent": "SubHeadEntity", "label": "商品编码", "field": "F_ZZZZ_SJBM", "type": "string", "value": "{{spec_list.spec_no}}"},
    {"field": "FName", "label": "名称", "type": "string", "value": "{goods_name}"},
    {"field": "FDescription", "label": "描述", "type": "string"},
    {"field": "FCreateOrgId", "label": "创建组织", "type": "string", 
        "parser":{"name":"ConvertObjectParser","params":"FNumber"}, 
        "value":"100"},
    {"field": "FUseOrgId", "label": "使用组织", 
        "type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"}, 
        "value":"100"}
]
  1. 子实体处理
    • 对于复杂结构的数据,如包含子实体,需要进一步细化映射。例如,物料属性、基本单位、存货类别等信息都需要分别处理。
{
    "field":"SubHeadEntity",
    "label":"基本",
    ...
}
  1. 单位换算
    • 对于涉及单位换算的字段,需要特别注意其结构和内容。例如,采购单位与基本单位之间的换算关系。
{
    ...
    {
        ...
        {
            ...
            {
                ...
                {
                    ...
                    {
                        ...
                        {
                            ...
                            {
                                ...
                                {
                                    ...
                                    {
                                        ...
                                        {
                                            ...
                                            {
                                                ...
                                                {
                                                    ...
                                                    {
                                                        ...
                                                        {
                                                            ...
                                                            {
                                                                ...
                                                                {
                                                                    ...
                                                                    {
                                                                        ...
                                                                        {
                                                                            ...
                                                                            {
                                                                                ...
                                                                                {
                                                                                    ...

5. **其他请求参数**:
   - 设置业务对象表单ID、执行操作类型等其他必要参数。

```json
[
    {"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"BD_MATERIAL"},
    {"field":"Operation","label":"执行的操作","type":"string","value":"Save"},
    {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","value":"false"},
    {"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"false"}
]

实际操作示例

假设我们有如下原始数据:


{
  "goods_no": "12345",
  ...

我们将其通过上述配置进行转换,并生成最终发送到金蝶云星空API接口的数据格式:

```json
{
  ...

通过轻易云数据集成平台,我们可以实现上述复杂的数据转换过程,并确保每个步骤都透明可见,从而提高整体业务效率和准确性。
![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/T23.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案