聚水潭·奇门到金蝶云星辰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",
...
}
这一阶段的重要步骤包括:
- 设置定时任务以周期性调度该API,并可靠地抓取当前所有待处理订单。
- 实现分页处理逻辑,通过递增查询条件参数来迭代获取全量数据。
- 应用限流策略,例如每分钟最大请求次数限制,从而避免触发服务器端保护机制。
数据格式转换与映射
由于聚水潭·奇门与金蝶云星辰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_index 和 page_size:用于分页查询。
page_index
从第一页开始,默认值为1;page_size
默认值为30,但最大值可设置为50。 - start_time 和 end_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: '接管字段'
}
]
}
}
定时任务每三小时执行一次,并通过函数计算前一天的开始时间来接管请求。
通过上述步骤,我们可以高效地调用聚水潭·奇门接口获取并加工数据,为后续的数据转换与写入打下坚实基础。这一过程不仅确保了数据的一致性和准确性,还极大提升了业务透明度和效率。
数据集成与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的销售退货单数据无缝对接。在实际应用中,可以根据具体业务需求调整和扩展此配置,以满足更多复杂场景的需求。