### 从旺店通·企业奇门到金蝶云星空:数据集成的落地实践
在系统集成工作中,将不同平台的数据高效且可靠地对接,是我们面临的重要任务。本文分享了一个典型案例,即通过`盘盈单4同步金蝶其他入库RK_查询覆盖`方案,实现旺店通·企业奇门与金蝶云星空之间的数据集成。
为确保旺店通·企业奇门中的数据不漏单,我们调用了其API接口`wdt.stockin.order.query`,从而定时可靠抓取库存相关的数据。针对大批量数据的处理,通过轻易云数据集成平台,我们可以快速写入这些数据到金蝶云星空,使用其提供的API接口`batchSave`完成批量操作。这一切不仅有效提高了效率,还保证了数据的一致性和准确性。
在整个过程中,需要特别注意处理分页和限流的问题,以避免因请求频率过高导致服务端响应压力。同时,由于两个系统间的数据格式可能存在差异,需要在映射关系上进行定制化设置,确保字段对应完美无误。此外,在错误重试机制上做足防护措施也是必不可少的一环,它能保障对接过程中万一出现异常情况时自动重新尝试,从而提升整体流程的稳定性。
最后,为进一步加强监控和日志管理,我们引入实时监控功能及详细日志记录,对每一步操作细节进行跟踪。这不仅让开发团队能够及时发现并解决潜在问题,也为后续优化提供详实依据。
![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/D28.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据
在数据集成生命周期的第一步中,调用源系统接口获取数据是至关重要的一环。本文将详细探讨如何使用轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockin.order.query`来获取盘盈单数据,并对其进行初步加工。
#### 接口调用配置
首先,我们需要配置接口的元数据,以确保能够正确地请求和接收所需的数据。以下是该接口的元数据配置:
```json
{
"api": "wdt.stockin.order.query",
"method": "POST",
"number": "order_no",
"id": "stockin_id",
"pagination": {
"pageSize": 50
},
"condition_bk": [[]],
"request": [
{
"field": "start_time",
"label": "开始时间",
"type": "string",
"value": "{{LAST_SYNC_TIME|datetime}}",
"describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss"
},
{
"field": "end_time",
"label": "结束时间",
"type": "string",
"value": "{{CURRENT_TIME|datetime}}",
"describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss"
},
{
"field": "order_type",
"label": "源单据类别",
"type": "string",
"value": "4",
"describe": "单据类别 1采购入库, 2调拨入库, 4盘盈入库, 5生产入库, 6其他入库, 7保修入库, 8纠错入库, 9初始化入库 10预入库11JIT退货入库12委外入库"
},
{
"field": "status",
...
},
...
],
...
}
```
#### 请求参数详解
1. **开始时间和结束时间**:通过`start_time`和`end_time`字段,我们可以按最后修改时间增量获取数据。这两个字段分别使用占位符`{{LAST_SYNC_TIME|datetime}}`和`{{CURRENT_TIME|datetime}}`来动态生成请求时的具体时间点。
2. **源单据类别**:字段`order_type`设置为"4",表示我们只查询盘盈单的数据。
3. **分页处理**:为了处理大批量的数据,接口支持分页查询。我们通过设置`page_size`和`page_no`来控制每次请求的数据量和页码。
#### 数据请求与清洗
在完成接口配置后,我们可以发起POST请求以获取盘盈单的数据。以下是一个示例请求体:
```json
{
...
{
...
{
...
}
}
}
```
返回的数据通常包含多个字段,如订单编号、仓库编号、上层单据编号等。在接收到这些数据后,需要进行初步清洗,以确保后续处理的准确性和一致性。例如:
- **过滤无效数据**:移除状态为已取消或编辑中的记录。
- **格式转换**:将日期字符串转换为标准日期格式,以便于后续分析。
#### 数据转换与写入
经过清洗后的数据,可以进一步转换为目标系统所需的格式,并写入到相应的数据库或文件系统中。例如,将盘盈单信息同步到金蝶其他入库模块。此过程涉及到字段映射、值转换等操作。
```json
{
...
}
```
通过以上步骤,我们成功实现了从旺店通·企业奇门接口获取盘盈单数据,并进行了初步加工,为后续的数据处理打下了坚实基础。在实际应用中,还可以根据业务需求进一步优化和扩展这些操作,以提升整体效率和准确性。
![用友与CRM系统接口开发配置](https://pic.qeasy.cloud/S30.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台:ETL转换与写入金蝶云星空API接口的技术案例
在数据集成生命周期的第二步,我们重点关注如何将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台——金蝶云星空。以下是具体的技术实现过程。
#### API接口配置与请求参数
我们使用的是金蝶云星空的`batchSave` API接口,通过POST方法进行数据提交。以下是元数据配置中的关键字段及其解析方式:
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`
- 固定值:`BM003`
7. **备注 (FNOTE)**:
- 类型:字符串
- 来源:`{remark}`
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. **批号 (FLOT)**:
- 类型:字符串
- 解析器:`ConvertObjectParser`
- 参数:`FNumber`
- 来源于明细列表中的字段 `{{details_list.batch_no}}`
f. **备注 (FEntryNote)**:
- 类型:字符串
g. **成本价 (FPrice)**:
- 类型:字符串
#### 请求示例
以下是一个完整的请求示例,展示了如何将上述元数据配置应用到实际的数据请求中:
```json
{
"FormId": "STK_MISCELLANEOUS",
"IsVerifyBaseDataField": true,
"Operation": "Save",
"IsAutoSubmitAndAudit": true,
"Model": {
"FBillNo": "{stockin_no}",
"FBillTypeID": {"FNumber": "QTRKD01_SYS"},
"FStockOrgId": {"FNumber": "100"},
"FDate": "{stockin_time}",
"FSUPPLIERID": {"FNumber": "{supplier_id}"},
"FDEPTID": {"FNumber": "BM003"},
"FNOTE": "{remark}",
"FEntity": [
{
"FMATERIALID": {"FNumber": "{{details_list.goods_no}}"},
"FCMKBarCode": "{barcode}",
"FSTOCKID": {"FNumber": "{warehouse_no}"},
"FQty": "{{details_list.goods_count}}",
"FLOT": {"FNumber": "{{details_list.batch_no}}"},
"FEntryNote": "{entry_note}",
"FPrice": "{price}"
}
// 可以有多个明细项,按照上述格式添加更多对象即可。
]
}
}
```
#### 数据转换与写入流程
1. **提取**(Extract):从源系统中提取原始数据。假设我们已经完成了这一步并得到了所需的数据集。
2. **转换**(Transform):根据元数据配置对提取的数据进行格式转换。例如,将日期格式化为目标系统所需的格式,将编码字段通过解析器转化为目标系统识别的编码。
3. **加载**(Load):通过调用金蝶云星空的API接口,将转换后的数据加载到目标系统中。
在整个过程中,我们利用轻易云数据集成平台提供的全透明可视化操作界面,实时监控和调整每个环节的数据流动和处理状态,确保数据准确无误地写入目标平台。
通过以上步骤,我们成功实现了从源平台到金蝶云星空API接口的数据ETL转换和写入,为企业的数据集成提供了高效、可靠的解决方案。
![打通企业微信数据接口](https://pic.qeasy.cloud/T26.png~tplv-syqr462i7n-qeasy.image)