汤臣倍健营销云数据集成到畅捷通T+的技术案例分享
在企业信息化建设中,数据集成是实现各系统间高效协同的重要环节。本文将分享一个具体的系统对接集成案例:如何将汤臣倍健营销云的数据无缝集成到畅捷通T+平台,实现采购入库到进货单的自动化处理。
采购入库->进货单:方案概述
在本次集成方案中,我们主要关注的是从汤臣倍健营销云获取采购入库数据,并将其写入到畅捷通T+生成相应的进货单。这一过程不仅需要确保数据传输的准确性和及时性,还要处理两者之间的数据格式差异以及接口调用中的分页和限流问题。
数据获取与写入
首先,通过调用汤臣倍健营销云提供的API接口/erp/api/order/query/purInWarehsOrder
,我们能够定时可靠地抓取最新的采购入库数据。为了保证高吞吐量的数据写入能力,我们使用了轻易云平台提供的大量数据快速写入功能,将这些数据批量导入到畅捷通T+,对应的API接口为/tplus/api/v2/purchaseArrival/Create
。
实时监控与异常处理
在整个数据集成过程中,实时监控和异常处理至关重要。通过轻易云平台提供的集中监控和告警系统,我们可以实时跟踪每个数据集成任务的状态和性能。一旦发现任何异常情况,例如接口调用失败或数据格式不匹配,系统会立即触发告警并执行错误重试机制,以确保数据不漏单、不错单。
数据转换与映射
由于汤臣倍健营销云与畅捷通T+之间的数据结构存在差异,我们需要进行自定义的数据转换逻辑。轻易云平台提供了可视化的数据流设计工具,使得这一过程更加直观和易于管理。同时,通过定制化的数据映射对接,可以灵活适应特定业务需求,确保最终生成的进货单符合业务规范。
以上是本次技术案例分享的开篇部分。在后续章节中,我们将详细介绍具体实施步骤、遇到的问题及解决方案,以及如何进一步优化该集成流程以提升整体效率。
调用汤臣倍健营销云接口获取采购入库数据
在数据集成过程中,调用源系统的API接口是关键的一步。本文将详细探讨如何通过轻易云数据集成平台调用汤臣倍健营销云接口/erp/api/order/query/purInWarehsOrder
,并对获取的数据进行加工处理。
接口配置与请求参数
首先,我们需要配置元数据,以便正确地调用汤臣倍健营销云的API接口。以下是该接口的主要配置参数:
- api:
/erp/api/order/query/purInWarehsOrder
- method:
POST
- pagination: 支持分页,每页条数为30
- idCheck:
true
请求参数包括:
- tenantId(经销商id):必填项,用于标识具体的经销商。
- yxyNumber(营销云销售订单号):可选项,传此参数时其他条件无效。
- number(系统订单号):可选项,传此参数时其他条件无效。
- status(订单状态):默认值为1,即已审核状态。
- beginTime(开始时间)和endTime(结束时间):用于指定查询时间范围。
- pageNo(页码)和pageSize(每页条数):用于分页查询。
示例请求体如下:
{
"tenantId": "xxx",
"status": "1",
"beginTime": "{{LAST_SYNC_TIME|datetime}}",
"endTime": "2024-09-04 10:00:00",
"pageNo": "1",
"pageSize": "30",
"timeType": "1"
}
数据获取与处理
在成功调用API接口后,我们会得到一批采购入库单的数据。这些数据需要经过清洗和转换,以适应目标系统的需求。以下是几个关键步骤:
-
数据清洗
- 确保所有必填字段都有值,并且格式正确。例如,检查日期格式是否符合要求。
- 去除重复或无效的数据记录。
-
数据转换
- 根据目标系统的要求,对字段进行重命名或重新映射。例如,将
number
字段映射为目标系统中的订单编号字段。 - 对某些字段进行类型转换,如将字符串类型的日期转换为日期对象。
- 根据目标系统的要求,对字段进行重命名或重新映射。例如,将
-
分页处理
- 汤臣倍健营销云接口支持分页,因此我们需要循环调用API以获取所有页面的数据。在每次请求中更新
pageNo
参数,直到没有更多数据返回。
- 汤臣倍健营销云接口支持分页,因此我们需要循环调用API以获取所有页面的数据。在每次请求中更新
异常处理与重试机制
在实际操作中,可能会遇到各种异常情况,例如网络超时、接口限流等。为了确保数据不漏单,需要实现可靠的异常处理与重试机制:
- 当出现网络错误或超时时,可以设置一定次数的重试机制,并在每次重试之间增加延迟时间。
- 对于限流问题,可以根据返回的错误信息调整请求频率,避免触发限流限制。
实时监控与日志记录
为了确保整个过程透明可控,需要对数据处理过程进行实时监控和日志记录:
- 实时跟踪每个API调用的状态,包括成功和失败的信息。
- 记录每次请求和响应的数据,以便后续分析和排查问题。
通过以上步骤,我们可以高效地从汤臣倍健营销云获取采购入库单的数据,并将其加工处理后集成到目标系统中。这不仅提高了数据处理效率,也确保了数据的一致性和完整性。
集成数据写入畅捷通T+的ETL转换
在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL(抽取、转换、加载)转换,使其符合目标平台畅捷通T+ API接口所能接收的格式,并最终写入目标平台。这一过程中,元数据配置是关键,它定义了数据从源系统到目标系统的映射规则和转换逻辑。
数据抽取与清洗
首先,从源平台(如汤臣倍健营销云)抽取采购入库相关的数据。抽取的数据通常包括采购单号、日期、业务类型、往来单位、备注以及详细的单据明细信息。为了确保数据质量,在此阶段需要进行数据清洗,包括去除无效数据、校验字段格式等。
数据转换
接下来是数据转换阶段,根据元数据配置,将源平台的数据字段映射到畅捷通T+ API接口所需的字段格式。以下是关键字段的转换示例:
-
外部单号和单据编号:在元数据配置中,
ExternalCode
和Code
字段分别对应源平台中的外部单号和单据编号。这两个字段在请求中必须正确映射,确保唯一性和准确性。{"field":"ExternalCode","label":"外部单号","type":"string","value":"{number}"} {"field":"Code","label":"单号","type":"string","value":"{number}"}
-
单据日期:
VoucherDate
字段表示单据日期,需要从源平台的数据中提取并格式化为目标平台可接受的日期格式。{"field":"VoucherDate","label":"单据日期","type":"string","value":"{opertime}"}
-
业务类型:
BusinessType
字段通常固定为某一业务类型代码,例如“01”,通过解析器将其映射到目标平台相应的业务类型。{"field":"BusinessType","label":"业务类型","type":"string","parser":{"name":"ConvertObjectParser","params":"Code"},"value":"01"}
-
往来单位:
Partner
字段表示供应商或客户,通过解析器将源平台中的单位代码转换为目标平台可识别的代码。{"field":"Partner","label":"往来单位","type":"string","parser":{"name":"ConvertObjectParser","params":"Code"},"value":"{organid}"}
-
备注:
Memo
字段用于记录额外信息,如订单号和单位名称,便于后续查询和管理。{"field":"Memo","label":"备注","type":"string","value":"{saleOrderNo}{organName}(from营销云)"}
-
单据明细信息:这是最复杂的部分,包括存货、批号、数量和含税价等多个子字段。每个子字段需要从源平台的数据中逐项提取并映射到目标平台对应字段。
{ "field": "VoucherDetails", "label": "单据明细信息", "type": "array", "children": [ {"field": "Inventory", "label": "存货", "type": "string", "parser": {"name": "ConvertObjectParser", "params": "Code"}, "value": "{{itemList.extMaterialNo}}"}, {"field": "Batch", "label": "批号", "type": "string", "value": "{{itemList.lot}}"}, {"field": "Quantity", "label": "数量", "type": "string", "value": "{{itemList.opernumber}}"}, {"field": "OrigTaxPrice", "label": "含税价", "type": "string", "value": "{{itemList.taxunitprice}}"} ], "value": "itemList" }
-
仓库:
Warehouse
字段指定存储地点,通过解析器将其映射为目标平台仓库代码。{"field":"Warehouse","label":"仓库","type":"string","parser":{"name":"ConvertObjectParser","params":"Code"},"value":"1"}
数据加载
最后,将经过转换后的数据通过API接口写入畅捷通T+系统。使用POST请求将处理好的JSON对象发送到 /tplus/api/v2/purchaseArrival/Create
接口,确保所有字段符合接口规范,并处理可能出现的异常情况。
POST /tplus/api/v2/purchaseArrival/Create HTTP/1.1
Host: api.tplus.com
Content-Type: application/json
{
// 转换后的JSON对象内容
}
在整个过程中,实时监控和日志记录至关重要,能够帮助及时发现并解决问题。此外,处理分页和限流问题也需要特别注意,以确保大规模数据集成任务顺利完成。