轻易云数据集成平台ETL转换:金蝶退料申请单到旺店通采购退料单
### 金蝶退料申请单对接旺店通采购退料单:高效数据集成方案解析
在实际业务场景中,企业常常需要将多个系统的数据进行无缝对接,以确保各项运营管理能够高效、准确地进行。本文将详细探讨一个典型案例:如何通过轻易云数据集成平台,实现金蝶云星空的退料申请单数据与旺店通·企业奇门采购退料单的有效互联。
#### 1. 数据抓取及API调用
首先,我们需要从金蝶云星空中获取最新的退料申请单数据。这一过程主要通过调用金蝶提供的`executeBillQuery` API接口来实现,该接口支持复杂条件下的数据查询,并能处理分页和限流问题,从而保证每次请求都能稳定获取预期范围内的数据,避免漏单现象。在实施过程中,需要特别设置可靠性机制来定时抓取相关接口数据,确保实时性和完整性。
```json
{
"apiName": "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
"parameters": {
// API参数按照需求配置
}
}
```
#### 2. 数据快速写入与异常处理
获取到所需的原始数据后,需要将其批量写入到目标系统——旺店通·企业奇门。对应操作采用了`wdt.purchase.return.push` API,通过其高性能、多并发能力,可以实现大量数据的迅速导入。不仅如此,为了保障整个推送过程中的安全可靠,还设计了完善的异常处理机制和错误重试策略。当遇到网络故障或其他不可控因素导致的数据传输失败时,这一机制可以自动检测并重新尝试提交未成功的数据包。
```json
{
"apiName": "wdtPurchaseReturnPush",
"data": {
// 构造适配后的推送格式
}
}
```
#### 3. 数据格式转换与映射
由于两个系统间使用的不尽相同的数据结构,在真正完成对接之前,必须首先解决二者之间存在的数据差异问题。针对这一点,我们进行了详细且精确的数据映射,将金蝶云星空提供的信息转换为符合旺店通要求格式的一致输入。同时,根据特殊业务规则,自定义了一些字段映射逻辑,以确保所有关键信息均能够准确传达,而不至于丢失或误读。
![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/D29.png~tplv-syqr462i7n-qeasy.image)
### 调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,以获取退料申请单的数据,并进行初步加工。
#### 接口配置与调用
首先,我们需要配置接口的元数据,以便正确地调用金蝶云星空的API。以下是元数据配置的关键部分:
```json
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "FEntity_FEntryID",
"pagination": {
"pageSize": 100
},
"idCheck": true,
"request": [
{"field":"FEntity_FEntryID","label":"FEntity_FEntryID","type":"string","value":"FEntity_FEntryID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
{"field":"FID","label":"FID","type":"string","value":"FID"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
{"field":"FBillTypeID_Fnumber","label":"单据类型","type":"string","value":"FBillTypeID.Fnumber"},
{"field":"FDate","label":"申请日期","type":"string","value":"FDate"},
{"field":"FPURCHASEORGID_Fnumber","label":"采购组织","type":"string","value":"FPURCHASEORGID.Fnumber"},
{"field":"FRMTYPE","label":"退料类型","type":"string","value":"FRMTYPE"},
{"field":"FAPPORGID_Fnumber","label":"申请组织","type":"string","value":"FAPPORGID.Fnumber"},
{"field":"FAPPDEPTID_Fnumber","label":"申请部门","type":"string","value":"FAPPDEPTID.Fnumber"},
{"field":"FRMLOC","label":"退料地点","type":"string","value":"FRMLOC"},
{"field":"FSUPPLIERID_Fnumber","label":"供应商","type":"string","value":""},
...
],
"otherRequest": [
{"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"},
{"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
{"field": "TopRowCount", "label": "返回总行数", "type": "int", "describe": ""},
{"field": "FilterString",
...
```
#### 请求参数解析
在请求参数中,`FieldKeys`字段定义了我们需要查询的字段集合,这些字段将决定我们从金蝶系统中提取哪些具体信息。以下是部分关键字段:
- `FBillNo`: 单据编号
- `FID`: FID
- `FDocumentStatus`: 单据状态
- `FPURCHASEORGID_Fnumber`: 采购组织
- `FRMTYPE`: 退料类型
- `FSUPPLIERID_Fnumber`: 供应商
这些字段将帮助我们准确地获取所需的数据。
#### 数据过滤与分页
为了优化查询效率,我们可以使用过滤条件和分页参数。过滤条件可以根据业务需求进行定制,例如:
```json
{
...
{
"field": "FilterString",
...
// 示例:仅查询特定供应商且审核日期在最近同步时间之后的数据
// FPURCHASEORGID.Fnumber in ( '7000','3000')
// FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'
...
}
}
```
分页参数则确保我们能够分批次获取大量数据,避免一次性请求过多导致性能问题:
```json
{
...
{
// 每页大小为100条记录
// 开始行索引为0(第一页)
...
}
}
```
#### 数据处理与转换
一旦成功获取到数据,我们需要对其进行初步处理和转换,以便后续写入目标系统。在轻易云平台上,可以通过可视化操作界面设置各种转换规则。例如:
1. **字段映射**:将源系统字段映射到目标系统对应字段。
2. **数据清洗**:去除无效或重复的数据,确保数据质量。
3. **格式转换**:根据目标系统要求调整数据格式,如日期格式、数值精度等。
#### 实际案例
假设我们需要将金蝶退料申请单的数据集成到旺店通采购退料单中,以下是一个简化的实际案例步骤:
1. **调用接口**:
```json
POST /executeBillQuery HTTP/1.1
Host: api.kingdee.com
Content-Type: application/json
{
...
// 请求体包含必要的过滤条件和分页参数
...
}
```
2. **接收响应并处理**:
```json
{
...
// 响应体包含所请求的数据记录集合
...
}
```
3. **数据转换与写入**:
- 将`FBillNo`映射到旺店通中的订单编号。
- 将`FSUPPLIERID_Fnumber`映射到供应商编码。
- 根据业务逻辑处理其他字段,如数量、金额等。
通过以上步骤,我们能够高效地从金蝶云星空获取所需数据,并进行必要的加工处理,为后续的数据写入和业务应用打下坚实基础。
![金蝶与外部系统打通接口](https://pic.qeasy.cloud/S10.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台ETL转换:金蝶退料申请单到旺店通采购退料单
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,使其符合目标平台的格式要求。本案例将展示如何将金蝶退料申请单的数据转化为旺店通·企业奇门API接口所能接收的采购退料单格式,并最终写入目标平台。
#### 元数据配置解析
我们需要将金蝶退料申请单的数据通过ETL过程转换为旺店通·企业奇门API接口 `wdt.purchase.return.push` 所需的格式。以下是元数据配置的详细解析:
- **API接口**: `wdt.purchase.return.push`
- **请求方法**: `POST`
- **ID检查**: `true`
- **操作配置**:
- **合并方法**: `merge`
- **字段**: `FBillNo, FStockId_Fnumber, FSUPPLIERID_Fnumber`
- **明细列表节点名称**: `details_list`
- **明细合计字段**: `FMRAPPQTY`
- **表头字段**:
- `FBillNo` (外部单号)
- `FStockId_Fnumber` (出库仓库编号)
- `FSUPPLIERID_Fnumber` (供应商编号)
- `FRemarks` (备注)
- **表体字段**:
- `FMATERIALID_Fnumber` (商家编码)
- `FMRAPPQTY` (退货数量)
- `FAPPROVEPRICE_F` (税后单价)
- `FNOTE_M` (备注)
- `FPRICEQTY_F` (数量)
- `FPRICE_F` (单价)
- `FEntryTaxRate` (税率)
- `FDISCOUNT_F` (折扣)
#### 请求参数配置
根据元数据配置,我们需要构建如下请求参数:
1. **供应商编号** (`provider_no`)
```json
{
"field": "provider_no",
"label": "供应商编号",
"type": "string",
"value": "{FSUPPLIERID_Fnumber}"
}
```
2. **外部单号** (`outer_no`)
```json
{
"field": "outer_no",
"label": "外部单号",
"type": "string",
"value": "{FBillNo}"
}
```
3. **传入ERP采购单号** (`is_use_outer_no`)
```json
{
"field": "is_use_outer_no",
"label": "传入ERP采购单号",
"type": "string",
"value": "1"
}
```
4. **是否审核** (`is_check`)
```json
{
"field": "is_check",
"label": "是否审核",
"type": "string",
"value": "1"
}
```
5. **出库仓库编号** (`warehouse_no`)
```json
{
"field": "warehouse_no",
"label": "出库仓库编号",
"type": "string",
"value": "{FStockId_Fnumber}"
}
```
6. **备注** (`remark`)
```json
{
"field": "remark",
"label": "备注",
"type": "string",
*"value":"{FRemarks}"
}
```
7. **明细列表节点** (`detail_list`)
```json
{
field: 'detail_list',
label: '明细列表节点',
type: 'array',
value: 'details_list',
children: [
{
field: 'spec_no',
label: '商家编码',
type: 'string',
value: '{{details_list.FMATERIALID_Fnumber}}'
},
{
field: 'num',
label: '退货数量',
type: 'string',
value: '{{details_list.FPRICEQTY_F}}'
},
{
field: 'price',
label: '单价',
type: 'string',
value: '{{details_list.FPRICE_F}}'
},
{
field: 'discount',
label: '折扣',
type:'string',
value:'1'
},
{
field:'detail_remark',
label:'备注',
type:'string',
value:'{{details_list.FNOTE_M}}'
},
{
field:'tax_price',
label:'税后单价',
type:'string',
value:'{{details_list.FAPPROVEPRICE_F}}'
},
{
field:'tax',
label:'税率',
type:'string',
value:'{{details_list.FEntryTaxRate}}'
}
]
}
```
#### 数据转换与写入
在上述配置完成后,我们可以使用轻易云数据集成平台提供的可视化界面,执行以下步骤:
1. 提取金蝶退料申请单的数据。
2. 根据元数据配置,将提取的数据字段映射到旺店通·企业奇门API接口所需的字段。
3. 构建请求体,包含表头和表体信息。
4. 调用API接口,将转换后的数据发送至旺店通·企业奇门系统。
通过这些步骤,我们实现了从金蝶系统到旺店通系统的数据无缝对接,确保了数据的一致性和准确性。
![用友与WMS系统接口开发配置](https://pic.qeasy.cloud/T11.png~tplv-syqr462i7n-qeasy.image)