ETL转换:从旺店通到金蝶云星空的数据写入流程

  • 轻易云集成顾问-卢剑航
### 旺店通物料对接金蝶-new:从旗舰奇门到金蝶云星空的数据集成实战 在企业信息化系统对接中,高效且稳定的数据集成方案至关重要。本案例聚焦于如何通过轻易云数据集成平台实现旺店通·旗舰奇门与金蝶云星空之间的无缝数据对接,完成物料信息的全面互联。这一过程中,选用了关键的API接口`wdt.goods.goods.querywithspec`和`batchSave`来分别获取及保存数据,从而保证了整个流程的顺畅进行。 #### 确保不漏单 为了确保集成过程中所有订单信息能够完整捕获,我们通过调用旺店通·旗舰奇门提供的API接口`wdt.goods.goods.querywithspec`。这一操作不仅能够获取详细商品规格,还能极大限度地避免数据遗漏。在配置过程中,我们依靠轻易云提供的平台特性,实现了定时可靠的抓取任务,无需手动干预,从而提升了业务处理效率。 #### 大量数据快速写入 在实际应用场景中,通常需要将大量查询结果批量写入到金蝶云星空。我们采用了其开放API `batchSave`进行高效的数据传输,这一策略不仅提高了处理速度,同时也显著降低了系统资源消耗。在实施这一步骤时,通过优化批次大小和并发数,有效规避了网络延迟和性能瓶颈问题。 #### 解决分页与限流 由于旺店通·旗舰奇门API存在请求分页和限流限制,在设计方案时特别注意这些技术细节。为此,我们在服务器端建立了一套健壮的分页机制,并配合使用缓存队列存储临时拉取的数据,以应对高频请求情况,同时实时监控执行状态保障任务顺利完成。 综上所述,本技术案例以实现稳健、高效、自动化为目标,通过合理选择并配置相关接口方法,实现两个异构系统间的数据无缝交互,为企业日常运营提供有力支持。 ![如何开发金蝶云星空API接口](https://pic.qeasy.cloud/D20.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·旗舰奇门接口wdt.goods.goods.querywithspec获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口`wdt.goods.goods.querywithspec`来获取并加工数据。 #### 接口概述 接口`wdt.goods.goods.querywithspec`用于查询商品信息,支持按商家编码、货品编号、品牌编号等多种条件进行查询。该接口采用POST请求方式,返回符合条件的商品信息列表。 #### 元数据配置解析 元数据配置如下: ```json { "api": "wdt.goods.goods.querywithspec", "effect": "QUERY", "method": "POST", "number": "goods_no", "id": "goods_no", "name": "brand_name", "idCheck": true, "request": [ { "field": "pager", "label": "分页参数", "type": "object", "describe": "分页参数", "children": [ { "field": "page_size", "label": "分页大小", "type": "int", "describe": "分页大小", "value": "50" }, { "field": "page_no", "label": "页号", "type": "int", "describe": "从1开始", "value": "1" } ] }, { "field": "params", ... } ], ... } ``` #### 请求参数详解 1. **分页参数**: - `page_size`:每页返回的数据条数,默认值为50。 - `page_no`:页码,从1开始。 2. **业务参数**: - `spec_no`:商家编码。 - `goods_no`:货品编号。 - `brand_name`:品牌编号。 - `class_name`:分类名称。 - `barcode`:条码。 - `hide_deleted`:是否隐藏已删除的货品。0表示返回全部,1表示隐藏已删除,默认隐藏。 - `start_time`:起始修改时间,默认值为上次同步时间({{LAST_SYNC_TIME|datetime}})。 - `end_time`:结束修改时间,默认值为当前时间({{CURRENT_TIME|datetime}})。 #### 数据请求与清洗 在实际操作中,我们需要按照以下步骤进行数据请求与清洗: 1. **构建请求体**: 根据元数据配置构建请求体,例如: ```json { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... ![系统集成平台API接口配置](https://pic.qeasy.cloud/S11.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口 在数据集成过程中,将源平台的数据转换为目标平台可接收的格式是至关重要的一步。本文将详细探讨如何利用轻易云数据集成平台,将旺店通物料数据通过ETL(提取、转换、加载)过程,转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 首先,确保从源平台(如旺店通)获取的数据是完整且准确的。数据请求阶段通常涉及API调用以获取原始数据,并对这些数据进行初步清洗和验证,以确保其符合预期格式和内容要求。这一步骤虽然重要,但本文重点将放在后续的ETL转换和写入操作上。 #### 数据转换与写入 在完成初步的数据清洗后,接下来就是关键的ETL转换过程。根据提供的元数据配置,我们需要将源平台的数据字段映射到目标平台金蝶云星空API接口所需的字段格式。以下是具体步骤: 1. **定义API接口参数**: - API接口为`batchSave`,使用`POST`方法。 - 需要进行ID检查(`idCheck: true`)。 - 操作类型为批量保存(`operation: { rowsKey: "array", rows: 1, method: "batchArraySave" }`)。 2. **字段映射**: - 将源平台的字段映射到目标平台对应的字段。例如,将旺店通物料编码(`goods_no`)映射到金蝶云星空的编码字段(`FNumber`)。 ```json [ {"field": "FNumber", "label": "编码", "type": "string", "value": "{goods_no}"}, {"parent": "SubHeadEntity", "label": "商品编码", "field": "F_ZZZZ_SJBM", "type": "string", "value": "{{spec_list.spec_no}}"}, {"field": "FName", "label": "名称", "type": "string", "value": "{goods_name}"}, {"field": "FDescription", "label": "描述", "type": "string"}, {"field": "FCreateOrgId", "label": "创建组织", "type": "string", "parser":{"name":"ConvertObjectParser","params":"FNumber"}, "value":"100"}, {"field": "FUseOrgId", "label": "使用组织", "type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"}, "value":"100"} ] ``` 3. **子实体处理**: - 对于复杂结构的数据,如包含子实体,需要进一步细化映射。例如,物料属性、基本单位、存货类别等信息都需要分别处理。 ```json { "field":"SubHeadEntity", "label":"基本", ... } ``` 4. **单位换算**: - 对于涉及单位换算的字段,需要特别注意其结构和内容。例如,采购单位与基本单位之间的换算关系。 ```json { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... 5. **其他请求参数**: - 设置业务对象表单ID、执行操作类型等其他必要参数。 ```json [ {"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"BD_MATERIAL"}, {"field":"Operation","label":"执行的操作","type":"string","value":"Save"}, {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","value":"false"}, {"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"false"} ] ``` #### 实际操作示例 假设我们有如下原始数据: ```json { "goods_no": "12345", ... 我们将其通过上述配置进行转换,并生成最终发送到金蝶云星空API接口的数据格式: ```json { ... 通过轻易云数据集成平台,我们可以实现上述复杂的数据转换过程,并确保每个步骤都透明可见,从而提高整体业务效率和准确性。 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/T23.png~tplv-syqr462i7n-qeasy.image)