畅捷通T+数据集成到吉客云案例分享:采购入库单红字转出库单
在企业日常运营中,实现不同系统间的数据对接是提高工作效率和确保信息流畅的关键之一。本案例将详细探讨如何通过轻易云数据集成平台,将畅捷通T+系统中的采购入库单红字数据,准确无误地集成到吉客云并生成对应的出库单。方案名称为:T+采购入库单【红字】--->吉客云-出库单创建。
首先,我们需要进行的是从畅捷通T+获取采购入库单(红字)的数据。为了实现这一目标,将调用其API接口/tplus/api/v2/PurchaseReceiveOpenApi/FindVoucherList
来抓取所需的数据。在实际实施过程中,需要特别注意以下几点:
-
处理分页与限流问题: 为应对可能的大量数据请求,必须设计一个有效的分页机制,同时考虑API限流策略。例如,可以设置每次请求返回100条记录,并逐页检索直至没有更多待处理的数据。
-
定时可靠的数据抓取: 使用轻易云平台提供的调度任务功能,设定定时任务以规律性地调用畅捷通T+ API接口,从而确保最新的业务数据能够准时被捕获并进入下一个环节。
-
确保不漏单: 每次成功获取一批新数据后,应记录最后一次成功处理的位置,下次调度开始从该位置继续。这种方式有助于避免重复读取或遗漏潜在的重要业务信息。
接着,我们需要将这些从畅捷通T+系统拉取来的原始数据信息精准、高效地写入到吉客云中,对应生成相关的出库单。以下细节将进一步保证这一过程顺利进行:
-
大容量快速写入: 通过优化批处理框架,一次性聚合多个请求打包发送给吉客云,从而提升大量订单高速写入的性能表现。在这一过程中,通过调用
erp.storage.stockoutcreate
API接口完成具体操作。 -
格式差异及映射关系: 因两套系统之间存在字段、格式等方面的不一致性,我们需提前定义好转换规则,以便适配各自的平台需求。例如,将采购订单中的供应商编码转换为相应客户代码,再写入到对应输出字段位置上,这样可以保障两边数据信息的一致和正确传递。
-
异常处理与错误重试机制: 实现健壮性的异常监测和日志记录功能,当出现任何网络波动、调用失败或者格式不符等情况,可迅
调用畅捷通T+接口获取并加工数据
在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将详细探讨如何使用轻易云数据集成平台调用畅捷通T+接口 /tplus/api/v2/PurchaseReceiveOpenApi/FindVoucherList
获取采购入库单【红字】的数据,并进行必要的加工处理。
接口配置与请求参数
首先,我们需要配置接口的元数据。根据提供的元数据配置,接口调用采用POST方法,主要参数如下:
- api:
/tplus/api/v2/PurchaseReceiveOpenApi/FindVoucherList
- method:
POST
- number:
Code
- id:
Code
- idCheck:
true
请求参数包括:
- selectFields: 指定查询字段,包括
VoucherCode
,CustomerCode
,WarehouseCode
,Inventory
,InventoryCode
,Specification
,Unit
,Quantity
。 - pageIndex: 页码。
- pageSize: 每页返回记录数,默认值为50。
- paramDic_1: 复杂对象参数,用于指定时间范围,包含两个子字段:
- key: 上级部门编码,值为
RDRecord__AuditedDate
。 - value: 上级部门名称,值为
{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}
。
- key: 上级部门编码,值为
- paramDic_2: 另一个复杂对象参数,用于指定仓库ID,包含两个子字段:
- key: 仓库ID键,值为
Warehouse__ID
。 - value: 仓库ID值,固定为
1
。
- key: 仓库ID键,值为
请求示例
以下是一个完整的请求示例:
{
"selectFields": "VoucherCode,CustomerCode,WarehouseCode,Inventory,InventoryCode,Specification,Unit,Quantity",
"pageIndex": "1",
"pageSize": "50",
"paramDic_1": {
"key": "RDRecord__AuditedDate",
"value": "{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}"
},
"paramDic_2": {
"key": "Warehouse__ID",
"value": "1"
}
}
数据清洗与转换
在获取到原始数据后,需要对其进行清洗和转换,以满足目标系统的数据格式要求。根据元数据配置中的条件,我们需要筛选出数量小于0的记录:
"condition":[[{"field":"RDRecordDetails.Quantity","logic":"lt","value":"0"}]]
这一步骤确保我们只处理采购入库单【红字】的数据。
数据写入与后续处理
在完成数据清洗和转换后,将处理后的数据写入目标系统。在这个案例中,我们将这些数据传输到吉客云创建出库单。具体实现细节包括调用相应的API接口,并确保数据格式和字段映射正确无误。
自动填充响应
为了简化操作流程和提高效率,我们启用了自动填充响应功能:
"autoFillResponse": true
这意味着在成功获取并处理数据后,系统会自动填充响应结果,无需手动干预。
通过以上步骤,我们实现了从畅捷通T+获取采购入库单【红字】数据,并将其加工处理后传输到吉客云创建出库单的全过程。这一过程充分利用了轻易云数据集成平台的强大功能,实现了高效、透明的数据集成。
数据请求与清洗
在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,以便转为目标平台吉客云API接口所能够接收的格式,并最终写入目标平台。本文将详细介绍如何配置和使用轻易云数据集成平台,将T+采购入库单【红字】的数据转换并写入吉客云。
元数据配置解析
我们将使用以下元数据配置来完成数据转换和写入操作:
{
"api": "erp.storage.stockoutcreate",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "outWarehouseCode",
"label": "仓库编码",
"type": "string",
"describe": "仓库编码",
"value": "{{Warehouse.Code}}"
},
{
"field": "outType",
"label": "入库类型",
"type": "string",
"describe": "入库类型 101=采购入库 102=调拨入库 103=盘盈入库 104=其他入库",
"value": "205"
},
{
"field": "relDataId",
"label": "关联单据编号",
"type": "string",
"describe": "可随机,保证不重复即可",
"value": "{Code}"
},
{
"field": "applyDate",
"label": "申请入库时间",
"type": "string",
"describe": "申请时间",
"value": "{AuditedDate}"
},
{
...
}
]
}
配置字段说明
- outWarehouseCode: 仓库编码,映射到源数据中的
Warehouse.Code
。 - outType: 入库类型,固定值
205
表示出库类型。 - relDataId: 关联单据编号,使用源数据中的
Code
字段。 - applyDate: 申请入库时间,使用源数据中的
AuditedDate
字段。 - memo: 备注信息,格式为“采购入库单-{Code}”。
- source: 固定值
OPEN
。 - stockOutDetailViews: 入库申请单明细,是一个数组,其中包含多个字段,如货品编号、条形码、关联实际业务明细表的ID、入库数量等。
数据转换与写入
在实际操作中,我们需要通过轻易云平台提供的ETL工具,将上述元数据配置应用于源平台的数据,并进行相应的转换。以下是具体步骤:
- 提取源数据:从T+系统中提取采购入库单【红字】的数据,包括仓库编码、单据编号、审核日期等信息。
- 清洗与转换:根据元数据配置,对提取的数据进行清洗和转换。例如,将仓库编码映射到目标字段
outWarehouseCode
,将审核日期映射到目标字段applyDate
等。 - 构建请求体:根据元数据配置构建API请求体。确保所有必需字段都已填充,并且格式符合吉客云API接口要求。
- 发送请求:使用HTTP POST方法,将构建好的请求体发送到吉客云API接口(
erp.storage.stockoutcreate
)。 - 处理响应:接收并处理吉客云返回的响应信息。如果成功,则记录日志;如果失败,则进行错误处理和重试。
技术案例
假设我们从T+系统中提取到以下示例数据:
{
...
}
根据上述元数据配置,我们可以生成如下API请求体:
{
...
}
通过轻易云平台,我们可以自动化上述过程,实现高效的数据集成和转换。
总结
通过详细解析元数据配置,并结合实际操作步骤,我们可以高效地将T+采购入库单【红字】的数据转换并写入吉客云。这不仅提升了业务透明度和效率,也确保了不同系统间的数据无缝对接。