### 吉客云数据集成到金蝶云星空:其他出库-报废出库案例
在企业信息化建设中,实现不同系统间的数据高效、安全对接始终是一大挑战。本文将分享如何通过轻易云数据集成平台,将吉客云的"其他出库-报废出库"数据无缝对接到金蝶云星空,确保每一条数据准确传递并有效利用。
## 集成背景与需求分析
某制造企业在日常经营中需要频繁处理各种物料的报废业务,这些操作产生了大量的“其他出库-报废出库”记录。这些记录最初存在于吉客云系统内,为了实现更为综合和智能化的管理,该企业决定将这些关键数据集成至其财务核算体系——金蝶云星空。这一步骤不仅有助于集中管理库存,还能提高财务处理效率、降低人为误差风险。
为了达到这一目标,他们选择使用轻易云数据集成平台,通过以下两个API接口完成整个流程:
1. **吉客云获取“其他出库-报废出库” 数据API**:`erp.storage.goodsdocout.v2`
2. **金蝶云星空写入批量数据API**:`batchSave`
## 技术要点与方案实施
### 1. 高吞吐量的数据写入能力
当涉及到大规模的数据转移时,高吞吐量成为首要考虑的问题。在本次案例中,我们首先设法优化从吉客云抓取原始数据信息,再经过必要转换后高效写入到金蝶云星空。使用轻易平台自带的分布式计算引擎,能够实现在保证性能不下降前提下大量进行读写操作。
### 2. 实时监控与日志记录
我们部署了全面的实时监控和日志记录机制,以确保每一个环节都有迹可循。一旦出现任何异常状况,可以迅速定位问题并即时响应,大幅提升故障修复速度。例如,当调用`erp.storage.goodsdocout.v2` API接口获取分页数据时,一旦遇见限流或其它网络异常,就会立刻触发告警功能。
### 3. 定制化的数据映射对接
由于吉客云与金蝶云星空之间的数据格式有所差异,需要设计定制化的数据转换逻辑。例如,不同字段名称、编号规则等都需在进入目标系统前被正确映射。借助轻易提供的可视化工具,我们制定了一系列转换策略,并进行了反复验证,最终形成高度可靠且自动运行的一站式解决方案。
此次项目还特别注重批量处理模式,以期最大程度上减小延
![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/D8.png~tplv-syqr462i7n-qeasy.image)
### 调用吉客云接口获取并加工数据的技术实现
在数据集成过程中,调用源系统接口是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台调用吉客云的`erp.storage.goodsdocout.v2`接口,获取并加工报废出库的数据。
#### 接口配置与调用
首先,我们需要配置元数据,以便正确调用吉客云的API接口。以下是元数据配置的关键部分:
```json
{
"api": "erp.storage.goodsdocout.v2",
"effect": "QUERY",
"method": "POST",
"number": "goodsdocNo",
"id": "goodsdocNo",
"idCheck": true,
"request": [
{"field": "pageIndex", "label": "分页页码", "type": "string"},
{"field": "pageSize", "label": "分页页数", "type": "string", "value": "50"},
{"field": "goodsDocNo", "label": "出库单号", "type": "string"},
{"field": "startDate", "label": "创建时间的起始时间", "type": "string",
"value":"{{LAST_SYNC_TIME|datetime}}"},
{"field": "endDate",
"label":"创建时间的结束时间","type":"string","value":"{{CURRENT_TIME|datetime}}"},
{"field":"inouttype","label":"类型","type":"string","describe":"201-销售出库 202调拨出库 203 = 盘亏出库 204-其他出库 205采购退货 206生产领料 207组装拆卸出库 208翻新出库 209报废出库 210残次品出库 211倒冲出库 212 包材出库 215维修还厂 231成本调整出库","value":"209"}
// ...其他字段省略
],
// ...其他配置省略
}
```
#### 请求参数解析
1. **分页参数**:`pageIndex` 和 `pageSize` 用于控制分页请求,确保每次请求的数据量适中。
2. **时间参数**:`startDate` 和 `endDate` 分别表示查询时间范围的起始和结束时间,使用动态变量 `{{LAST_SYNC_TIME|datetime}}` 和 `{{CURRENT_TIME|datetime}}` 来自动填充。
3. **类型参数**:`inouttype` 固定为 `209`,表示报废出库。
#### 数据请求与清洗
在发送请求后,我们会收到包含多个字段的数据响应。为了确保数据质量和一致性,需要对返回的数据进行清洗和过滤。以下是一个简单的数据清洗示例:
```python
def clean_data(response):
cleaned_data = []
for record in response['data']:
if record['quantity'] > 0:
cleaned_record = {
'goodsdocNo': record['goodsdocNo'],
'inOutDate': record['inOutDate'],
'gmtCreate': record['gmtCreate'],
'inouttype': record['inouttype'],
'warehouseCode': record['warehouseCode'],
'quantity': record['quantity']
}
cleaned_data.append(cleaned_record)
return cleaned_data
```
在这个示例中,我们仅保留了数量大于0的记录,并提取了关键字段进行后续处理。
#### 数据转换与写入
清洗后的数据需要进行格式转换,以便写入目标系统。在轻易云平台上,可以通过配置映射规则来实现这一过程。例如:
```json
{
// ...其他配置省略
"autoFillResponse": true,
// ...其他配置省略
}
```
通过设置 `autoFillResponse: true`,平台会自动将响应数据填充到预定义的目标结构中。
#### 异常处理与补偿机制
为了确保数据集成过程的可靠性,我们需要考虑异常处理和补偿机制。例如,当某次请求失败时,可以通过定时任务重新发起请求:
```json
{
// ...其他配置省略
"omissionRemedy":{
"crontab":"1 2 * * *",
// ...其他配置省略
}
}
```
该配置表示每天凌晨2点1分执行一次补偿任务,以确保遗漏的数据能够及时补充。
通过以上步骤,我们可以高效地调用吉客云接口获取并加工报废出库的数据,从而实现不同系统间的数据无缝对接。这不仅提升了业务透明度和效率,也为后续的数据分析和决策提供了坚实基础。
![如何对接用友BIP接口](https://pic.qeasy.cloud/S22.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台生命周期第二步:ETL转换与写入金蝶云星空API接口
在数据集成过程中,ETL(Extract, Transform, Load)是一个至关重要的环节。本文将深入探讨如何利用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并转为金蝶云星空API接口所能够接收的格式,最终写入目标平台。
#### 数据请求与清洗
在数据请求与清洗阶段,我们已经从源系统获取了所需的数据,并进行了初步的清洗和处理。接下来,我们需要将这些数据转换为金蝶云星空API接口所能接受的格式。
#### 数据转换与写入
为了实现这一目标,我们需要配置元数据,确保每个字段都能正确映射到金蝶云星空的相应字段。以下是具体的元数据配置示例:
```json
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "merge",
"field": "goodsDocDetailList_ownerName,inOutMonth",
"bodyName": "items",
"bodySum": ["goodsDocDetailList_quantity"],
"header": ["inOutMonth", "goodsDocDetailList_ownerName"],
"body": ["goodsDocDetailList_goodsNo", "goodsDocDetailList_quantity", "warehouseCode"]
},
"request": [
{
"field": "FJKYNo",
"label": "吉客云单号",
"type": "string",
"describe": "单据编号",
"value": "{goodsdocNo}"
},
{
"field": "FBillTypeID",
"label": "单据类型",
"type": "string",
...
```
#### 核心字段解析
1. **FJKYNo(吉客云单号)**:该字段用于存储源系统中的单据编号,通过`{goodsdocNo}`变量进行动态赋值。
2. **FBillTypeID(单据类型)**:固定值`QTCKD93_SYS`表示报废出库单。
3. **FStockOrgId(库存组织)**:通过`ConvertObjectParser`解析器,将源系统中的货主名称映射为金蝶系统中的库存组织编号。
4. **FDate(日期)**:使用`{inOutMonth}`变量动态赋值为出库日期。
5. **FDeptId(领料部门)**:固定值`BM000029`表示特定部门。
#### 明细信息配置
明细信息部分通过嵌套数组实现,每个明细项包含以下字段:
- **FMATERIALID(物料编码)**:通过解析器将物料编码转换为金蝶系统中的编码。
- **FStockStatusId(库存状态)**:固定值`KCZT01_SYS`表示正常库存状态。
- **FSTOCKID(发货仓库)**:通过解析器将仓库编码转换为金蝶系统中的仓库编号。
- **FQty(实发数量)**:直接从源系统中获取并赋值。
#### 其他请求参数
- **FormId**:业务对象表单Id,固定值`STK_MisDelivery`表示报废出库表单。
- **IsAutoSubmitAndAudit**:布尔值,设置为`true`表示自动提交并审核。
- **IsVerifyBaseDataField**:布尔值,设置为`true`表示验证基础资料有效性。
- **Operation**:执行操作,固定值`Save`表示保存操作。
- **InterationFlags**:负库存检查标志,固定值`STK_InvCheckResult`。
#### 实现流程
1. 配置元数据,确保每个字段都能正确映射到目标平台的相应字段。
2. 使用轻易云数据集成平台提供的可视化界面进行配置和调试,确保数据能够正确转换和传输。
3. 通过API接口将转换后的数据发送到金蝶云星空,实现最终的数据写入。
以上就是利用轻易云数据集成平台,将源平台数据进行ETL转换,并成功写入金蝶云星空API接口的详细技术方案。通过合理配置元数据和使用解析器,可以确保每个字段都能正确映射和传输,提高了整个数据集成过程的效率和准确性。
![数据集成平台API接口配置](https://pic.qeasy.cloud/T11.png~tplv-syqr462i7n-qeasy.image)