使用轻易云平台进行金蝶云星空API接口的数据转换与写入
### 采购退货单旺店通对接金蝶--114:高效可靠的数据集成方案
在本次数据集成项目中,我们成功实现了旺店通·企业奇门的采购退货单数据与金蝶云星空系统的无缝连接。此次对接主要目标是确保采购退货业务数据能够快速、准确地从旺店通传输到金蝶云星空,以提升整体业务处理效率和透明度。
首先,为保证数据完整性,我们针对旺店通·企业奇门接口 `wdt.stockout.order.query.return` 实现了定时可靠的数据抓取机制。通过每小时自动调用该接口,系统能及时获取最新的退货单数据信息,并将其存储在临时数据库中进行预处理,在此过程中,我们考虑到分页和限流问题,确保大批量数据也能顺利捕获而不遗漏。
预处理完成后,下一步是将这些数据批量写入到金蝶云星空。我们选择使用其提供的 `batchSave` API 接口,这一过程不仅仅是简单的数据转移,还涉及两者之间复杂的数据格式转换和映射。在这个环节,通过自定义脚本解决不同字段名及格式差异的问题,使得两个系统之间的数据交互更加自然顺畅。
此外,为了应对可能出现的异常情况,如网络故障或API调用失败等,我们构建了一套健全的错误重试机制。一旦检测到某次操作未达预期,该机制会立即启动重试流程,同时实时监控日志记录,以便日后追溯并优化整个集成方案。这些措施有效保障了整个集成过程中的稳定性与可靠性。
最终,通过上述方法,实现了大量订单信息从旺店通向金蝶云星空迅速稳定传输,不仅提高了工作效率,也为企业管理层提供了一套透明化、高效率的信息化解决方案。
![金蝶与WMS系统接口开发配置](https://pic.qeasy.cloud/D20.png~tplv-syqr462i7n-qeasy.image)
### 调用旺店通·企业奇门接口wdt.stockout.order.query.return获取并加工数据
在轻易云数据集成平台中,调用源系统接口是数据处理生命周期的第一步。本文将详细探讨如何通过调用旺店通·企业奇门接口`wdt.stockout.order.query.return`来获取并加工数据,以实现采购退货单的对接。
#### 接口调用配置
首先,我们需要配置接口调用的元数据。根据提供的元数据配置,以下是具体的请求参数:
- **API**: `wdt.stockout.order.query.return`
- **Method**: `POST`
- **Pagination**: 每页返回50条记录
- **ID Check**: 启用ID检查
请求参数包括:
1. **start_time**: 开始时间,格式为`yyyy-MM-dd HH:mm:ss`,使用上次同步时间。
2. **end_time**: 结束时间,格式为`yyyy-MM-dd HH:mm:ss`,使用当前时间。
3. **warehouse_no**: 仓库编号。
4. **status**: 出库单状态,默认查询已发货和已完成单据(状态码95和110)。
5. **page_no**: 页号,从第一页开始。
6. **page_size**: 每页返回的数据条数,默认为50。
7. **src_order_no**: 上层单据编号。
此外,还需满足特定条件,即备注字段包含“114”。
#### 请求示例
以下是一个具体的请求示例:
```json
{
"api": "wdt.stockout.order.query.return",
"method": "POST",
"params": {
"start_time": "{{LAST_SYNC_TIME|datetime}}",
"end_time": "{{CURRENT_TIME|datetime}}",
"warehouse_no": "WH001",
"status": "95,110",
"page_no": 1,
"page_size": 50,
"src_order_no": "",
"remark": {"logic":"like", "value":"114"}
}
}
```
#### 数据清洗与转换
获取到原始数据后,需要进行清洗与转换,以便后续写入目标系统。在这个过程中,我们主要关注以下几个方面:
1. **字段映射与转换**:将源系统中的字段映射到目标系统所需的字段。例如,将`order_no`映射为目标系统中的订单编号,将`stockout_id`映射为出库单ID。
2. **数据过滤与校验**:根据业务需求过滤无效或不符合条件的数据,并进行必要的校验。例如,只保留状态为已发货和已完成的记录。
3. **增量更新处理**:通过比较上次同步时间和当前时间,仅提取增量更新的数据。这一步可以有效减少数据处理量,提高效率。
#### 实现细节
在轻易云平台中,可以通过编写脚本或使用内置功能实现上述清洗与转换过程。以下是一个简单的数据清洗示例:
```python
def clean_data(raw_data):
cleaned_data = []
for record in raw_data:
if record['status'] in ['95', '110']:
cleaned_record = {
'订单编号': record['order_no'],
'出库单ID': record['stockout_id'],
'仓库编号': record['warehouse_no'],
'状态': record['status'],
'最后修改时间': record['modified']
}
cleaned_data.append(cleaned_record)
return cleaned_data
```
#### 数据写入
经过清洗与转换的数据,可以通过轻易云平台提供的接口写入到目标系统中。在实际操作中,需要根据目标系统的API规范进行相应配置和调用。
例如,如果目标系统是金蝶ERP,可以配置相应的API接口,并将清洗后的数据批量写入:
```json
{
"api": "kingdee.erp.stockout.write",
"method": "POST",
"params": {
// 清洗后的数据
}
}
```
#### 实时监控与日志记录
为了确保数据集成过程顺利进行,需要实时监控接口调用和数据处理状态,并记录日志以便排查问题。轻易云平台提供了完善的监控和日志功能,可以帮助我们及时发现并解决潜在问题。
综上所述,通过合理配置元数据、精细化的数据清洗与转换,以及高效的数据写入和监控管理,可以实现旺店通·企业奇门接口与金蝶ERP之间的无缝对接,为采购退货单业务流程提供有力支持。
![用友与CRM系统接口开发配置](https://pic.qeasy.cloud/S26.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台实现金蝶云星空API接口的数据转换与写入
在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是关键步骤之一。本文将详细介绍如何使用轻易云数据集成平台将已经集成的源平台数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
#### 配置元数据
在进行ETL转换之前,我们需要配置元数据,以确保数据能够正确映射到目标平台。以下是我们针对采购退货单的元数据配置:
```json
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{
"field": "FBillTypeID",
"label": "单据类型",
"type": "string",
"describe": "单据编号",
"value": "TLD01_SYS",
"parser": {
"name": "ConvertObjectParser",
"params": "FNumber"
}
},
{
...
}
],
...
}
```
#### 数据请求与清洗
在这个阶段,我们从源系统请求原始数据,并进行必要的清洗和预处理。比如,将日期格式统一、处理缺失值等。这一步确保了后续的数据转换能够顺利进行。
#### 数据转换
接下来,我们将清洗后的数据按照元数据配置进行转换。以下是几个关键字段的转换示例:
1. **单据类型 (FBillTypeID)**:
```json
{
"field": "FBillTypeID",
"label": "单据类型",
...
"value": "TLD01_SYS"
}
```
使用 `ConvertObjectParser` 将源系统中的单据类型编号转换为金蝶云星空所需的格式。
2. **业务类型 (FBusinessType)**:
```json
{
...
"field": "FBusinessType",
...
"value": "CG"
}
```
固定值设置为“CG”,表示采购业务。
3. **单据编号 (FBillNo)**:
```json
{
...
"field": "FBillNo",
...
"value": "{order_no}-TC"
}
```
使用模板字符串将源系统中的订单号拼接上“-TC”后缀,形成新的单据编号。
4. **退料日期 (FDate)**:
```json
{
...
"field": "FDate",
...
"value": "{consign_time}"
}
```
将源系统中的日期字段直接映射到目标字段。
5. **供应商 (FSupplierID)**:
```json
{
...
'field': 'FSupplierID',
...
'parser': {'name': 'ConvertObjectParser', 'params': 'FNumber'},
'value': '{provider_no}'
}
```
将供应商编号通过 `ConvertObjectParser` 转换为目标系统所需格式。
6. **明细信息 (FPURMRBENTRY)**:
```json
{
...
'field': 'FPURMRBENTRY',
'children': [
{
'field': 'FMATERIALID',
'parser': {'name': 'ConvertObjectParser', 'params': 'FNumber'},
'value': '{{details_list.spec_no}}'
},
...
{
'field': 'FRMREALQTY',
'value': '{{details_list.goods_count}}'
},
...
]
}
```
明细信息包含多个子字段,如物料编码、实退数量等,通过 `ConvertObjectParser` 和模板字符串进行相应的转换和映射。
#### 数据写入
完成所有字段的转换后,我们使用配置好的API接口将数据批量写入金蝶云星空。以下是一个POST请求示例:
```json
{
'FormId': 'PUR_MRB',
'Operation': 'batchSave',
'IsAutoSubmitAndAudit': true,
...
}
```
通过调用 `batchSave` 方法,将所有处理后的数据发送到金蝶云星空,实现最终的数据写入。
#### 实现自动化与监控
为了确保整个过程高效且无误,可以利用轻易云平台提供的全透明可视化操作界面和实时监控功能,自动化执行上述步骤并实时监控每个环节的数据流动和处理状态。这不仅提高了效率,还保证了业务流程的透明度和可靠性。
通过以上步骤,我们成功地将源平台的数据经过ETL转换后写入到金蝶云星空,完成了整个生命周期中的关键环节。
![如何对接企业微信API接口](https://pic.qeasy.cloud/T13.png~tplv-syqr462i7n-qeasy.image)