数据集成与ETL转换:从聚水潭到金蝶云星辰V2

  • 轻易云集成顾问-黄宏棵

聚水潭·奇门到金蝶云星辰V2的销售退货单数据集成

在实际业务操作中,企业往往需要将多个系统的数据进行有效整合,以确保信息流的一致性和准确性。本文将介绍如何通过轻易云数据集成平台,实现聚水潭·奇门的销售退货单数据无缝映射到金蝶云星辰V2。此次集成任务旨在利用API接口技术,将来自聚水潭·奇门的jushuitan.refund.list.query接口获取的数据,精准高效地写入至金蝶云星辰V2的/jdy/v2/scm/sal_in_bound接口。

数据抓取和处理

首先,我们需要从聚水潭·奇门获取待处理的销售退货单列表。通过调用其jushuitan.refund.list.query API,我们能实时抓取相关数据。这一过程中,需要特别注意分页与限流机制,以确保在大量数据请求时不遗漏任何订单并避免对API服务造成过大压力。

{
  "api_name": "jushuitan.refund.list.query",
  "timestamp": "2023-10-01T12:34:56Z",
  ...
}

这一阶段的重要步骤包括:

  1. 设置定时任务以周期性调度该API,并可靠地抓取当前所有待处理订单。
  2. 实现分页处理逻辑,通过递增查询条件参数来迭代获取全量数据。
  3. 应用限流策略,例如每分钟最大请求次数限制,从而避免触发服务器端保护机制。

数据格式转换与映射

由于聚水潭·奇门与金蝶云星辰V2之间的数据结构存在差异,必须进行必要的数据格式转换。在此环节,定制化的字段映射规则尤为关键,可以借助轻易云提供的平台功能实现具体字段间的一一对应关系。

例如: 聚水潭返回的数据格式可能如下:

{
  "refund_id": "123456",
  "order_number": "78901234",
  ...
}

而对于目标系统——金蝶云星辰所需提交的数据格式则类似于:

{
  "id": "",
  ...
}

这种情况下,需要配置相应转化逻辑,将refund_id 映射为 id 等操作。此外,还要考虑到可能出现的不一致值,并设计适当异常处理与错误重试机制,以保证整个流程执行稳定且顺畅。

快速批量写入与监控

接下来是将转换后大量数据信息快速导入至金蝶云星辰中。利用他们提供的/jdy/v2/scm/sal_in_bound API,可以实现批量精准写入。同时 用友与外部系统接口集成开发

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

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用聚水潭·奇门接口 jushuitan.refund.list.query 获取并加工数据。

接口配置与请求参数

首先,我们需要配置接口的元数据,以确保请求能够正确发送并接收响应。以下是 jushuitan.refund.list.query 接口的元数据配置:

{
  "api": "jushuitan.refund.list.query",
  "effect": "QUERY",
  "method": "POST",
  "number": "as_id",
  "id": "as_id",
  "name": "as_id",
  "idCheck": true,
  "formatResponse": [
    {"format": "string", "old": "as_id", "new": "as_id_new"},
    {"format": "string", "old": "type", "new": "type_new"}
  ],
  "request": [
    {"field": "page_index", "label": "第几页", "type": "int", "describe": "从第一页开始,默认1", "value":"1"},
    {"field": "page_size", "label":"每页多少条", "type":"int", 
        "describe":"默认30,最大50","value":"100"},
    {"field":"start_time","label":"修改起始时间","type":"string",
        "describe":"起始时间,和结束时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空","value":"{{LAST_SYNC_TIME|datetime}}"},
    {"field":"end_time","label":"修改结束时间","type":"string",
        "describe":"结束时间,和起始时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"date_type","label":"时间类型","type":"int",
        "describe":"修改时间:0 ; 创建时间:1; 确认时间:2;非必填,默认0"},
    {"field":"type","label":"售后类型","type":"string",
        "describe":"普通退货,其它,拒收退货,仅退款,投诉,补发,换货,维修"},
    {"field":"status","label":"售后单状态","type":"string",
        "describe":"(WaitConfirm:待确认,Confirmed:已确认,Cancelled:作废,Merged:被合并)"},
    {"field":"good_status","label":"货物状态","type":"string",
        "describe":"(BUYER_NOT_RECEIVED:买家未收到货,BUYER_RECEIVED:买家已收到货,BUYER_RETURNED_GOODS:买家已退货,SELLER_RECEIVED:卖家已收到退货)","value":"SELLER_RECEIVED"},
    {"field":"wms_co_id","label":"分仓编号","type":"string","value":"12851795"}
  ],
  ...
}

请求参数详解

  • page_indexpage_size:用于分页查询。page_index 从第一页开始,默认值为1;page_size 默认值为30,但最大值可设置为50。
  • start_timeend_time:用于指定查询的时间范围。两者必须同时存在且间隔不超过七天。
  • date_type:指定时间类型,可选值包括修改时间、创建时间和确认时间。
  • type:售后类型,如普通退货、拒收退货等。
  • status:售后单状态,如待确认、已确认等。
  • good_status:货物状态,此处默认值为“SELLER_RECEIVED”表示卖家已收到退货。
  • wms_co_id:分仓编号,用于指定具体仓库。

数据处理与格式化

在接收到响应数据后,需要对数据进行格式化处理,以便后续的数据转换与写入。元数据配置中的 formatResponse 字段定义了需要格式化的字段:

