使用轻易云平台实现数据转换与写入畅捷通T+接口

  • 轻易云集成顾问-陈洁琳
### 案例分享:畅捷通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)