使用轻易云平台进行ETL转换并写入金蝶云星辰V2

  • 轻易云集成顾问-姚缘
### 旺店通·企业奇门数据集成到金蝶云星辰V2的技术实现 在系统对接与数据集成领域,旺店通·企业奇门与金蝶云星辰V2之间的数据流动和处理无疑是一个复杂且具有挑战性的任务。在本文中,我们将深入探讨“其他入库(调拨)V2.0”方案的具体实施,通过API接口高效、精准地进行数据交互。重点将解析如何调用旺店通·企业奇门接口(wdt.stockin.order.query),以及如何通过金蝶云星辰V2写入API(/jdy/v2/scm/inv_other_in)完成数据存储。 #### 确保集成旺店通·企业奇门数据不漏单 对于电商物流管理平台来说,高效地抓取所有入库订单至关重要。我们采用了定时可靠的数据抓取机制,即利用轻易云提供的任务调度功能,每隔固定时间调用一次wdt.stockin.order.query接口,从而确保每一条订单都被完整获取并融入到后续的数据处理流程中。 #### 批量快速写入到金蝶云星辰V2 为了应对大量订单同步的问题,在接收到从旺店通·企业奇门获取的大量JSON格式数据后,需将其迅速转换为符合金蝶云星辰V2要求的格式,并通过/jdy/v2/scm/inv_other_in API 进行批量提交。这不仅提高了写入效率,还大幅减少了HTTP请求次数,有助于最大限度地节省网络资源并加快整体响应速度。 #### 处理分页和限流问题 由于电商平台每天会产生大量交易记录,因此在调用wdt.stockin.order.query接口时,需要特别注意分页参数设置,以便能够逐页读取所有需要处理的数据。同时,为防止触发API限制机制,我们引入了限流策略,对每次请求间隔进行了合理配置,从而保障整个数据获取过程的平稳运行。 #### 数据格式差异与映射对接 两个不同系统之间的数据结构往往存在显著差异。例如,旺店通JSON返回结果中的某些字段名称和格式可能无法直接对应至金蝶云所需字段。因此,我们设计了一套灵活有效的映射规则,将两者之间的关系清晰定义,并自动转化,以确保最终传输至金蝶系统的数据完全符合预期标准。 上述关键步骤仅仅是这一复杂系统对接案例的一部分。关于更多细节,例如异常处理机制、实时监控能力及日志记录方法等内容,将在随后的章节中进一步展开。 ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/D24.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据 在轻易云数据集成平台中,调用源系统接口是数据处理生命周期的第一步。本文将深入探讨如何通过调用旺店通·企业奇门接口`wdt.stockin.order.query`来获取并加工数据。 #### 接口调用配置 首先,我们需要配置API接口的元数据,以确保能够正确地请求和接收所需的数据。以下是元数据配置的详细说明: ```json { "api": "wdt.stockin.order.query", "method": "POST", "number": "order_no", "id": "stockin_id", "pagination": { "pageSize": 50 }, "condition": [ [ { "field": "warehouse_no", "logic": "neq", "value": "WH2024052601" } ] ], "idCheck": true, "request": [ { "field": "start_time", "label": "开始时间", "type": "string", "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{LAST_SYNC_TIME|datetime}}" }, { "field": "end_time", "label": "结束时间", "type": "string", "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{CURRENT_TIME|datetime}}" }, { "field": "order_type", "label": "源单据类别", "type": "string", "describe": """ 源单据类别: - 1: 采购入库 - 2: 调拨入库 - ... """, } }, { ... } ], ... } ``` #### 请求参数详解 1. **开始时间和结束时间**:使用`start_time`和`end_time`字段来指定数据增量获取的时间范围。通过模板变量`{{LAST_SYNC_TIME|datetime}}`和`{{CURRENT_TIME|datetime}}`动态生成具体的时间值。 2. **源单据类别**:通过设置`order_type`为2,明确表示我们只需要调拨入库的数据。 3. **入库单状态**:设置`status`为60和80,表示我们只需要“待结算”和“已完成”的入库单。 4. **仓库编号**:通过设置特定的仓库编号来过滤不需要的数据。 #### 分页处理 为了高效地处理大量数据,我们采用分页机制。元数据中的分页配置如下: ```json { ... “pagination”: { “pageSize”: 50 }, ... } ``` 每次请求返回50条记录,通过调整分页参数(如`page_size`和`page_no`)可以逐页获取所有符合条件的数据。 #### 数据清洗与转换 在获取到原始数据后,需要对其进行清洗与转换,以便后续处理和存储。以下是一个简单的数据清洗示例: ```python def clean_data(raw_data): cleaned_data = [] for record in raw_data: cleaned_record = { 'order_no': record['order_no'], 'stockin_id': record['stockin_id'], 'warehouse_no': record['warehouse_no'], 'status': record['status'], 'last_modified': record['last_modified'] } cleaned_data.append(cleaned_record) return cleaned_data ``` 该函数从原始记录中提取必要字段,并生成一个新的干净记录列表。 #### 数据写入 清洗后的数据可以通过轻易云平台的其他功能模块写入目标系统或数据库。以下是一个简单的数据写入示例: ```python def write_data(cleaned_data, target_system): for record in cleaned_data: target_system.insert(record) ``` 通过这种方式,可以实现从源系统到目标系统的数据无缝对接。 #### 实时监控与调试 在整个过程中,轻易云平台提供了实时监控功能,可以随时查看数据流动和处理状态。这对于及时发现和解决问题至关重要。 综上所述,通过合理配置元数据、精确调用API接口、有效进行数据清洗与转换,以及高效的数据写入,可以实现旺店通·企业奇门接口的顺利集成,为后续的数据处理奠定坚实基础。 ![金蝶与外部系统打通接口](https://pic.qeasy.cloud/S10.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入金蝶云星辰V2API接口 在数据集成过程中,ETL(Extract, Transform, Load)是关键的一步。在本案例中,我们将重点探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,最终写入目标平台——金蝶云星辰V2API接口。 #### 数据请求与清洗 首先,我们需要从源系统中提取原始数据,并进行必要的清洗和预处理。假设我们已经完成了这一步,并获得了一个结构化的数据集。接下来,我们将进入数据转换与写入阶段。 #### 数据转换与写入 在这一阶段,我们需要将清洗后的数据转换为目标平台能够接收的格式,并通过API接口将其写入到金蝶云星辰V2。以下是具体的元数据配置和操作步骤: 1. **API接口配置** - API路径:`/jdy/v2/scm/inv_other_in` - 请求方法:`POST` - 主要字段: - `bill_date`(单据日期) - `bill_no`(单据编码) - `trans_type_id`(业务类型id) - `operation_key`(操作类型) - `material_entity`(商品分录) 2. **字段映射** 我们需要将源数据字段映射到目标API所需的字段。例如: - `bill_date` 映射到 `{stockin_time}` - `bill_no` 映射到 `{order_no}` - `trans_type_id` 固定值为 `"12"` - `operation_key` 固定值为 `"audit"` - `material_entity` 是一个数组,包含多个商品分录,每个分录包含以下子字段: - `material_id` 通过 `_mongoQuery` 查询获得 - `qty` 映射到 `{details_list.goods_count}` - `unit_id` 通过 `_mongoQuery` 查询获得 - `stock_id` 通过 `_findCollection` 查询获得 3. **元数据配置示例** ```json { "api": "/jdy/v2/scm/inv_other_in", "effect": "EXECUTE", "method": "POST", "number": "id", "id": "id", "name": "id", "idCheck": true, "request": [ {"field":"bill_date","label":"单据日期","type":"string","value":"{stockin_time}"}, {"field":"bill_no","label":"单据编码","type":"string","value":"{order_no}"}, {"field":"trans_type_id","label":"业务类型id","type":"string","value":"12"}, {"field":"operation_key","label":"操作类型","type":"string","value":"audit"}, {"field":"material_entity","label":"商品分录","type":"array","value":"details_list","children":[ {"field":"material_id","label":"商品","type":"string","value":"_mongoQuery d476a55d-acc7-3156-9c7f-b9f9dce596b5 findField=content.id where={\"content.number\": {\"$eq\":\"{{details_list.goods_no}}\"}}"}, {"field":"qty","label":"数量","type":"string","value":"{{details_list.goods_count}}"}, {"field":"unit_id","label":"单位","type":"string","value":"_mongoQuery d476a55d-acc7-3156-9c7f-b9f9dce596b5 findField=content.base_unit_id where={\"content.number\": {\"$eq\":\"{{details_list.goods_no}}\"}}"}, {"field":"stock_id","label":"仓库","type":"string","value":"_findCollection find id from 9cf5314a-709f-3e72-b021-c9edae06888f where number={{details_list.warehouse_no}}"} ]} ] } ``` 4. **执行ETL转换** 在轻易云平台上配置好上述元数据后,系统会自动执行ETL过程,将源数据转换为符合金蝶云星辰V2API要求的格式,并通过POST请求将其写入目标系统。 5. **实时监控与日志记录** 在整个过程中,轻易云平台提供了实时监控和日志记录功能,可以帮助我们追踪每一步的数据流动和处理状态,确保所有操作透明可见。 通过以上步骤,我们成功地实现了从源平台到金蝶云星辰V2的ETL转换和数据写入。这不仅提升了数据处理效率,也确保了不同系统间的数据一致性和准确性。 ![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/T13.png~tplv-syqr462i7n-qeasy.image)