案例分享:旺店通·企业奇门数据集成到金蝶云星空
在当前瞬息万变的商业环境中,数据的准确传输和实时处理对于确保业务连续性和优化决策流程至关重要。本文将以一个实际案例为基础,详细剖析如何通过轻易云数据集成平台,实现对接旺店通·企业奇门的数据,并可靠地写入到金蝶云星空系统。本次分享聚焦于“旺店通传入金蝶其他入库单”这一具体方案。
项目背景
随着电子商务的发展与多维度库存管理需求的不断增加,各大企业纷纷引入ERP系统进行精细化管理。而在这个案例中,我们面对的是两套关键业务系统之间的数据互联互通问题:如何从旺店通·企业奇门接口(API: wdt.stockin.order.query)获取真实、完整的数据,再快速且稳定地将其批量写入到金蝶云星空(API: batchSave)。这不仅考验了数据同步的效率,同时需要确保全程监控与日志记录,为后续误差排查提供依据。
解决方案概述
为了达成上述目标,本次技术实现主要分为以下几个步骤:
- 定时抓取并调用API:通过定时任务可靠抓取旺店通·企业奇门接口中的库存订单信息;
- 分页与限流处理:解决因大量数据带来的分页难题及API调用频率限制;
- 格式转换与映射:针对不同系统间的数据格式差异,进行有效转换及字段映射配置;
- 批量写入操作:实现高效且稳定的大规模数据写入至金蝶云星空,并保障不漏单、不重复;
- 异常处理机制:设计应对不同类型错误的重试策略及报警通知功能,以提升整体流程鲁棒性。
接下来,我们将逐一解析每个关键环节的技术实现方法,包括代码示例、参数配置以及注意事项,从而帮助读者深入理解该案例背后的技术细节。
以上即为文章开头部分,我将在下文延展所有细节点,如需了解更多有关具体实施方案的信息,请继续关注本篇文章。
调用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据
在数据集成生命周期的第一步,我们需要调用源系统的API接口以获取初始数据。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query
,并对获取的数据进行初步加工。
接口概述
接口wdt.stockin.order.query
主要用于查询入库单信息。该接口支持多种查询条件,包括时间范围、单据类别、状态等。请求方法为POST,返回的数据包含入库单的详细信息。
元数据配置解析
以下是元数据配置的关键部分:
{
"api": "wdt.stockin.order.query",
"effect": "QUERY",
"method": "POST",
"number": "order_no",
"id": "stockin_id",
"name": "order_type_name",
"idCheck": true,
...
}
api
: 指定了要调用的API接口名称。effect
: 表示该操作的效果,这里是查询(QUERY)。method
: 请求方法为POST。number
,id
,name
: 分别指定了订单号、入库单ID和订单类型名称字段,用于标识和描述返回的数据。idCheck
: 设置为true,表示需要对ID进行校验。
请求参数配置
请求参数包括时间范围、单据类别、状态等。以下是请求参数的详细配置:
"request": [
{
"field": "start_time",
"label": "开始时间",
"type": "datetime",
"describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{LAST_SYNC_TIME|datetime}}"
},
{
"field": "end_time",
"label": "结束时间",
"type": "datetime",
"describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{CURRENT_TIME|datetime}}"
},
...
]
start_time
和end_time
: 用于按最后修改时间增量获取数据,分别设置为上次同步时间和当前时间。order_type
,status
,warehouse_no
,src_order_no
,stockin_no
,stockin_reason
: 提供了多种查询条件,可根据实际需求进行配置。
分页参数配置
为了处理大批量数据,接口支持分页查询:
"otherRequest": [
{
"field": "page_size",
"label": "分页大小",
"type": "string",
"describe": "每页返回的数据条数,输入值范围1~100,不传本参数,输入值默认为40"
},
{
"field": "page_no",
"label": "页号",
"type": "string",
"describe":"不传值默认从0页开始"
}
]
page_size
: 每页返回的数据条数,默认值为40。page_no
: 页号,从0页开始。
条件过滤
为了确保只获取特定类型的入库单,可以设置条件过滤:
"condition":[
[{"field":"src_order_type","logic":"eqv2","value":"6"}],
[{"field":"src_order_type","logic":"eqv2","value":"4"}]
]
- 条件过滤器用于筛选特定类型的入库单,例如其他入库(6)和盘盈入库(4)。
数据加工与处理
在成功调用API并获取到原始数据后,需要对数据进行初步加工。这包括但不限于:
- 字段映射:将源系统字段映射到目标系统字段。例如,将
order_no
映射到目标系统中的订单编号字段。 - 数据清洗:去除无效或重复的数据,并确保所有必填字段都有有效值。
- 格式转换:根据目标系统要求,对日期、数字等字段进行格式转换。
通过上述步骤,我们可以高效地从旺店通·企业奇门系统中获取所需的入库单信息,并为后续的数据转换与写入做好准备。
使用轻易云数据集成平台将旺店通数据转换并写入金蝶云星空API接口的技术案例
在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将详细探讨如何利用轻易云数据集成平台,将旺店通的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
元数据配置解析
首先,我们需要理解元数据配置,这是实现数据转换和写入的基础。以下是元数据配置的主要字段及其解析方式:
- api:
"batchSave"
- 表示调用的是批量保存接口。 - method:
"POST"
- 使用HTTP POST方法进行数据传输。 - idCheck:
true
- 启用ID检查。 - request: 包含具体的数据字段映射和转换规则。
数据字段映射与转换
在这个案例中,我们需要将旺店通的数据字段映射到金蝶云星空API所需的字段,并进行必要的转换。
-
单据编号 (FBillNo):
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"}
这里直接使用旺店通的订单号
{order_no}
作为金蝶云星空的单据编号。 -
单据类型 (FBillTypeID):
{ "field":"FBillTypeID", "label":"单据类型", "type":"string", "describe":"标准其他入库单:QTRKD01_SYS", "parser":{"name":"ConvertObjectParser","params":"FNumber"}, "value":"_function case when '{stockin_reason}' ='盘盈入库单' then 'QTRKD02_SYS' when '{src_order_type}' ='4' then 'QTRKD02_SYS' when '{stockin_reason}' ='B2B无主退货入库' then 'QTRKD07_SYS' when '{stockin_reason}' ='B2C无主退货入库' then 'QTRKD08_SYS' when '{stockin_reason}' ='基建入库' then 'QTRKD09_SYS' when '{stockin_reason}' ='运营采购入库' then 'QTRKD10_SYS' else 'QTRKD01_SYS' end" }
使用条件表达式根据不同的
stockin_reason
和src_order_type
来确定具体的单据类型。 -
库存组织 (FStockOrgId):
{"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"}
固定值
100
表示库存组织。 -
日期 (FDate):
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{stockin_time}"}
使用旺店通提供的
stockin_time
字段作为日期。 -
备注 (FNOTE):
{"field":"FNOTE","label":"备注","type":"string","describe":"多行文本","value":"{remark}"}
将
remark
字段直接映射为备注信息。 -
明细信息 (FEntity): 明细信息是一个数组,包含多个子字段,如物料编码、收货仓库、实收数量等。每个子字段都有相应的映射和转换规则:
{ "field": "FMATERIALID", "label": "物料编码", "type": "string", "describe": "基础资料", "parser": {"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{{details_list.spec_no}}" }
其他请求参数
除了上述主要字段,还需要设置一些额外的请求参数,以确保数据能够正确写入目标平台:
-
业务对象表单Id (FormId):
{"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "STK_MISCELLANEOUS"}
-
验证基础资料 (IsVerifyBaseDataField):
{"field": "IsVerifyBaseDataField", "label": "验证基础资料", "type": "bool", "describe": "是否验证所有的基础资料有效性,布尔类,默认false(非必录)", "value": true}
-
执行操作 (Operation):
{"field": "Operation", "label": "执行的操作", "type": "string", "describe": "", value: Save"}
-
提交并审核 (IsAutoSubmitAndAudit):
{"field": IsAutoSubmitAndAudit, label: 提交并审核, type: bool, describe: "", value: true}
-
可以负库存 (InterationFlags):
{"field": InterationFlags, label: 可以负库存, type: string, describe: "", value: STK_InvCheckResult}
批量保存方法
最后,通过调用 batchArraySave
方法,将所有配置好的数据批量保存到金蝶云星空系统中:
{"rowsKey": array, rows: 1, method: batchArraySave}
通过以上步骤,我们成功地将旺店通的数据经过ETL处理后,转换为金蝶云星空API接口所需格式,并完成了数据写入。此过程充分利用了轻易云数据集成平台提供的灵活性和强大功能,实现了异构系统间的数据无缝对接。