### 旺店通·企业奇门数据集成到金蝶云星空案例分享:传入金蝶其他出库单
在系统集成项目中,如何确保不同平台间的数据无缝对接,一直是技术人员面临的核心挑战。本次我们聚焦于一个实际运行的方案:将旺店通·企业奇门的数据高效传入金蝶云星空,以实现其他出库单数据的同步和管理。
为了实现这一目标,我们采用了轻易云数据集成平台,该平台支持自定义数据转换逻辑,并提供可视化的数据流设计工具,使得复杂的数据处理过程更加直观且易于管理。具体方案包括从旺店通·企业奇门接口`wdt.stockout.order.query`定时、可靠地抓取订单数据,再通过优化后的批量写入机制,高效地将这些数据存储到金蝶云星空接口`batchSave`中。
集成过程中,为了解决分页和限流等问题,我们设计了一套自动重试与异常处理机制,确保每条订单都能成功同步。此外,通过集中监控和告警系统,我们实时跟踪整个数据流动情况,当出现任何异常时能够及时介入并处理。这不仅提升了系统稳定性,还有效防止了漏单现象。
在具体实施阶段,相应解决以下几项关键技术点:
1. **如何调用旺店通·企业奇门接口wdt.stockout.order.query**:
通过API资产管理功能,实现统一视图控制台下的高效调用。
2. **如何处理分页和限流问题**:
使用自动重试与错误重试机制来应对潜在限制,并保证连续性。
3. **克服两者之间的数据格式差异**:
设置定制化的数据映射规则,使结构不一致的问题迎刃而解。
4. **大规模快速写入至金蝶云星空**:
利用高吞吐量特性,在短时间内完成大量订单数据写入,提高整体效率。
由此可见,通过合理配置元数据及充分利用各环节优势,不仅可以保障订单信息准确、高速地传输,还能显著提高业务操作透明度与管理效益。
![数据集成平台API接口配置](https://pic.qeasy.cloud/D11.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台调用旺店通·企业奇门接口获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细介绍如何使用轻易云数据集成平台调用旺店通·企业奇门接口 `wdt.stockout.order.query` 获取并加工数据。
#### 接口概述
`wdt.stockout.order.query` 是一个用于查询出库单信息的API接口。该接口支持多种参数配置,能够根据不同的查询条件获取相应的出库单数据。以下是该接口的元数据配置:
```json
{
"api": "wdt.stockout.order.query",
"effect": "QUERY",
"method": "POST",
"number": "order_no",
"id": "stockout_id",
"name": "order_no",
"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": [
{"2":"调拨出库"},
{"3":"采购退货出库"},
{"4":"盘亏出库"},
{"5":"生产出库"},
{"7":"其他出库"},
{"8":"多发出库"},
{"9":"纠错出库"},
{"10":"保修配件出库"},
{"11":"初始化出库"},
{"12":"jit拣货出库"},
{"13":"委外出库"}
]
},
{
"field": "status",
...
```
#### 请求参数配置
在实际应用中,我们需要根据业务需求配置请求参数。以下是一些关键参数及其配置示例:
- **开始时间 (`start_time`)** 和 **结束时间 (`end_time`)**:
```json
{
...
{
...
“value”: "{{LAST_SYNC_TIME|datetime}}"
},
{
...
“value”: "{{CURRENT_TIME|datetime}}"
}
}
```
这些参数用于按最后修改时间增量获取数据,确保每次同步的数据都是最新的。
- **出库单类型 (`order_type`)**:
```json
{
...
“value”: “7”
}
```
我们可以根据业务需求选择特定类型的出库单,例如“其他出库”。
- **分页大小 (`page_size`)** 和 **页号 (`page_no`)**:
```json
{
...
“value”: "{PAGINATION_PAGE_SIZE}"
},
{
...
“value”: "{PAGINATION_START_PAGE}"
}
```
分页参数确保在大批量数据查询时能够分批次处理,提高效率和稳定性。
#### 数据清洗与转换
在获取到原始数据后,需要进行清洗和转换,以便后续的数据处理和写入。以下是一些常见的数据清洗与转换操作:
1. **字段映射**:将源系统中的字段映射到目标系统中的字段。例如,将 `stockout_id` 映射为 `order_id`。
2. **数据格式转换**:将日期格式从 `yyyy-MM-dd HH:mm:ss` 转换为目标系统所需的格式。
3. **过滤无效数据**:移除状态为“已取消”的订单,确保只处理有效订单。
#### 实践案例
假设我们需要从旺店通获取所有状态为“已发货”和“已完成”的其他出库单,并将其传入金蝶系统。具体步骤如下:
1. 配置请求参数:
```json
{
...
“start_time”: "{{LAST_SYNC_TIME|datetime}}",
“end_time”: "{{CURRENT_TIME|datetime}}",
“order_type”: “7”,
“status”: ["95", “110”]
}
```
2. 调用接口并获取响应:
```python
response = requests.post(api_url, data=json.dumps(request_params), headers=headers)
data = response.json()
```
3. 数据清洗与转换:
```python
cleaned_data = []
for record in data['orders']:
if record['status'] in ['95', '110']:
cleaned_record = {
'order_id': record['stockout_id'],
'order_no': record['order_no'],
'warehouse_no': record['warehouse_no'],
'date': datetime.strptime(record['date'], '%Y-%m-%d %H:%M:%S').strftime('%Y%m%d')
}
cleaned_data.append(cleaned_record)
```
通过上述步骤,我们成功地从旺店通获取了符合条件的其他出库单,并对其进行了必要的数据清洗和转换,为后续的数据写入做好了准备。
![用友与MES系统接口开发配置](https://pic.qeasy.cloud/S5.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台:ETL转换与金蝶云星空API接口集成案例
在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是将源平台数据转化为目标平台可接受格式的关键步骤。本文将深入探讨如何利用轻易云数据集成平台,将旺店通的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
#### 数据请求与清洗
在开始ETL转换之前,我们需要从源系统(旺店通)获取原始数据。这一阶段主要包括数据请求和初步清洗,以确保数据的完整性和准确性。假设我们已经完成了这一阶段,接下来将重点介绍如何进行ETL转换。
#### 数据转换与写入
轻易云数据集成平台提供了丰富的元数据配置功能,可以帮助我们将源数据转换为目标系统所需的格式。以下是一个具体的元数据配置示例,用于将旺店通的数据传入金蝶其他出库单:
```json
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "FBillNo",
"label": "单据编号",
"type": "string",
"describe": "单据编号",
"value": "{order_no}"
},
{
"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": "_function case when '{stockout_reason}' ='盘亏出库单' then 'QTCKD06_SYS' when '{stockout_reason}' ='报废出库(无赔款)' then 'QTCKD12_SYS' when '{stockout_reason}' ='报废出库(有赔款)' then 'QTCKD13_SYS' when '{stockout_reason}' ='2C耗材出库' then 'QTCKD14_SYS' when '{stockout_reason}' ='2B耗材出库' then 'QTCKD15_SYS' else 'QTCKD01_SYS' end"
},
{
...
}
],
...
}
```
#### 解析元数据配置
1. **API与方法**:
- `api`: 指定调用的金蝶云星空API接口,这里使用的是`batchSave`。
- `method`: 指定HTTP请求方法,这里使用`POST`。
2. **字段映射与转换**:
- `FBillNo`: 映射到源系统中的订单编号`{order_no}`。
- `FBillTypeID`: 根据不同的`{stockout_reason}`值,通过条件判断选择对应的单据类型。
```json
"_function case when '{stockout_reason}' ='盘亏出库单' then 'QTCKD06_SYS' when '{stockout_reason}' ='报废出库(无赔款)' then 'QTCKD12_SYS' when '{stockout_reason}' ='报废出库(有赔款)' then 'QTCKD13_SYS' when '{stockout_reason}' ='2C耗材出库' then 'QTCKD14_SYS' when '{stockout_reason}' ='2B耗材出库' then 'QTCKD15_SYS' else 'QTCKD01_SYS' end"
```
- `FPickOrgId`, `FStockOrgId`, `FOwnerIdHead`, 等字段均通过`ConvertObjectParser`进行基础资料编码转换。
3. **明细信息**:
- `FEntity`: 包含多个子字段,如`FMaterialId`, `FQty`, `FStockId`等,分别对应物料编码、实发数量、发货仓库等信息。
```json
{
...
{
"field": "FMaterialId",
...
"value": "{{details_list.spec_no}}"
},
{
...
}
}
```
4. **其他请求参数**:
- `FormId`: 指定业务对象表单ID,这里为`STK_MisDelivery`。
- `IsAutoSubmitAndAudit`: 设置为`true`,表示自动提交并审核。
- `IsVerifyBaseDataField`: 设置为`true`,表示验证所有基础资料有效性。
#### 数据写入
完成上述配置后,我们可以通过轻易云的数据集成平台,将处理后的数据发送到金蝶云星空API接口,实现最终的数据写入操作。通过这种方式,不同系统间的数据可以实现无缝对接,大大提升了业务处理效率和透明度。
以上就是一个完整的ETL转换与写入金蝶云星空API接口的技术案例,希望能为您的系统集成工作提供参考和帮助。
![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/T1.png~tplv-syqr462i7n-qeasy.image)