通过轻易云平台实现旺店通·企业奇门数据对接金蝶云星空的技术方案
在复杂多变的市场环境中,企业常常需要高效整合不同来源的数据,以便迅速做出业务决策。本次案例分享聚焦于如何使用轻易云数据集成平台,将旺店通·企业奇门的数据无缝对接到金蝶云星空。采用的具体方案为“旺店通其他入库对接金蝶其他入库-P”,旨在展示从数据获取、处理到写入的一系列关键步骤和技术点。
首先,我们要解决的是确保整个集成过程中不漏单,并快速且稳定地向目标系统进行大量数据写入。为了实现这一目标,我们利用了旺店通提供的API接口——wdt.stockin.order.query
来定时可靠地抓取其端的数据。这一过程需要特别关注接口调用中的分页问题以及限流策略,通过细致调试和优化,保障每一批次数据均能准确有效传输。
其次,在将抓取的数据写入金蝶云星空时,调用了其提供的batchSave
API接口。在这个过程中,要特别注意两点:一是必须处理好两套系统间可能存在的数据格式差异,通过自定义字段映射与转换,使得数据能够顺利注入;二是在面对潜在异常情况时,实现完善的错误重试机制,以最大程度减少因网络波动或突发故障而造成的数据丢失。
此外,为了提升透明度和运维效率,我们配置了实时监控与日志记录功能,不仅可以实时查看当前任务执行状态,还能追踪并排查潜在问题。例如,当某一次批量操作失败时,可以立即获得详细日志信息,从而及时采取补救措施。
总之,本案例以精准、高效、可靠为核心,通过合理设计与精确实施,将不同系统间的信息壁垒巧妙打破,实现了业财一体化管理,提高整体运营效率及数据准确性。下一部分将具体探讨各个环节实施中的实际代码片段及配置细节。
使用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据
在数据集成的生命周期中,调用源系统API是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query
,获取并加工入库单数据。
接口调用配置
首先,我们需要配置API接口调用的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法,并且支持分页查询。以下是具体的配置参数:
- API名称:
wdt.stockin.order.query
- 请求方法:
POST
- 主要字段:
start_time
: 开始时间,格式为yyyy-MM-dd HH:mm:ss
,用于按最后修改时间增量获取数据。end_time
: 结束时间,格式为yyyy-MM-dd HH:mm:ss
,同样用于按最后修改时间增量获取数据。order_type
: 源单据类别,此处我们设置为6
(其他入库)。status
: 入库单状态,可选值包括10已取消、20编辑中、25待价格确认等。warehouse_no
: 仓库编号,用于区分不同仓库。src_order_no
: 上层单据编号,可以不传开始时间和结束时间。stockin_no
: 入库单号,同样可以不传开始时间和结束时间。
此外,还有分页参数:
- 分页大小:
page_size
,默认值为50。 - 页号:
page_no
,默认从0页开始。
请求示例
以下是一个典型的请求示例:
{
"start_time": "{{LAST_SYNC_TIME|datetime}}",
"end_time": "{{CURRENT_TIME|datetime}}",
"order_type": "6",
"status": "80",
"warehouse_no": "WH001",
"page_size": 50,
"page_no": 0
}
在这个请求中,我们使用了动态变量来设置开始时间和结束时间,这些变量会在实际运行时被替换为具体的日期时间值。
数据处理与清洗
获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。常见的数据清洗操作包括:
- 字段映射:将源系统中的字段映射到目标系统中的对应字段。例如,将源系统中的
stockin_id
映射到目标系统中的id
字段。 - 数据格式转换:将日期、数值等字段转换为目标系统所需的格式。例如,将日期格式从
yyyy-MM-dd HH:mm:ss
转换为目标系统所需的格式。 - 过滤无效数据:根据业务规则过滤掉不需要的数据。例如,只保留状态为“已完成”的入库单。
异常处理与补偿机制
在实际操作中,不可避免地会遇到各种异常情况,如网络故障、接口超时等。为了确保数据集成过程的可靠性,需要设计异常处理与补偿机制。
轻易云平台提供了定时任务(crontab)和补偿请求(takeOverRequest)功能。例如,当某次同步失败时,可以通过定时任务重新发起请求,并使用补偿请求中的参数来确保数据完整性:
{
"crontab": "2 11 * * *",
"takeOverRequest": [
{
"id": "start_timeKthE5",
"field": "start_time",
"label": "开始时间",
"type": "datetime",
"describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{DAYS_AGO_2|datetime}}"
}
]
}
这个配置表示每天11点02分执行一次任务,如果上次同步失败,则使用两天前的开始时间重新发起请求。
通过以上步骤,我们可以高效地调用旺店通·企业奇门接口获取入库单数据,并进行必要的数据清洗和转换,为后续的数据写入打下坚实基础。
使用轻易云数据集成平台实现旺店通其他入库对接金蝶云星空API接口的ETL转换
在数据集成生命周期的第二步中,关键任务是将已经从源平台(如旺店通)获取的数据进行ETL转换,使其符合目标平台(金蝶云星空API接口)的格式要求,并最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方法。
1. 数据请求与清洗
在数据请求阶段,我们已经从旺店通获取了其他入库单的数据。这些数据包括单据编号、库存组织、日期、供应商、部门、备注以及明细信息等。接下来,我们需要对这些数据进行清洗和转换,以确保其符合金蝶云星空API接口的要求。
2. 数据转换与写入
在数据转换阶段,我们使用轻易云数据集成平台提供的元数据配置来实现ETL过程。以下是具体的配置和操作步骤:
API 接口配置
我们使用金蝶云星空的batchSave
API接口,该接口通过POST方法提交请求,并支持批量保存功能。以下是元数据配置的详细说明:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","value":"{stockin_no}"},
{"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD01_SYS"},
{"field":"FStockOrgId","label":"库存组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{warehouse_name}","mapping":{"target":"64aba448d165da66451f90c3","direction":"positive"}},
{"field":"FDate","label":"日期","type":"string","value":"{stockin_time}"},
{"field":"FSUPPLIERID","label":"供应商","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FDEPTID","label":"部门","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FNOTE","label":"备注","type":"string","value":"旺店通其他入库单"},
{"field":"FEntity","label":"明细信息","type":"array",
"children":[
{"field":"FMATERIALID","label":"物料编码","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{{details_list.goods_no}}"},
{"field":"FCMKBarCode","label":"零售条形码","type":"","parent":""},
{"field":""}
]
},
{"field":"","label":"","type":"","value":""}
],
"otherRequest":[
{"field":"","label":"","type":"","value":""},
{"field":"","label":"","type":"","value":""},
{"field":"","label":"","type":"","value":""}
]
}
请求参数解析
- FBillNo(单据编号):直接从源数据中提取
stockin_no
字段。 - FBillTypeID(单据类型):固定值为
QTRKD01_SYS
,并使用ConvertObjectParser
解析为目标系统所需格式。 - FStockOrgId(库存组织):从源数据中的
warehouse_name
字段提取,并通过映射关系转换为目标系统所需格式。 - FDate(日期):直接从源数据中提取
stockin_time
字段。 - FSUPPLIERID(供应商):使用
ConvertObjectParser
解析源数据中的供应商信息。 - FDEPTID(部门):同样使用
ConvertObjectParser
解析部门信息。 - FNOTE(备注):固定值为“旺店通其他入库单”。
- FEntity(明细信息):这是一个数组字段,包含多个子字段,如物料编码、零售条形码、收货仓库和实收数量等。这些子字段分别从源数据中的相应字段提取,并进行必要的格式转换。
提交请求
在完成所有字段的解析和转换后,我们通过POST方法向金蝶云星空的API接口提交请求。以下是一个示例请求体:
{
"FormId": "STK_MISCELLANEOUS",
"IsVerifyBaseDataField": false,
"Operation": "Save",
"IsAutoSubmitAndAudit": false,
"Model": {
"FBillNo": "{stockin_no}",
...
...
}
}
总结
通过以上步骤,我们成功地将旺店通其他入库单的数据进行ETL转换,使其符合金蝶云星空API接口的格式要求,并最终写入目标平台。在这个过程中,轻易云数据集成平台提供了强大的元数据配置能力,使得复杂的数据转换和集成任务变得更加简单高效。