旺店通·旗舰奇门销售退货单集成金蝶云星空案例
在企业的日常运营中,数据的高效传输和处理至关重要。本文将分享一个具体技术案例,讲述如何实现旺店通·旗舰奇门系统中的销售退货单,与金蝶云星空进行无缝对接。
为了完成这一任务,我们使用了轻易云数据集成平台,通过调用旺店通·旗舰奇门提供的API wdt.wms.stockin.refund.querywithdetail
来获取销售退货单数据,并利用金蝶云星空的批量写入API batchSave
进行数据存储。在整个过程中,我们需要解决以下几个关键技术问题:
首先是确保从旺店通·旗舰奇门接口定时可靠地抓取数据。通过配置自动化定时任务,我们可以设置在特定时间段内多次调用API来获取新的或更新后的销售退货单信息,以确保不会漏掉任何交易记录。
其次是大容量数据快速写入到金蝶云星空。由于业务需求庞大,每天可能有数千笔甚至更多的数据要进行处理,因此我们采用了高吞吐量的数据写入能力,极大的减少了等待时间,提高了工作效率。
另一个挑战是在两个系统之间实现精准的数据格式转换。尽管双方提供了良好的API接口,但其字段和结构或许会有所不同。因此,为了解决这个问题,自定义的数据转换逻辑显得尤为重要。这不仅能够确保每条记录都正确映射,还能满足两者之间协议的一致性需求。
此外,在处理中还需注意分解与限流问题以及异常情况的处理机制。例如,当请求频率超过限制或者出现临时错误时,应能够自动重试并发送告警通知,而无需人工介入。这就需要集成平台拥有强大的监控、告警功能,实时跟踪每个操作步骤和状态变化,即使出现故障也能及时响应与修复。
通过以上这些步骤及相关工具支持,下文将详细描述如何一步步实现这一复杂但有效的数据整合方案,使得两套独立运行的信息系统达到无缝协同工作的目标,从而提升整体管理效能及用户体验。
调用旺店通·旗舰奇门接口wdt.wms.stockin.refund.querywithdetail获取并加工数据
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.wms.stockin.refund.querywithdetail
,并对返回的数据进行初步加工处理。
接口调用配置
首先,我们需要配置接口的元数据。根据提供的元数据配置,可以看到该接口采用POST方法,主要参数包括分页参数和业务参数。
{
"api": "wdt.wms.stockin.refund.querywithdetail",
"method": "POST",
"number": "order_no",
"id": "stockin_id",
"idCheck": true,
"request": [
{
"field": "pager",
"label": "分页参数",
"type": "object",
"children": [
{
"field": "page_size",
"label": "分页大小",
"type": "string",
"value": "50",
"parent": "pager"
},
{
"field": "page_no",
"label": "页号",
"type": "string",
"value": "1",
"parent": "pager"
}
]
},
{
"field": "params",
...
}
],
...
}
分页参数设置
分页参数用于控制每次请求的数据量和页码。在本例中,page_size
设为50,即每次请求返回50条记录;page_no
设为1,即从第一页开始请求。
{
...
{
"field": "pager",
...
{
...
{
...
{
...
},
{
...
}
}
}
},
...
}
业务参数设置
业务参数包括时间范围、入库单状态、时间条件类型、仓库编码、店铺编号和入库单号等。以下是关键字段的配置:
start_time
和end_time
: 分别表示查询的开始时间和结束时间,使用模板变量动态生成。status
: 入库单状态,这里设为80表示已完成。time_type
: 时间条件类型,设为1表示按入库时间查询。warehouse_no
,shop_nos
,stockin_no
: 分别表示仓库编码、多个店铺编号(用英文逗号分隔)和入库单号。
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{"field":"warehouse_no","label":"仓库编码","type":"string","parent":"params"},
{"field":"shop_nos","label":"店铺编号","type":"string","describe":"多个店铺编号使用英文逗号分隔","parent":"params"},
{"field":"stockin_no","label":"入库单号","type":"string"}
}
}
}
}
}
}
}
}
},
...
}
数据清洗与转换
在获取到原始数据后,需要对其进行清洗与转换,以便后续处理。以下是一些常见的数据清洗步骤:
- 过滤无效数据: 根据条件过滤掉不需要的数据。例如,根据
shop_no
字段过滤掉特定店铺的数据。 - 字段映射: 将源系统的字段映射到目标系统所需的字段。例如,将
order_no
映射到目标系统中的订单编号字段。 - 格式转换: 将日期格式统一转换为目标系统所需的格式。
{
...,
condition: [
[
{"field":"shop_no","logic":"notin","value":"bf796c6,C00314,C00099"}
]
],
omissionRemedy: {...}
}
异常处理与补偿机制
为了确保数据集成过程的稳定性,需要设计异常处理与补偿机制。可以通过定时任务(crontab)定期检查并重新发起请求来补偿遗漏的数据。例如,每小时执行一次任务,重新获取过去两小时内的数据:
{
...,
omissionRemedy: {
crontab: '0 * * * *',
takeOverRequest: [
{"field":"params.start_time","value":"_function FROM_UNIXTIME( unix_timestamp() - 7200 , '%Y-%m-%d %H:%i:%s' )","type":"datetime"},
{"field":"params.end_time","value":"_function FROM_UNIXTIME( unix_timestamp() - 3600 , '%Y-%m-%d %H:%i:%s' )","type":"datetime"}
]
}
}
通过上述配置与处理步骤,我们可以高效地调用旺店通·旗舰奇门接口获取销售退货单数据,并进行必要的清洗与转换,为后续的数据写入和处理奠定基础。
轻易云数据集成平台:将销售退货单数据转换并写入金蝶云星空API接口
在数据集成的生命周期中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何利用轻易云数据集成平台,将从源系统(如旺店通)提取的销售退货单数据,转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
元数据配置解析
元数据配置是实现数据转换和写入的核心。以下是针对销售退货单的元数据配置解析:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"XSTHD01_SYS"},
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"},
{"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","value":"100.01","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","value":"{shop_no}","parser":{"name":"ConvertObjectParser","params":"FNumber"},"mapping":{"target":"65693884484e3b37ea13d9f4","direction":"positive"}},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{modified}"},
{"field":"FRetcustId","label":"退货客户","type":"string","describe":"基础资料","value":"{shop_no}","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FSaledeptid","label":"销售部门","type":"string","describe":"","parser":{"name":"","params":""}},
{"field":...}
],
...
}
数据字段映射与转换
-
单据类型(FBillTypeID):
- 固定值
XSTHD01_SYS
,通过ConvertObjectParser
解析为金蝶系统识别的编码。
- 固定值
-
单据编号(FBillNo):
- 从源系统获取订单编号,直接映射为目标系统的
FBillNo
字段。
- 从源系统获取订单编号,直接映射为目标系统的
-
库存组织(FStockOrgId):
- 固定值
100.01
,通过ConvertObjectParser
解析为金蝶系统识别的编码。
- 固定值
-
销售组织(FSaleOrgId):
- 从源系统获取店铺编号,通过
ConvertObjectParser
进行编码转换,并进行正向映射。
- 从源系统获取店铺编号,通过
-
日期(FDate):
- 从源系统获取修改时间,直接映射为目标系统的日期字段。
-
退货客户(FRetcustId):
- 从源系统获取店铺编号,通过
ConvertObjectParser
进行编码转换。
- 从源系统获取店铺编号,通过
-
明细信息(FEntity):
- 包含物料编码、实退数量、含税单价等多个子字段,每个子字段均需要从源系统对应的数据中提取,并进行相应的格式转换和映射。例如,物料编码通过
ConvertObjectParser
解析为金蝶识别的编码。
- 包含物料编码、实退数量、含税单价等多个子字段,每个子字段均需要从源系统对应的数据中提取,并进行相应的格式转换和映射。例如,物料编码通过
-
财务信息(SubHeadEntity):
- 包含结算组织等子字段,从源系统获取店铺编号,通过
ConvertObjectParser
进行编码转换,并进行正向映射。
- 包含结算组织等子字段,从源系统获取店铺编号,通过
API请求配置
在完成所有字段的映射和转换后,需要配置API请求参数:
{
"FormId": "SAL_RETURNSTOCK",
"Operation": "Save",
"IsAutoSubmitAndAudit": true,
"IsVerifyBaseDataField": true,
"SubSystemId": 21
}
这些参数确保了数据在提交后自动审核,并验证所有基础资料的有效性,同时指定操作模块为仓库模块。
实践案例
假设我们有一个来自旺店通的销售退货单,其部分数据如下:
{
"order_no": "TH20231001",
"shop_no": "S001",
...
}
根据上述元数据配置,我们可以生成如下格式的数据请求:
{
"FormId": "SAL_RETURNSTOCK",
...
"Model": {
...
"FBillNo": "TH20231001",
...
"FSaleOrgId": {
"FNumber": "S001"
},
...
}
}
通过POST方法将此请求发送至金蝶云星空API接口,实现数据写入和自动审核。
总结
通过详细解析元数据配置和实际案例,我们展示了如何利用轻易云数据集成平台,将销售退货单从源系统转换并写入到金蝶云星空API接口。这一过程不仅提高了数据处理效率,还确保了各个环节的数据准确性和一致性。