### 案例分享:畅捷通T+数据集成到畅捷通T+
在系统集成工作中,数据的精准、快速与可靠传输始终是关键环节。本文将重点介绍使用轻易云数据平台实现畅捷通T+之间的数据对接,通过调用其它入库单审核接口,高效完成从获取到写入的数据交换过程。
#### 调用接口概述
我们将主要依赖两个API接口:
1. 获取数据的API:/tplus/api/v2/OtherReceiveOpenApi/FindVoucherList
2. 写入数据的API:/tplus/api/v2/OtherReceiveOpenApi/Audit
通过这两个接口,实现从一个畅捷通T+系统(以下简称源系统)抓取其他入库单据,并将其审核后写入另一个畅捷通T+系统(以下简称目标系统)。
#### 实现步骤分析
**确保不漏单**
为保证过程中无遗漏,我们需要定时可靠地抓取源系统的接口数据。使用调度任务周期性调用`FindVoucherList` API,结合时间戳或流水号等方式确保所有新增和待处理单据均被捕获。
**批量高效写入**
为提高效率,可以采用批量操作,将抓取到的大量单据一次性发送至目标系统进行审核处理。通过调整合适的批次大小以及并发请求数量,平衡性能与负载。
**分页与限流机制**
考虑到API本身可能有分页和限流限制,需要在请求时管理好每页记录数及频率。在首次调用时关注返回结果中的分页信息,多次循环调用直到全部拉取完毕。同时,对HTTP状态码及响应中的错误信息做出相应重试机制设计,提高稳定性。
**异步监控与日志记录**
整个流程运行中需实现实时监控与详细日志记录,在出现异常情况时可以迅速回溯原因并重试。例如,当审核提交失败后可根据错误类型决定是否立即重试或延迟再尝,同时保存相关上下文供人工排查。
**处理格式差异化**
尽管两者都是同一平台,但不同业务场景下字段要求可能不完全一致。因此在对接前需进行必要的数据映射和转换,使得即使字段名称或格式有所区别,也可以顺利兼容转化,实现透明且无缝的数据交换过程。
通过这些细致且成熟的方法,本案例能够有效解决实际业务需求中的各种挑战,为企业提供了一条稳妥、高效且灵活的数据对接路径。
![电商OMS与WMS系统接口开发配置](https://pic.qeasy.cloud/D4.png~tplv-syqr462i7n-qeasy.image)
### 调用源系统畅捷通T+接口/tplus/api/v2/OtherReceiveOpenApi/FindVoucherList获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用畅捷通T+接口`/tplus/api/v2/OtherReceiveOpenApi/FindVoucherList`来获取并加工数据。
#### 接口概述
接口`/tplus/api/v2/OtherReceiveOpenApi/FindVoucherList`用于查询其他入库单的列表信息。该接口采用POST方法,返回指定条件下的入库单信息。元数据配置如下:
```json
{
"api": "/tplus/api/v2/OtherReceiveOpenApi/FindVoucherList",
"effect": "QUERY",
"method": "POST",
"number": "Code",
"id": "Code",
"name": "Code",
"idCheck": true,
"request": [
{"field":"selectFields","label":"查询字段","type":"string","describe":"部门编码","value":"VoucherCode"},
{"field":"pageIndex","label":"pageIndex","type":"string","describe":"部门名称"},
{"field":"pageSize","label":"pageSize","type":"string","describe":"指定返回字段","value":"10"},
{"field":"paramDic_1","label":"paramDic参数","type":"object","describe":"上级部门","children":[
{"field":"key","label":"key","type":"string","describe":"上级部门编码","value":"RDRecord.VoucherDate"},
{"field":"value","label":"value","type":"string","describe":"上级部门名称","value":"{{DAYS_AGO_3|datetime}},{{CURRENT_TIME|date}}"}
]},
{"field":"paramDic_2","label":"paramDic参数","type":"object","describe":"负责人","children":[
{"field":"key","label":"key","type":"string","describe":"负责人编码","value":"RDRecord.BusiType.Code"},
{"field":"value","label":"value","type":"string","describe":"负责人名称","value":"66,66"}
]},
{"field":"paramDic_3","label":"paramDic_3参数", "type": "object", "children":[
{"field": "key", "label": "key", "type": "string", "value": "RDRecord.VoucherState.Code"},
{"field": "value", "label": "value", "type": "string", "value": "00,00"}
]}
],
"otherRequest":[
{"field": "detailkey1", "label": "detailkey1", "type": "string", "describe": "detailkey1", value: “VoucherCode”},
{"field”: “detailkey2”, “label”: “detailkey2”, “type”: “string”, “describe”: “detailkey2”, value: “1”},
{“field”: “otherapi”, “label”: “otherapi”, “type”: “string”, “describe”: “otherapi”, value: “/tplus/api/v2/OtherReceiveOpenApi/GetVoucherDTO”},
{“field”: “detailkey”, “label”: “detailkey”, type: string, describe: detailkey, value: data}
],
autoFillResponse: true
}
```
#### 请求参数详解
- **selectFields**:指定查询字段,这里设置为"VoucherCode"。
- **pageIndex**:分页索引,用于控制分页查询。
- **pageSize**:每页返回的数据条数,这里设置为10。
- **paramDic_1**:包含两个子字段:
- **key**:查询条件的键,这里设置为"RDRecord.VoucherDate"。
- **value**:查询条件的值,使用动态变量表示时间范围,如"{{DAYS_AGO_3|datetime}},{{CURRENT_TIME|date}}"。
- **paramDic_2**:包含两个子字段:
- **key**:查询条件的键,这里设置为"RDRecord.BusiType.Code"。
- **value**:查询条件的值,这里设置为"66,66"。
- **paramDic_3**:包含两个子字段:
- **key**:查询条件的键,这里设置为"RDRecord.VoucherState.Code"。
- **value**:查询条件的值,这里设置为"00,00"。
#### 数据请求与清洗
在轻易云平台中,通过配置上述元数据,可以实现对畅捷通T+系统中其他入库单信息的高效请求和清洗。具体步骤如下:
1. **配置请求参数**:根据业务需求,在平台界面中填写或选择相应的请求参数,如分页索引、每页条数等。
2. **发送请求**:通过POST方法向接口发送请求,携带配置好的参数。
3. **接收响应并清洗数据**:
- 平台自动解析响应结果,根据预设规则进行数据清洗,如去除无效字段、格式化日期等。
#### 数据转换与写入
在完成数据请求与清洗后,下一步是将清洗后的数据进行转换,并写入目标系统。这一步通常包括以下操作:
1. **数据映射**:将源系统的数据字段映射到目标系统对应的字段。
2. **格式转换**:根据目标系统要求,对数据格式进行转换,如日期格式、数值精度等。
3. **写入操作**:通过API或数据库连接,将转换后的数据写入目标系统。
通过上述步骤,可以实现从畅捷通T+系统到目标系统的数据无缝对接,提高业务处理效率和准确性。在实际操作中,还可以结合轻易云平台提供的实时监控功能,确保每个环节都透明可控。
![电商OMS与WMS系统接口开发配置](https://pic.qeasy.cloud/S6.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台将源数据转换并写入畅捷通T+API接口
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台所能够接收的格式。本文将深入探讨如何通过轻易云数据集成平台,将源数据转换为畅捷通T+API接口所能接收的格式,并最终写入目标平台。
#### 元数据配置解析
在本案例中,我们需要调用畅捷通T+系统的“其他入库单审核”接口。以下是元数据配置的详细信息:
```json
{
"api": "/tplus/api/v2/OtherReceiveOpenApi/Audit",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "ExternalCode",
"label": "ExternalCode",
"type": "string",
"value": "{ExternalCode}"
}
],
"otherRequest": [
{
"field": "dataKey",
"label": "dataKey",
"type": "string",
"describe": "dataKey",
"value": "param"
}
]
}
```
#### 接口解析与请求构建
1. **API路径与方法**:
- API路径:`/tplus/api/v2/OtherReceiveOpenApi/Audit`
- 请求方法:`POST`
2. **请求参数**:
- `ExternalCode`:这是一个字符串类型字段,表示外部系统的单据编号。在请求中,这个字段需要从源数据中提取并映射到目标平台。
- `dataKey`:这是一个额外的请求参数,用于描述特定的数据键值。在本例中,它被固定设置为`"param"`。
#### 数据转换与映射
在轻易云数据集成平台上,我们需要进行以下步骤来完成ETL过程:
1. **提取源数据**:
从源系统中提取包含必要字段(如`ExternalCode`)的数据。
2. **数据清洗**:
确保提取的数据符合目标平台要求,例如去除无效字符、处理空值等。
3. **字段映射**:
将清洗后的数据字段映射到目标API所需的字段。例如,将源系统中的某个字段映射为`ExternalCode`。
4. **构建请求体**:
根据元数据配置,构建适合POST请求的JSON对象。如下所示:
```json
{
"ExternalCode": "<source_external_code>",
"dataKey": "param"
}
```
其中,`<source_external_code>`是从源系统中提取并清洗后的外部单据编号。
#### 实际操作步骤
1. **配置ETL流程**:
在轻易云平台上创建一个新的ETL流程,包括从源系统提取数据、清洗和转换,以及最终构建请求体。
2. **设置API调用**:
在ETL流程中添加一个HTTP请求节点,配置如下:
- URL: `/tplus/api/v2/OtherReceiveOpenApi/Audit`
- 方法: `POST`
- 请求头: 设置必要的认证信息和Content-Type(通常为application/json)
- 请求体: 使用前面构建好的JSON对象
3. **执行与监控**:
启动ETL流程,并实时监控其执行状态。确保每个环节都正确运行,并检查日志以排查可能出现的问题。
#### 注意事项
- **ID检查**:元数据配置中包含`idCheck: true`,意味着在进行操作之前,需要对ID进行校验,以确保唯一性和正确性。
- **错误处理**:在实际操作过程中,需要考虑各种可能出现的错误情况,例如网络问题、API响应异常等,并设计相应的错误处理机制。
- **性能优化**:对于大批量的数据处理,可以考虑批量操作或异步处理,以提高效率。
通过上述步骤,我们可以高效地将源平台的数据经过ETL转换后,成功写入畅捷通T+系统,实现不同系统间的数据无缝对接。这不仅提升了业务透明度和效率,也确保了数据的一致性和准确性。
![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/T1.png~tplv-syqr462i7n-qeasy.image)