### 金蝶--直接调拨单=>聚水潭--其他入库单:数据集成实战案例分享
在系统集成项目中,确保数据准确、及时传递至关重要。本文介绍了一个实战案例,通过轻易云平台将金蝶云星空的直接调拨单数据成功对接到聚水潭的其他入库单管理模块。本次方案集成主要解决以下技术难点:
1. **高吞吐量的数据写入**:大量调拨单数据需快速、安全地被写入到金蝶云星空系统,并确保其时效性。
2. **API接口调用与分页处理**:通过调用金蝶云星空的`executeBillQuery`接口抓取实时数据,解决分页和限流问题,实现稳定的数据传输。
3. **自定义数据转换逻辑**:两套系统之间存在一定的数据格式差异,需要定制化转换规则保证兼容性和一致性。
4. **实时监控与异常处理机制**:利用集中监控和告警系统,跟踪每个集成任务的状态,对可能出现的不一致或错误情况进行及时重试和补救。
具体实施步骤如下:
首先,通过轻易云提供的可视化工具设计整个数据流,从金蝶云星空获取指定周期内的新提交直接调拨单。在这个过程中,我们分别使用`executeBillQuery` API对接提取原始业务信息。为了防止遗漏与重复,还需要实现精确控制,以便所有订单都能完整抓取。
随后,在处理来自金蝶云的数据时,我们配置了针对性的批量导出策略,以应对大规模、高频率的数据请求,同时应用自定义规则来转换为符合聚水潭需求的格式。这些包含详细字段映射关系,调整数值单位,以及日期格式规范等。
最终,将转换后的数据通过聚水潭提供的API `/open/jushuitan/otherinout/upload` 导入目标数据库。同时,为了保障整个流程顺畅运行,还设置了严格的异常检测及重试机制,并加入实时日志记录功能以备查询和审计之用。
![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/D18.png~tplv-syqr462i7n-qeasy.image)
### 调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取并加工数据。
#### 接口配置与调用
首先,我们需要配置元数据以便正确调用金蝶云星空的`executeBillQuery`接口。以下是关键的元数据配置项:
- **api**: `executeBillQuery`
- **method**: `POST`
- **number**: `FBillNo`
- **id**: `FBillEntry_FEntryID`
- **request**: 包含多个字段,如`FBillEntry_FEntryID`, `FID`, `FBillNo`, 等等。
这些字段用于定义请求参数和响应格式,确保我们能够准确地从金蝶云星空获取所需的数据。
#### 请求参数设置
在请求参数中,我们需要特别注意以下几个字段:
1. **FormId**: 表单ID,必须填写金蝶的表单ID,例如:`STK_TransferDirect`。
2. **FieldKeys**: 需查询的字段key集合,格式为字符串数组,例如:`FPOOrderEntry_FEntryId,FPurchaseOrgId.FNumber`。
3. **FilterString**: 过滤条件,用于筛选特定的数据,例如:`FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'`。
4. **Limit**: 最大行数,用于分页查询,默认值为500。
这些参数确保了我们能够高效地从源系统中提取到所需的数据,并进行后续处理。
#### 数据清洗与转换
获取到原始数据后,我们需要对其进行清洗和转换,以便适应目标系统的需求。以下是一些常见的数据清洗与转换操作:
1. **字段映射**:将源系统中的字段映射到目标系统中的相应字段。例如,将金蝶中的`FBillNo`映射到聚水潭中的订单编号。
2. **数据类型转换**:确保所有字段的数据类型一致。例如,将日期格式从字符串转换为日期对象。
3. **值替换**:根据业务需求替换某些字段的值。例如,将状态码从数字转换为对应的状态描述。
#### 实际案例
假设我们需要将金蝶云星空中的直接调拨单数据集成到聚水潭的其他入库单中。以下是具体步骤:
1. **调用接口获取数据**
```json
{
"api": "executeBillQuery",
"method": "POST",
"request": {
"FormId": "STK_TransferDirect",
"FieldKeys": [
"FBillEntry_FEntryID",
"FID",
"FBillNo",
"FDocumentStatus",
...
],
"FilterString": "FApproveDate>='2023-01-01'",
"Limit": 500
}
}
```
2. **清洗与转换数据**
```json
{
"data": [
{
"FBillEntry_FEntryID": "1001",
"FID": "2001",
"FBillNo": "DB20230101",
...
},
...
],
"transformations": [
{
"field": "FDocumentStatus",
"operation": "replace",
"valueMap": {
"A": "已审核",
...
}
},
...
]
}
```
3. **写入目标系统**
```json
{
"api": "/target-system/api/other-inbound-order",
"method": "POST",
...
}
```
通过以上步骤,我们成功地将金蝶云星空中的直接调拨单数据集成到了聚水潭的其他入库单中。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。
#### 总结
通过轻易云数据集成平台,我们能够高效地调用金蝶云星空的API接口,并对获取的数据进行清洗和转换,从而实现不同系统间的数据无缝对接。这一过程不仅简化了复杂的数据处理任务,还极大提升了业务透明度和效率。
![如何开发企业微信API接口](https://pic.qeasy.cloud/S3.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台将金蝶直接调拨单转换为聚水潭其他入库单
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将金蝶的直接调拨单转换为聚水潭API接口所能接收的其他入库单格式,并最终写入目标平台。
#### API接口配置与元数据解析
为了实现这一目标,我们需要配置聚水潭API接口`/open/jushuitan/otherinout/upload`,并根据以下元数据配置进行ETL转换:
```json
{
"api": "/open/jushuitan/otherinout/upload",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "is_confirm",
"label": "是否确认单据",
"type": "string",
"value": "_function IF({F_POKM_JSTSTOCKNUMBER} = 10816570 , 1 , 0 )"
},
{
"field": "excute_confirming",
"label": "是否审核单据",
"type": "string",
"value": "false"
},
{
"field": "wms_co_id",
"label": "仓库编号",
"type": "int",
"value": "{F_POKM_JSTSTOCKNUMBER}"
},
{
"field": "type",
"label": "出入库类型",
"type": "string",
"value": "in"
},
{
"field": "external_id",
...
```
#### 数据请求与清洗
首先,我们从金蝶系统中获取直接调拨单的数据。通过轻易云的数据请求功能,可以自动提取所需字段,如`FBillNo`、`F_POKM_JSTSTOCKNUMBER`、`F_POKM_JSTSTOCKNUMBER2`等。这些字段将用于后续的数据清洗和转换。
#### 数据转换与写入
接下来,我们需要对提取到的数据进行清洗和转换,使其符合聚水潭API接口的要求。以下是关键字段的转换逻辑:
1. **is_confirm**:通过函数判断仓库编号是否为特定值,如果是,则确认单据。
```json
{
...
{"field":"is_confirm","label":"是否确认单据","type":"string","value":"_function IF({F_POKM_JSTSTOCKNUMBER} = 10816570 , 1 , 0 )"}
...
}
```
2. **excute_confirming**:固定值为`false`,表示不审核单据。
```json
{
...
{"field":"excute_confirming","label":"是否审核单据","type":"string","value":"false"}
...
}
```
3. **wms_co_id**:仓库编号直接映射自金蝶系统中的`F_POKM_JSTSTOCKNUMBER`字段。
```json
{
...
{"field":"wms_co_id","label":"仓库编号","type":"int","value":"{F_POKM_JSTSTOCKNUMBER}"}
...
}
```
4. **external_id**:外部单号由多个字段拼接而成,确保唯一性。
```json
{
...
{"field":"external_id","label":"外部单号","type":"string","value":"R{FBillNo}{F_POKM_JSTSTOCKNUMBER}{F_POKM_JSTSTOCKNUMBER2}"}
...
}
```
5. **items**:商品明细项需要特别处理,通过遍历列表中的每个商品,将其编码和数量映射到目标平台格式。
```json
{
...
{"field":"items","label":"items","type":"array","value":"list","children":[{"field":"sku_id","label":"商品编码","type":"string","value":"{{list.FMaterialId_FNumber}}"},{"field":"qty","label":"入库数量","type":"string","value":"{{list.FQty}}"}]}
...
}
```
#### 数据写入操作
最后,通过POST方法将处理好的数据发送到聚水潭的API接口,实现数据写入。整个过程由轻易云平台全程监控,确保每一步都透明可见,并且实时反馈处理状态。
以上就是使用轻易云数据集成平台,将金蝶直接调拨单转换为聚水潭其他入库单格式并写入目标平台的详细技术实现过程。通过合理配置元数据和ETL逻辑,可以高效地完成不同系统间的数据无缝对接。
![金蝶云星空API接口配置](https://pic.qeasy.cloud/T20.png~tplv-syqr462i7n-qeasy.image)