轻易云平台实现数据从旺店通到金蝶云星空的无缝转换与写入

  • 轻易云集成顾问-林峰
### 旺店通·企业奇门数据集成到金蝶云星空:从其他入库到高效对接 在本案例中,我们将详细介绍如何使用轻易云平台,实现旺店通·企业奇门的数据流畅无误地集成到金蝶云星空的全过程。特别地,我们以“旺店通其他入库对接金蝶其他入库-P_容错”为具体方案,聚焦于API接口的调用及优化。 为了确保数据不漏单且实现快速写入至金蝶云星空,我选择了定期可靠抓取旺店通·企业奇门接口`wdt.stockin.order.query`的数据,并通过批量处理的方法,用`batchSave API`进行高效写入。这不仅极大提升了系统对接效率,还提高了整体业务流程的透明度和可控性。 首先,在处理跨平台数据集成时,必须考虑各个API接口的特性,例如分页和限流问题。在我们的方案中,通过有效管理请求频率来避免触发限流机制,同时实施分页抓取策略,以确保每一条数据都能准确获取并传输。此外,为了解决两者之间的数据格式差异,我们进行了细致的映射校准,使得原始数据能够顺利转换为目标系统所需格式。 异常处理与错误重试机制是这一过程中的关键环节。我们设计了一套健全的监控与日志记录体系,实时跟踪每次操作情况。当遇到异常状况或网络波动导致任务失败时,该机制可以立即启动重试流程,从而保证整个数据同步工作的连续性和稳定性。 总之,此技术方案展示了在复杂多变的信息化需求下,如何借助先进的平台工具精确、高效、可靠地完成跨系统的数据集成任务。 ![电商OMS与WMS系统接口开发配置](https://pic.qeasy.cloud/D6.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据 在数据集成生命周期的第一步,我们需要从源系统中获取数据,并对其进行初步加工。本文将详细探讨如何通过调用旺店通·企业奇门接口`wdt.stockin.order.query`来实现这一过程。 #### 接口调用配置 首先,我们需要了解接口的基本配置和参数要求。根据元数据配置,`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**: 入库单状态,我们选择"80"表示已完成。 - **warehouse_no**: 仓库编号,用于区分不同仓库。 - **src_order_no**: 上层单据编号,可选参数。 - **stockin_no**: 入库单号,可选参数。 此外,为了实现分页功能,还需要以下参数: - **page_size**: 每页返回的数据条数,默认值为40。 - **page_no**: 页号,默认从0页开始。 #### 请求示例 根据上述配置,我们可以构建一个请求示例: ```json { "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 } ``` 在这个请求中,我们使用了动态变量`{{LAST_SYNC_TIME|datetime}}`和`{{CURRENT_TIME|datetime}}`来分别表示上次同步时间和当前时间。这些变量将由轻易云平台在实际运行时自动替换为相应的时间值。 #### 数据清洗与加工 在获取到原始数据后,需要对其进行清洗和加工,以便后续的数据转换与写入步骤。以下是一些常见的数据清洗操作: 1. **字段映射与重命名**:将源系统中的字段映射到目标系统所需的字段。例如,将源系统中的`stockin_id`映射为目标系统中的`id`。 2. **数据类型转换**:确保所有字段的数据类型符合目标系统的要求。例如,将日期字符串转换为标准的日期格式。 3. **过滤无效数据**:根据业务规则过滤掉不符合条件的数据。例如,只保留状态为"已完成"的入库单。 4. **补全缺失数据**:对于某些必填字段,如果源系统中缺失,可以根据业务逻辑进行补全。例如,如果某些记录缺少仓库编号,可以使用默认值或从其他来源获取。 #### 异常处理与容错机制 在实际操作中,可能会遇到各种异常情况,如网络故障、接口超时等。为了提高系统的稳定性和可靠性,需要设计合理的容错机制。以下是一些常见的容错策略: 1. **重试机制**:对于临时性故障,可以设置重试机制,在一定次数内自动重试请求。 2. **错误日志记录**:记录所有错误信息,以便后续分析和排查问题。 3. **报警通知**:当发生严重错误时,通过邮件、短信等方式通知相关人员及时处理。 4. **定时任务补救**:通过定时任务定期检查和补救遗漏的数据。例如,通过crontab设置每天11点执行一次补救任务,确保所有数据都能被正确处理。 ```json { "crontab": "2 11 * * *", "takeOverRequest": [ { "id": "start_timeKthE5", "field": "start_time", "label": "开始时间", "type": "datetime", "is_required": false, "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{DAYS_AGO_2|datetime}}" } ] } ``` 通过以上配置,可以确保即使在某些情况下出现异常,也能通过定时任务进行补救,从而保证数据的一致性和完整性。 综上所述,通过合理配置和调用旺店通·企业奇门接口`wdt.stockin.order.query`,并结合有效的数据清洗与容错机制,可以高效地完成数据集成生命周期的第一步,为后续的数据转换与写入打下坚实基础。 ![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/S4.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将源平台数据转换并写入金蝶云星空API接口 在数据集成生命周期的第二步,我们需要将已经从源平台(如旺店通)获取并清洗的数据进行ETL(提取、转换、加载)处理,最终将其转换为目标平台(金蝶云星空API接口)所能够接收的格式,并写入目标平台。这一过程涉及多个技术环节和配置细节,本文将详细探讨这些内容。 #### 元数据配置解析 在本案例中,我们使用轻易云数据集成平台提供的元数据配置来实现对金蝶云星空API接口的写入操作。以下是关键的元数据配置: ```json { "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":"100"}, {"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"},"value":"BM000027"}, {"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}}", "parent":"FEntity"}, {"field":"FCMKBarCode","label":"零售条形码", "type":"string", "parent":"FEntity"}, {"field":"FSTOCKID","label":"收货仓库", "type":"string", "parser":{"name":"ConvertObjectParser","params":"FNumber"}, "value":"{warehouse_no}", "parent":"FEntity"}, {"field\":\"FQty\",\"label\":\"实收数量\",\"type\":\"string\",\"value\":\"{{details_list.goods_count}}\",\"parent\":\"FEntity\"}, {\"field\":\"FEntryNote\",\"label\":\"备注\",\"type\":\"string\",\"parent\":\"FEntity\"} ] }, {\"field\":\"F_TUXM_LargeText\",\"label\":\"旺店通备注\",\"type\":\"string\",\"value\":\"{remark}\"} ], \"otherRequest\":[ {\"field\":\"FormId\",\"label\":\"业务对象表单Id\",\"type\":\"string\",\"value\":\"STK_MISCELLANEOUS\"}, {\"field\":\"IsVerifyBaseDataField\",\"label\":\"验证基础资料\",\"type\":\"bool\",\"value\":\"false\"}, {\"field\":\"Operation\",\"label\":\"执行的操作\",\"type\":\"string\",\"value\":\"Save\"}, {\"field\":\"IsAutoSubmitAndAudit\",\"label\": \"提交并审核\", \"type\": \"bool\", \"value\": \"true\"} ] } ``` #### 关键字段解析与转换 1. **单据编号 (FBillNo)**: - 类型:字符串 - 来源:`{stockin_no}` - 说明:这是一个直接映射字段,用于标识每个入库单据的唯一编号。 2. **单据类型 (FBillTypeID)**: - 类型:字符串 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`QTRKD01_SYS` - 说明:此字段表示单据类型,通过固定值和转换器进行处理。 3. **库存组织 (FStockOrgId)**: - 类型:字符串 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`100` - 说明:表示库存所属组织,同样通过固定值和转换器处理。 4. **日期 (FDate)**: - 类型:字符串 - 来源:`{stockin_time}` - 说明:记录入库日期,直接映射自源数据。 5. **供应商 (FSUPPLIERID)**: - 类型:字符串 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 说明:供应商信息需要通过转换器进行处理。 6. **部门 (FDEPTID)**: - 类型:字符串 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`BM000027` - 说明:表示部门信息,通过固定值和转换器处理。 7. **备注 (FNOTE)**: - 类型:字符串 - 固定值:“旺店通其他入库单” - 说明:用于记录额外备注信息。 8. **明细信息 (FEntity)**: 明细信息是一个数组字段,其中包含多个子字段: a. **物料编码 (FMATERIALID)**: - 类型:字符串 - 转换器: `ConvertObjectParser`, 参数为 `FNumber` - 来源: `{{details_list.goods_no}}` b. **零售条形码 (FCMKBarCode)**: - 类型: 字符串 c. **收货仓库 (FSTOCKID)**: - 类型: 字符串 - 转换器: `ConvertObjectParser`, 参数为 `FNumber` - 来源: `{warehouse_no}` d. **实收数量 (FQty)**: - 类型: 字符串 - 来源: `{{details_list.goods_count}}` e. **备注 (FEntryNote)**: - 类型: 字符串 9. **旺店通备注 (FTUXMLargeText)**: - 类型: 字符串 - 来源: `{remark}` #### 操作与请求设置 - API接口调用方法设定为 `POST`。 - 操作方式设定为批量保存 (`batchSave`)。 - 请求体中包含基础资料验证 (`IsVerifyBaseDataField`) 设置为 `false`,以避免不必要的验证延迟。 - 自动提交并审核 (`IsAutoSubmitAndAudit`) 设置为 `true`,确保数据在写入后立即生效。 通过上述元数据配置,我们可以确保源平台的数据经过适当的ETL处理后,准确地写入金蝶云星空系统,实现不同系统间的数据无缝对接。 ![打通钉钉数据接口](https://pic.qeasy.cloud/T22.png~tplv-syqr462i7n-qeasy.image)