使用轻易云平台完成ETL转换并写入金蝶云星空

  • 轻易云集成顾问-陈洁琳
### 【类型:纠错出库】旺店通-出库单管理==>金蝶-其他出库单案例分享 在本案例中,我们将重点探讨如何将旺店通·企业奇门的数据集成到金蝶云星空,具体涉及通过接口wdt.stockout.order.query获取旺店通的出库单数据,并使用batchSave接口写入至金蝶云星空的其他出库单模块。为确保该集成过程高效、可靠,我们将在以下几个关键技术环节进行深入分析。 首先,为了确保从旺店通·企业奇门获取的数据不遗漏,需要周期性且稳定地调用wdt.stockout.order.query接口。这就要求我们必须处理好分页和限流问题,以防止因请求过于频繁导致API访问受限或数据丢失。通过设置合适的时间间隔和请求参数,可以有效避免这些问题,实现定时可靠的数据抓取。 其次,在大量数据快速写入到金蝶云星空过程中,批量操作显得尤为重要。BatchSave API提供了这样的能力,但为了保证每次写入都精准无误,还需实现一套异常处理与错误重试机制。当出现网络抖动或临时性故障时,该机制可自动识别失败原因并尝试重新提交,从而提高系统整体的健壮性和容错率。 最后,通过轻易云平台实时监控整个数据流程,包括数据提取、转换及加载(ETL)等各个阶段,可以及时发现并解决潜在问题。在配置元数据时,对接两端系统所需字段及其格式进行精细化定制,使之完全符合业务需求。同时,对于不匹配的数据,要提前设计好转换逻辑,以便顺利完成跨系统传输,实现真正意义上的无缝衔接。 本文仅是开篇,后续内容将详细介绍每个技术环节中具体实现方案与步骤。因此,请继续关注以获得全面的解决方案和更多实用技巧。 ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/D17.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockout.order.query获取并加工数据 在数据集成过程中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockout.order.query`,以获取并加工出库单数据。 #### 接口配置与调用 首先,我们需要配置元数据,以便正确调用`wdt.stockout.order.query`接口。以下是关键的元数据配置项: - **API**: `wdt.stockout.order.query` - **请求方法**: `POST` - **主键字段**: `stockout_id` - **查询字段**: `order_no` 请求参数包括: 1. **start_time**(开始时间): 用于增量获取数据,格式为`yyyy-MM-dd HH:mm:ss`。 2. **end_time**(结束时间): 同样用于增量获取数据,格式为`yyyy-MM-dd HH:mm:ss`。 3. **status**(状态): 固定值为`110`,表示已完成的出库单。 4. **order_type**(出库单类型): 固定值为`9`,表示纠错出库。 5. 其他可选参数如系统订单编号、原始单号、出库单号、店铺编号和仓库编号等。 分页参数包括: 1. **page_size**(分页大小): 每页返回的数据条数,默认值为40。 2. **page_no**(页号): 默认从0页开始。 #### 数据请求与清洗 在实际操作中,我们通过以下步骤进行数据请求与清洗: 1. **构建请求体**: ```json { "start_time": "{{LAST_SYNC_TIME|datetime}}", "end_time": "{{CURRENT_TIME|datetime}}", "status": "110", "order_type": "9", "page_size": "{PAGINATION_PAGE_SIZE}", "page_no": "{PAGINATION_START_PAGE}" } ``` 2. **发送请求并接收响应**: 使用POST方法发送上述请求体到接口地址,并接收返回的数据。轻易云平台提供了自动填充响应的功能,使得我们可以直接处理返回的数据。 3. **数据清洗与转换**: - 将返回的JSON数据解析成结构化的数据表格。 - 根据业务需求,对特定字段进行清洗和转换。例如,将时间戳转换为标准日期格式,将状态码转换为对应的状态描述等。 #### 数据转换与写入 在完成数据清洗后,需要将处理后的数据写入目标系统。在本案例中,目标系统是金蝶的其他出库单模块。具体步骤如下: 1. **映射字段**: 将源系统中的字段映射到目标系统中的对应字段。例如: - `stockout_id` 映射到 金蝶的 `出库单ID` - `order_no` 映射到 金蝶的 `订单编号` 2. **构建目标系统的请求体**: 根据映射关系构建目标系统所需的请求体,并确保所有必填字段都已填充。 3. **发送写入请求**: 使用适当的方法(如POST或PUT)将处理后的数据发送到目标系统,实现数据写入。 通过上述步骤,我们实现了从旺店通·企业奇门接口获取纠错出库单数据,并将其加工后写入金蝶系统。这一过程不仅保证了数据的一致性和准确性,还极大提升了业务流程的自动化程度。 ![如何对接用友BIP接口](https://pic.qeasy.cloud/S19.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将源平台数据转换并写入金蝶云星空API接口 在数据集成过程中,ETL(Extract, Transform, Load)转换是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并转为金蝶云星空API接口所能够接收的格式,最终写入目标平台。 #### 元数据配置解析 首先,我们需要理解元数据配置中的各个字段及其作用。以下是元数据配置的详细说明: - `api`: "batchSave" - 指定调用的API接口名称。 - `method`: "POST" - 指定HTTP请求方法。 - `idCheck`: true - 是否进行ID检查。 - `request`: 包含一系列字段映射,用于将源数据转换为目标格式。 #### 主要字段及其转换逻辑 1. **单据编号 (FBillNo)** ```json {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"} ``` 该字段将源平台中的订单号 `{order_no}` 映射为金蝶云星空中的单据编号。 2. **单据类型 (FBillTypeID)** ```json {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"标准其他出库单:QTCKD01_SYS\n资产出库:QTCKD02_SYS\nVMI出库:QTCKD03_SYS\n费用物料出库:QTCKD04_SYS\n库存调整:QTCKD05_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTCKD08_SYS"} ``` 这里使用了 `ConvertObjectParser` 解析器,将固定值 `QTCKD08_SYS` 转换为金蝶系统可识别的格式。 3. **库存组织 (FStockOrgId) 和领用组织 (FPickOrgId)** ```json {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"}, {"field":"FPickOrgId","label":"领用组织","type":"string","describe":"领用组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"} ``` 这两个字段都使用了 `ConvertObjectParser` 解析器,将固定值 `100` 转换为目标系统可识别的格式。 4. **日期 (FDate)** ```json {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{consign_time}"} ``` 将源平台中的发货时间 `{consign_time}` 映射为金蝶系统中的日期字段。 5. **明细信息 (FEntity)** ```json {"field": "FEntity", "label": "明细信息", "type": "array", "describe": "明细信息", "value": "details_list", "children": [ {"field": "FMaterialId", "label": "物料编码", "type": "string", "describe": "基础资料", "parser": {"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{{details_list.spec_no}}"}, {"field": "FQty", "label": "实发数量", "type": "string", "describe": "数量", "value": "{{details_list.goods_count}}"}, ... ]} ``` 明细信息是一个数组,包含多个子字段,如物料编码、实发数量等。这些子字段通过模板字符串映射到源数据中的相应字段,如 `{details_list.spec_no}` 和 `{details_list.goods_count}`。 #### 数据转换与写入 在理解了元数据配置后,我们可以开始实际的数据转换与写入过程。以下是具体步骤: 1. **提取源数据**:从源平台提取原始数据,包括订单号、发货时间、物料编码等。 2. **应用元数据配置**:根据元数据配置,将提取的数据映射到目标格式。例如,将 `{order_no}` 映射到 `FBillNo`,将 `{consign_time}` 映射到 `FDate`。 3. **调用API接口**:使用HTTP POST方法,调用金蝶云星空的 `batchSave` API接口,将转换后的数据发送到目标平台。 ```python import requests # 示例请求体 payload = { # 根据元数据配置生成的请求体内容 } headers = { 'Content-Type': 'application/json' } response = requests.post('https://api.kingdee.com/batchSave', json=payload, headers=headers) if response.status_code == 200: print("Data successfully written to Kingdee Cloud.") else: print("Failed to write data:", response.text) ``` #### 注意事项 1. **基础资料验证**:确保所有基础资料(如物料编码、仓库编号等)在目标系统中有效。可以通过设置 `IsVerifyBaseDataField` 为 true 来启用验证。 2. **提交并审核**:如果需要自动提交并审核,可以将 `IsAutoSubmitAndAudit` 设置为 true。 3. **错误处理**:在实际操作中,需要处理可能出现的各种错误,如网络问题、API返回错误等。 通过上述步骤和注意事项,我们可以高效地将源平台的数据转换并写入金蝶云星空,实现不同系统间的数据无缝对接。 ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/T21.png~tplv-syqr462i7n-qeasy.image)