### 08-ToC销售退货单集成方案-P:从旺店通·旗舰奇门到金蝶云星空的数据对接
在本技术案例中,我们将深入探讨如何通过轻易云数据集成平台,实现旺店通·旗舰奇门系统的退货单数据有效、高效地集成到金蝶云星空系统。具体解决方案命名为“08-ToC销售退货单集成方案-P”。
为了确保数据不漏单且处理过程透明化,我们设计了一套高效的数据抓取与写入机制。首先,通过调用`wdt.wms.stockin.refund.querywithdetail` API接口,定时可靠地获取旺店通·旗舰奇门中的销售退货单详细信息,并进行预处理和格式转换,以适应金蝶云星空的特定要求。
在这个过程中,解决分页和限流问题是关键,这直接影响了接口数据的稳定性和吞吐量。同时,为了能够快速批量写入大量数据到金蝶云星空,我们使用了其提供的`batchSave` API接口。这不仅提高了操作效率,还确保了大规模数据传输的一致性与准确性。
此外,在实际运行中,通过集中监控系统跟踪每个任务节点的数据流动状态,一旦发生异常,则即时触发告警机制并自动进行错误重试,从而保障整个数据链路的稳定运行。最重要的是,自定义的数据映射规则使得我们能够精准控制各类业务需求下的数据结构调整,有效减少人工干预,提高整体操作灵活度。
综上所述,本篇文章将聚焦于这一复杂但极具价值的数据对接案例,展示其全生命周期管理、实时监控及智能优化等诸多方面,希望能为同类需求提供实用指南和技术参考。在下一部分内容中,我们将详细阐述具体实现步骤与关键代码示例。
![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/D24.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台调用旺店通·旗舰奇门接口获取销售退货单数据
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台配置和调用旺店通·旗舰奇门接口`wdt.wms.stockin.refund.querywithdetail`,以获取并加工销售退货单数据。
#### 接口概述
接口`wdt.wms.stockin.refund.querywithdetail`用于查询销售退货单的详细信息。该接口采用POST请求方式,支持分页查询,并允许根据多种业务参数进行过滤。
#### 请求参数配置
在轻易云数据集成平台中,我们需要配置请求参数,以便正确调用该接口。以下是元数据配置的详细说明:
```json
{
"api": "wdt.wms.stockin.refund.querywithdetail",
"method": "POST",
"number": "order_no",
"id": "order_no",
"idCheck": true,
"request": [
{
"field": "pager",
"label": "分页参数",
"type": "object",
"children": [
{
"field": "page_size",
"label": "分页大小",
"type": "string",
"value": "50",
"parent": "pager"
},
{
"field": "page_no",
"label": "页号",
"type": "string",
"value": "1",
"parent": "pager"
}
]
},
{
"field": "params",
"label": "业务参数",
"type": "object",
...
}
],
...
}
```
##### 分页参数
- `page_size`: 每页返回的数据条数,默认设置为50。
- `page_no`: 当前页码,从1开始。
##### 业务参数
- `start_time`: 查询的开始时间,通常设置为上次同步时间。
- `end_time`: 查询的结束时间,通常设置为当前时间。
- `status`: 入库单状态,此处我们只查询已完成状态(80)的入库单。
- `time_type`: 时间条件类型,不传默认为0(修改时间)。
- `warehouse_no`: 仓库编码,用于指定查询哪个仓库的数据。
- `shop_nos`: 店铺编号,可以传多个店铺编号,用英文逗号分隔。
- `stockin_no`: 入库单号,用于精确查询特定入库单。
#### 数据请求与清洗
在配置好请求参数后,我们可以通过轻易云平台发起API调用。以下是一个示例请求体:
```json
{
"pager": {
"page_size": 50,
"page_no": 1
},
...
}
```
当API返回数据后,需要对返回的数据进行清洗和转换,以便后续处理。清洗过程包括但不限于:
1. **字段映射**:将API返回的数据字段映射到目标系统所需的字段。
2. **数据过滤**:根据业务需求过滤掉不需要的数据。例如,只保留状态为已完成(80)的记录。
3. **格式转换**:将日期、数值等字段转换为目标系统所需的格式。
#### 数据转换与写入
经过清洗后的数据,需要进一步转换并写入目标系统。在轻易云平台中,可以通过配置相应的转换规则和写入操作来实现这一过程。例如,将清洗后的JSON数据转换为SQL插入语句,并写入数据库。
#### 条件过滤
在某些情况下,我们需要对请求结果进行条件过滤。例如,根据店铺平台ID和店铺编号进行过滤:
```json
"condition":[
[{"field":"shop_platform_id","logic":"neqv2","value":"127"}],
[{"field":"shop_no","logic":"notlike","value":"eca8a82"}]
]
```
上述条件表示排除平台ID为127且店铺编号包含“eca8a82”的记录。
通过以上步骤,我们可以高效地调用旺店通·旗舰奇门接口获取销售退货单数据,并进行必要的数据清洗和转换,为后续的数据处理奠定基础。
![如何对接用友BIP接口](https://pic.qeasy.cloud/S8.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台进行金蝶云星空API接口的ETL转换与写入
在数据集成生命周期的第二步,我们将已经集成的源平台数据进行ETL(提取、转换、加载)转换,最终转为目标平台金蝶云星空API接口所能够接收的格式,并写入目标平台。本文将详细探讨如何使用轻易云数据集成平台配置元数据,实现这一过程。
#### API接口配置
我们需要调用金蝶云星空的`batchSave` API接口,该接口通过POST方法接收数据。根据元数据配置,我们需要确保以下几个关键字段:
- `FormId`: 业务对象表单ID,必须填写金蝶的表单ID,如`KD_DSSAL_RTNSTOCK`。
- `Operation`: 执行的操作,通常为`Save`。
- `IsAutoSubmitAndAudit`: 是否自动提交并审核,布尔值,通常为`true`。
- `IsVerifyBaseDataField`: 是否验证所有基础资料有效性,布尔值,默认`false`。
- `SubSystemId`: 系统模块,默认仓库模块为`21`。
#### 数据字段映射与转换
在进行ETL转换时,需要将源平台的数据字段映射到金蝶云星空API所需的字段格式。以下是主要字段及其配置细节:
1. **单据类型(FBillTypeID)**:
- 类型:字符串
- 值:固定值 `DSXSTHD07`
- 解析器:ConvertObjectParser,参数 `FNumber`
2. **单据编号(FBillNo)**:
- 类型:字符串
- 值:从源数据中获取 `{order_no}`
3. **库存组织(FStockOrgId)**:
- 类型:字符串
- 值:固定值 `106`
- 解析器:ConvertObjectParser,参数 `FNumber`
4. **销售组织(FSaleOrgId)**:
- 类型:字符串
- 值:通过查找集合 `_findCollection find zip from ec445d8c-9d91-3845-9175-79fb0588e1b3 where shop_no={shop_no}`
- 解析器:ConvertObjectParser,参数 `FNumber`
5. **日期(FDate)**:
- 类型:字符串
- 值:从源数据中获取 `{modified}`
6. **退货客户(FRetcustId)**:
- 类型:字符串
- 值:从源数据中获取 `{shop_no}`
- 解析器:ConvertObjectParser,参数 `FNumber`
7. **明细信息(FEntity)**:
包含多个子字段,如物料编码、实退数量、含税单价等。每个子字段都需要进行相应的映射和转换。例如:
- **物料编码(FMaterialId)**:
- 类型:字符串
- 值:从明细列表中获取 `{{details_list.goods_no}}`
- 解析器:ConvertObjectParser,参数 `FNumber`
- **实退数量(FRealQty)**:
- 类型:字符串
- 值:从明细列表中获取 `{{details_list.num}}`
- **含税单价(FTaxPrice)**:
- 类型:字符串
- 值:从明细列表中获取 `{{details_list.refund_order_detail_list.0.price}}`
8. **财务信息(SubHeadEntity)**:
包含结算组织和结算方式等子字段。例如:
- **结算组织(FSettleOrgId)**:
- 类型:字符串
- 值:通过查找集合 `_findCollection find zip from ec445d8c-9d91-3845-9175-79fb0588e1b3 where shop_no={shop_no}`
- 解析器:ConvertObjectParser,参数 `FNumber`
#### 请求示例
以下是一个完整请求示例:
```json
{
"FormId": "KD_DSSAL_RTNSTOCK",
"Operation": "Save",
"IsAutoSubmitAndAudit": true,
"IsVerifyBaseDataField": false,
"SubSystemId": "21",
"Model": {
"FBillTypeID": {"FNumber": "DSXSTHD07"},
"FBillNo": "{order_no}",
"FStockOrgId": {"FNumber": "106"},
"FSaleOrgId": {"FNumber": "_findCollection find zip from ec445d8c-9d91-3845-9175-79fb0588e1b3 where shop_no={shop_no}"},
"FDate": "{modified}",
...
"SubHeadEntity": {
...
"FSettleOrgId": {"FNumber": "_findCollection find zip from ec445d8c-9d91-3845-9175-79fb0588e1b3 where shop_no={shop_no}"}
}
}
}
```
#### 实施步骤
1. **提取源数据**: 从源系统提取销售退货单相关的数据。
2. **清洗与预处理**: 对提取的数据进行必要的清洗和预处理,包括格式化日期、校验数值等。
3. **字段映射与转换**: 根据元数据配置,将源数据字段映射并转换为目标系统所需格式。
4. **构建请求体**: 按照金蝶云星空API要求构建请求体,包括设置业务对象表单ID、操作类型等元数据信息。
5. **发送请求并处理响应**: 将构建好的请求体通过POST方法发送至金蝶云星空API,并处理响应结果。
以上是使用轻易云数据集成平台进行金蝶云星空API接口ETL转换与写入的详细技术案例。通过精确配置元数据和高效执行ETL流程,可以确保不同系统间的数据无缝对接,实现业务流程的自动化和高效化。
![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/T3.png~tplv-syqr462i7n-qeasy.image)