[
  {"format": "string", "old": "as_id", "new": "as_id_new"},
  {"format": "string", "old": "type", "new": "type_new"}
]

例如,将原始字段 as_id 格式化为新的字段 as_id_new

自动填充与条件过滤

为了简化操作,我们可以启用自动填充响应功能 (autoFillResponse) 和条件过滤 (condition):

{
  ...
  autoFillResponse: true,
  condition_bk: [[{"field": 'items.type', 'logic': 'in', 'value': '退货,换货'}]],
  ...
}

这确保了只有符合条件的数据会被进一步处理,从而提高效率。

异常处理与补救措施

在实际操作中,不可避免地会遇到异常情况。我们可以通过设置定时任务 (crontab) 和接管请求 (takeOverRequest) 来进行异常处理和补救:

{
  ...
  omissionRemedy: {
    crontab: '2 */3 * * *',
    takeOverRequest: [
      {
        field: 'start_time',
        value: "_function FROM_UNIXTIME( unix_timestamp() -86400 , '%Y-%m-%d %H:%i:%s' )",
        type: 'string',
        label: '接管字段'
      }
    ]
  }
}

定时任务每三小时执行一次,并通过函数计算前一天的开始时间来接管请求。

通过上述步骤,我们可以高效地调用聚水潭·奇门接口获取并加工数据,为后续的数据转换与写入打下坚实基础。这一过程不仅确保了数据的一致性和准确性,还极大提升了业务透明度和效率。 钉钉与WMS系统接口开发配置

数据集成与ETL转换:从聚水潭到金蝶云星辰V2

在数据集成过程中,将源平台的数据转换为目标平台所能接受的格式是关键步骤。本文将详细探讨如何使用轻易云数据集成平台,将聚水潭的销售退货单数据转换并写入金蝶云星辰V2 API接口。

1. API接口配置

首先,我们需要配置金蝶云星辰V2的API接口。根据提供的元数据配置,目标API为/jdy/v2/scm/sal_in_bound,请求方法为POST。以下是主要字段及其映射关系:

  • bill_date(入库日期):从源数据中的items.receive_date字段获取,格式化为字符串。
  • customer_number(客户):直接映射为shop_id
  • bill_no(单据编码):直接映射为as_id
  • custom_field(自定义字段):包含两个子字段:
    • custom_field__1__3u903095ncrq(聚水潭线上单号):映射为so_id
    • custom_field__1__3wingl0wgyeb(售后类型):映射为type
  • operation_key(操作类型):固定值为'audit'。
  • remark(备注):直接映射为remark
  • bill_dis_amount(单折扣额):通过函数判断,如果'free_amount'大于0,则取其值,否则取0。

2. 商品分录字段配置

商品分录是一个数组,每个元素代表一个商品条目。主要字段及其映射如下:

  • is_free(是否赠品):通过函数判断,如果'items.amount'等于0或'type_new'等于'换货',则返回true,否则返回false。
  • material_number(商品id):映射为'sku_id'。
  • price(单价):直接从源数据中获取。
  • qty(数量):映射为'r_qty'。
  • stock_number(仓库id):通过函数判断,如果'wh_id'等于1,则返回'wms_co_id',否则返回'wms_co_id-wh_id'。
  • tax_price(含税单价):通过函数判断,如果'type_new'等于'换货',则返回0,否则返回'items.price'。
  • unit_id(单位id):固定值4。

此外,每个商品条目还包含一个自定义字段:

  • custom_entity_field__1__3wqp66pdyh442k(进仓时间):映射为'receive_date'。

3. 数据转换与写入

在完成上述字段配置后,我们可以利用轻易云数据集成平台的ETL功能,将源数据进行清洗和转换,并最终写入金蝶云星辰V2平台。以下是一个示例代码片段,展示了如何进行这些操作:

{
  "api": "/jdy/v2/scm/sal_in_bound",
  "method": "POST",
  "request": {
    "bill_date": "{{items.receive_date}}",
    "customer_number": "{shop_id}",
    "bill_no": "{as_id}",
    "custom_field": {
      "custom_field__1__3u903095ncrq": "{so_id}",
      "custom_field__1__3wingl0wgyeb": "{type}"
    },
    "operation_key": "audit",
    "remark": "{remark}",
    "bill_dis_amount": "_function IF('{free_amount}' > 0 , '{free_amount}' , 0 )",
    "material_entity": [
      {
        "is_free": "_function case when '{{items.amount}}' = 0 or '{type_new}' = '换货' then 'true' else 'false' end",
        "material_number": "{{items.sku_id}}",
        "price": "{{items.price}}",
        "qty": "{{items.r_qty}}",
        "stock_number": "_function CASE '{wh_id}' WHEN 1 THEN '{wms_co_id}' ELSE '{wms_co_id}-{wh_id}' END",
        "tax_price": "_function CASE '{type_new}' WHEN '换货' THEN '0' ELSE '{{items.price}}' END",
        "unit_id": "4",
        "custom_entity_field": {
          "custom_entity_field__1__3wqp66pdyh442k": "{{items.receive_date}}"
        }
      }
    ]
  }
}

通过上述配置,我们实现了从聚水潭到金蝶云星辰V2的销售退货单数据无缝对接。在实际应用中,可以根据具体业务需求调整和扩展此配置,以满足更多复杂场景的需求。 用友与CRM系统接口开发配置

更多系统对接方案