### 金蝶云星空数据集成到旺店通WMS案例分享:盘盈单=>其他入库单-1
在系统对接和数据集成领域,确保不同平台之间的数据无缝流动是关键任务。本文将详细介绍如何使用轻易云数据集成平台,将金蝶云星空的"盘盈单"数据有效地同步至旺店通WMS系统中的“其他入库单”。
**一、金蝶云星空接口调用**
为了实现从金蝶云星空获取有效的盘盈单数据,我们需要调用其提供的API `executeBillQuery`。该接口允许我们按指定的业务条件进行查询,并分页返回结果。在实际操作中,需要特别处理以下两点:
1. **分页处理**:由于每次API调用返回的数据量有限,因此需实现分页抓取机制,以确保所有相关记录不漏掉。
2. **限流控制**:为避免触发金蝶云星空API服务端限制,请求频率需合理设置。
```python
# 示例代码片段 - 调用executeBillQuery API
def fetch_data_from_kingdee(pagination_params):
response = requests.post(
url="https://api.kingdee.com/executeBillQuery",
data=json.dumps(pagination_params),
headers={"Content-Type": "application/json"}
)
return response.json()
```
**二、批量写入到旺店通WMS**
当成功获取到金蝶云星空盘盈单后,下一步便是将这些数据高效地写入到旺店通WMS的“其他入库单”模块中。这里我们使用 `WDT_WMS_ENTRYORDER_CREATE` 接口来完成这一目标。
```python
# 示例代码片段 - 调用 WDT_WMS_ENTRYORDER_CREATE API
def write_data_to_wdt(data_batch):
response = requests.post(
url="https://api.wangdiantong.com/WDT_WMS_ENTRYORDER_CREATE",
data=json.dumps(data_batch),
headers={"Content-Type": "application/json"}
)
return response.json()
```
在这个过程中,有几项技术挑战值得关注:
1. **数据格式转换**: 金蝶与旺店通系统间的数据格式可能有较大差异,此时必须进行定制化的数据映射和调整。例如字段名和结构上的不同。
2. **错误重试机制**: 考虑网络环境等各种可能引起请求失败的问题,构建一个可靠的错误重试机制非常重要,确保每条记录都能够故障自动恢复并被正确写入。
3. **实时监控与日志记录**: 为了保证整个过程透明可追溯,每一步操作及异常情况都应详尽地记录日志,这不仅方便问题排查,也为
![如何对接用友BIP接口](https://pic.qeasy.cloud/D29.png~tplv-syqr462i7n-qeasy.image)
### 调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空接口`executeBillQuery`,获取并加工盘盈单数据,以实现与其他入库单的无缝对接。
#### 接口调用配置
首先,我们需要配置接口调用的元数据。根据提供的元数据配置,我们可以看到以下关键参数:
- **API**: `executeBillQuery`
- **Method**: `POST`
- **Pagination**: 每页500条记录
- **ID Check**: `true`
- **Operation Method**: `merge`
这些参数定义了我们如何从金蝶云星空系统中请求数据,并且如何处理和合并这些数据。
#### 请求字段配置
在请求字段部分,我们需要特别注意以下字段:
```json
[
{"field":"FBillEntry_FEntryID","label":"FEntryID","type":"string","value":"FBillEntry_FEntryID"},
{"field":"FID","label":"实体主键","type":"string","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
{"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","value":"FStockOrgId.FNumber"},
{"field":"FDate","label":"日期","type":"string","value":"FDate"},
{"field":"FBillTypeID","label":"单据类型","type":"string","value":"FBillTypeID"},
{"field":"FStockerId","label":"仓管员","type":"string","value":"FStockerId"},
{"field":"FCreatorId","label":"创建人","type":"string","value":"FCreatorId"},
{"field":"FCreateDate","label":"创建日期","type":"string","value":"FCreateDate"},
{"field":"FModifierId","label":"最后修改人","type":"string","value":"FModifierId"},
{"field": "FModifyDate", "label": "最后修改日期", "type": "string", "value": "FModifyDate" },
// ...省略其他字段
]
```
这些字段定义了我们需要从金蝶云星空系统中提取的数据内容,包括单据编号、库存组织、日期等信息。
#### 分页与过滤条件
为了高效地处理大量数据,我们使用分页机制,每次请求500条记录。同时,通过过滤条件来限定查询范围,例如:
```json
{
"FilterString": "FApproveDate>='{{MINUTE_AGO_30|datetime}}' AND FStockId.F_JZJ_CheckBox=1"
}
```
这个过滤条件确保我们只获取最近30分钟内审核通过且特定仓库的盘盈单数据。
#### 数据处理与合并
在获取到原始数据后,需要进行清洗和转换。根据元数据配置中的操作方法,我们将使用`merge`方法,将分录明细合并到主表中。具体操作如下:
```json
{
"method": "merge",
"field": "FBillEntry_FEntryID",
"bodyName": "details",
"header": ["FBillNo", "FBillEntry_FEntryID"],
"body": ["FMaterialId_FNumber", "FGainQty"]
}
```
这一步骤确保每个盘盈单的明细项(如物料编码和盘盈数量)正确地关联到对应的主表记录中。
#### 实际案例操作步骤
1. **配置API请求**:在轻易云平台上,创建一个新的API请求任务,选择`POST`方法,并填写API地址为`executeBillQuery`。
2. **设置请求参数**:根据元数据配置,设置请求体中的各个字段和分页参数。
3. **执行请求并获取响应**:发送请求后,平台会返回包含盘盈单信息的数据集。
4. **数据清洗与转换**:使用预定义的操作方法,将分录明细合并到主表记录中。
5. **写入目标系统**:将处理后的数据写入目标系统,实现盘盈单与其他入库单的数据对接。
通过以上步骤,我们可以高效地从金蝶云星空系统中提取并处理盘盈单数据,为后续的数据集成奠定基础。这种全透明可视化的操作方式,不仅提升了业务透明度,还极大提高了工作效率。
![金蝶与CRM系统接口开发配置](https://pic.qeasy.cloud/S22.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台生命周期的第二步:ETL转换与写入旺店通WMSAPI接口
在数据集成过程中,ETL(提取、转换、加载)是至关重要的一环。本文将详细探讨如何使用轻易云数据集成平台,将源平台的数据进行ETL转换,并最终写入目标平台——旺店通WMSAPI接口。
#### 数据请求与清洗
在开始ETL之前,我们需要从源平台获取数据并进行初步清洗。假设我们已经完成了这一步,接下来将重点介绍如何将清洗后的数据转换为旺店通WMSAPI接口所能接受的格式。
#### 数据转换与写入
我们需要将盘盈单的数据转换为旺店通WMS的其他入库单格式,并通过API接口进行数据写入。以下是具体的元数据配置和操作步骤:
##### 元数据配置解析
```json
{
"api": "WDT_WMS_ENTRYORDER_CREATE",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo,FStockId_FNumber",
"bodyName": "details",
"bodySum": ["FGainQty"],
"header": ["FStockId_FNumber", "FBillNo"],
"body": ["FMaterialId_FNumber", "FGainQty"]
},
"request": [
{
"label": "入库单信息",
"field": "entryOrder",
"type": "object",
"children": [
{"parent": "entryOrder", "label": "入库单号", "field": "entryOrderCode", "type": "string", "value":"{FBillNo}"},
{"parent": "entryOrder", "label": "仓库编码", "field":"warehouseCode", "type":"string","value":"{FDestStockId_FNumber}"},
{"parent":"entryOrder","label":"业务类型","field":"orderType","type":"string","value":"QTRK"}
]
},
{
"label":"单据信息",
"field":"orderLines",
"type":"array",
"value":"details",
"children":[
{
"field":"orderLine",
"label":"orderLine",
"type":"object",
"parent":"orderLines",
"children":[
{"parent":"orderLines","label":"商家编码","field":"itemCode","type":"string","value":"{{details.FMaterialId_FNumber}}"},
{"parent":"orderLines","label":"应收商品数量","field":"planQty","type":"string","value":"{{details.FQty}}"},
{"parent":"orderLines","label":"入库单的行号","field":"orderLineNo","type":"string","value":"{{details.FBillEntry_FEntryID}}"},
{"parent":"orderLines","label":"库存类型","field":"inventoryType","type":"string","value":"ZP"},
{"parent":"orderLines","label":"批次","field":"batchCode","type":"string","value":
"{{details.FDestLot}}"},
{"parent":
"orderLines",
"label":
"生产日期",
"field":
"productDate",
"type":
"string",
"value":
"{{details.FProduceDate|date}}"
},
{"parent":
orderLines,
label:
过期日期,
field:
expireDate,
type:
string,
value:
{{details.FExpiryDate|date}}
}
]
}
]
}
]
}
```
##### 数据转换逻辑
1. **定义API请求参数**:
- `api`字段指定了目标API接口为`WDT_WMS_ENTRYORDER_CREATE`。
- `method`字段指定了HTTP请求方法为`POST`。
- `idCheck`字段设置为`true`,表示在执行操作前会进行ID校验。
2. **操作配置**:
- `operation`部分定义了如何处理数据,包括合并字段(`merge`方法)、合并依据(`FBillNo,FStockId_FNumber`)、以及需要处理的表头和表体字段。
3. **请求结构**:
- `request`部分定义了具体的请求结构,包括两个主要部分:入库单信息和单据信息。
4. **入库单信息**:
- `entryOrderCode`: 对应源数据中的`FBillNo`。
- `warehouseCode`: 对应源数据中的`FDestStockId_FNumber`。
- `orderType`: 固定值为“QTRK”(其他入库)。
5. **单据信息**:
- 包含一个数组,每个元素代表一行订单明细。
- 每个订单明细包含多个字段,如商家编码(对应源数据中的物料编号)、应收商品数量、行号、库存类型(固定值为“ZP”)、批次、生产日期和过期日期等。
##### 实际操作步骤
1. **提取原始数据**:从源系统中提取盘盈单的数据,包括物料编号、数量、仓库编码等信息。
2. **清洗与预处理**:对提取的数据进行必要的清洗和预处理,例如格式化日期字段,确保所有字段符合目标API要求。
3. **构建请求报文**:根据元数据配置,将清洗后的数据映射到目标API的请求结构中。使用模板语言将源字段值填充到目标字段中。
4. **发送请求**:通过HTTP POST方法,将构建好的请求报文发送到旺店通WMSAPI接口,完成数据写入操作。
通过上述步骤,我们可以高效地将源平台的数据转换并写入到旺店通WMS,实现不同系统间的数据无缝对接。这不仅提升了业务流程的自动化程度,还确保了数据的一致性和准确性。
![用友与SCM系统接口开发配置](https://pic.qeasy.cloud/T10.png~tplv-syqr462i7n-qeasy.image)