二期-旺店通跨境其他入库单&星空其他入库单---11 案例分享
在系统集成项目中,快速实现数据的无缝对接是业务流程优化的一大关键。本案例详细讲解如何将旺店通·跨境版的数据高效、准确地集成到金蝶云星空,实现两大系统间的协同运作。
一、确保数据完整性的关键:API 调用设置及分页与限流处理
为了确保所有需要的数据不漏单,我们首先要通过调用旺店通·跨境版提供的接口 /api/openservices/stock/v1/getStockInOrderDetails
来获取库存入库单信息。此接口支持分页查询,通过合理设置分页参数,可以有效解决限流问题并确保完整性。例如,当我们每次请求200条记录时,我们要不断调整起始查询位置直到全部数据拉取完成。
def fetch_wangdiantong_data(api_url, headers, start_page=1):
data_collected = []
while True:
response = requests.get(api_url, params={'page': start_page}, headers=headers)
if response.status_code != 200 or not response.json()['data']:
break
data_collected.extend(response.json()['data'])
start_page += 1
return data_collected
二、大量数据快速写入金蝶云星空:批量操作和错误重试机制
从旺店通·跨境版获取到大量库存入库单后,为提升效率,我们可以使用金蝶云星空提供的 batchSave
接口进行批量写入。在实际操作中,需要注意的是,在网络波动或服务故障情况下如何可靠地进行错误重试,以保障数据一致性和成功率。
def batch_save_to_kingdee(data_batches):
for batch in data_batches:
try:
response = requests.post('https://kingdee.api.url/batchSave', json=batch)
if response.status_code != 200:
log_error(response.content) # 持久化存储便于追踪失败原因,并手动或自动重试。
continue
except Exception as e:
log_error(str(e)) # 网络异常等情况导致请求失败,也需捕获日志以便后续诊断。
三、定制化标准映射和实时监控:保证过程透明与可控
由于两个系统的数据格式可能存在差异,因此我们需要针对特定字段做定制化映射。同时引入实时监控与日志记录,使得整个过程清晰透明。当出现异常情况时,可以通过分析详细日志迅速定位并解决问题,从而避免业务停滞。
这里展示一个简单的映射函数示例:
def map
![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/D27.png~tplv-syqr462i7n-qeasy.image)
### 调用旺店通·跨境版接口获取并加工数据的技术案例
在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·跨境版的接口`/api/openservices/stock/v1/getStockInOrderDetails`来获取并加工数据。
#### 接口调用配置
该接口主要用于查询入库单详情。以下是元数据配置中的关键字段和参数:
- **请求方法**:POST
- **API路径**:`/api/openservices/stock/v1/getStockInOrderDetails`
- **请求参数**:
- `stockin_no_list`:入库单号列表(字符串类型)
- `order_status`:入库单状态,固定值为"80"(已完成)
- `src_order_type`:业务类型,固定值为"6"(其他入库)
- `spec_no`:SKU编码(字符串类型)
- `start_time`:起始时间,动态值为上次同步时间
- `end_time`:结束时间,动态值为当前时间
- `status`:时间状态,固定值为"1"(按创建时间)
此外,还有分页参数:
- `pageNo`:当前页码,初始值为1
- `pageSize`:分页大小,根据需求设置
#### 数据请求与清洗
在实际操作中,我们首先需要构建一个有效的请求体。以下是一个示例请求体:
```json
{
"stockin_no_list": ["123456"],
"order_status": "80",
"src_order_type": "6",
"spec_no": "",
"start_time": "{{LAST_SYNC_TIME|datetime}}",
"end_time": "{{CURRENT_TIME|datetime}}",
"status": "1",
"pageNo": "_function {PAGINATION_START_PAGE}+1",
"pageSize": "{PAGINATION_PAGE_SIZE}"
}
在这个请求体中,我们使用了动态变量来填充起始时间和结束时间,以确保每次请求的数据都是最新的。
数据转换与写入
一旦我们成功获取到数据,需要对其进行清洗和转换,以便后续处理。轻易云平台提供了自动填充响应的功能,这意味着我们可以直接将响应的数据映射到目标系统所需的格式。
例如,假设我们获取到的响应数据如下:
{
"data": [
{
"stockin_no": "123456",
"order_status": "80",
"src_order_type": "6",
"spec_no": "SKU12345",
"create_time": "2023-10-01T12:00:00Z"
}
],
"pagination": {
"total_count": 100,
"page_size": 10,
"current_page": 1
}
}
我们可以通过轻易云平台将这些字段映射到目标系统所需的字段。例如,将stockin_no
映射到目标系统中的入库单号,将create_time
映射到创建时间等。
实时监控与错误处理
在整个过程中,实时监控和错误处理至关重要。轻易云平台提供了详细的日志记录和错误报告功能,可以帮助我们及时发现并解决问题。例如,如果某个请求失败,我们可以通过日志查看具体的错误信息,并进行相应的调整。
总结
通过上述步骤,我们可以高效地调用旺店通·跨境版接口获取入库单详情,并对数据进行清洗和转换。这不仅提高了数据处理的效率,还确保了数据的一致性和准确性。在实际操作中,根据具体需求调整配置参数,可以实现更灵活的数据集成方案。
利用轻易云数据集成平台实现金蝶云星空API接口的数据ETL转换
在数据集成的生命周期中,第二步至关重要,即将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方法。
1. API接口配置
在进行数据转换之前,首先需要配置好金蝶云星空的API接口。本文使用的是batchSave
接口,该接口支持批量保存操作。以下是该接口的主要配置项:
- API名称:
batchSave
- 请求方法:
POST
- 是否检查ID:
true
- 业务对象表单ID:
STK_MISCELLANEOUS
- 提交并审核:
true
2. 请求参数配置
请求参数是API调用的核心部分,需要根据金蝶云星空的要求进行精确配置。以下是关键字段及其配置说明:
-
单据编号 (
FBillNo
)- 类型:字符串
- 来源:
{stockinNo}
-
单据类型 (
FBillTypeID
)- 类型:字符串
- 固定值:
QTRKD01_SYS
- 解析器:
ConvertObjectParser
,参数为FNumber
-
库存组织 (
FStockOrgId
)- 类型:字符串
- 来源:
{warehouseNo}
- 映射目标:
64e841cc245ee840e93c54dc
-
库存方向 (
FStockDirect
)- 类型:字符串
- 固定值:
GENERAL
-
日期 (
FDate
)- 类型:字符串
- 来源:
{checkTime}
-
货主类型 (
FOwnerTypeIdHead
)- 类型:字符串
- 固定值:
BD_OwnerOrg
-
货主 (
FOwnerIdHead
)- 类型:字符串
- 来源:
{warehouseNo}
- 映射目标:
64e841cc245ee840e93c54dc
-
部门 (
FDEPTID
)- 类型:字符串
- 固定值:
BM000002
3. 明细信息配置
明细信息是整个请求体中最复杂的一部分,需要逐条配置每个字段。以下是主要字段及其配置说明:
-
物料编码 (
FMATERIALID
)- 类型:字符串
- 来源:
{{stockInOrderDetailsVOList.specNo}}
-
收货仓库 (
FSTOCKID
)- 类型:字符串
- 来源:
{warehouseNo}
-
实收数量 (
FQty
)- 类型:字符串
- 来源:
{{stockInOrderDetailsVOList.num}}
-
旺店通成本价 (
FPrice
)- 类型:字符串
- 来源:
{{stockInOrderDetailsVOList.costPrice}}
-
含税单价 (
F_ZMKJ_Price
)- 类型:字符串
- 来源:
{{stockInOrderDetailsVOList.costPrice}}
4. 操作设置
为了确保数据能够正确写入金蝶云星空,还需要进行一些操作设置:
- 验证基础资料有效性: 设置为
true
- 执行操作: 设置为
Save
这些设置确保了在数据写入前会对基础资料进行验证,并且在数据写入后会自动提交并审核。
实际案例应用
在实际应用中,我们通常会从源系统(如旺店通跨境其他入库单)提取数据,然后通过轻易云数据集成平台进行清洗和转换,最终调用上述配置好的API,将数据写入到金蝶云星空系统中。
例如,一个典型的JSON请求体可能如下所示:
{
"FormId": "STK_MISCELLANEOUS",
"IsVerifyBaseDataField": true,
"Operation": "Save",
"IsAutoSubmitAndAudit": true,
"Model": {
"FBillNo": "20231001",
"FBillTypeID": {"FNumber": "QTRKD01_SYS"},
"FStockOrgId": {"FNumber": "ORG001"},
...
"FEntity": [
{
"FMATERIALID": {"FNumber": "MAT001"},
...
}
]
}
}
通过这种方式,我们可以高效地将源系统的数据转换并加载到目标系统中,实现不同系统间的数据无缝对接。