吉客云数据集成到金蝶云星辰V2的技术案例分享
在本次技术案例中,我们将探讨如何通过轻易云数据集成平台,将吉客云的数据高效地集成到金蝶云星辰V2系统中。该方案(方案名称:111)不仅实现了数据的高吞吐量写入,还确保了数据处理过程的实时监控和异常检测。
首先,吉客云作为数据源平台,通过调用其API接口erp.allocate.get
来获取所需的数据。这一过程中,轻易云提供了定时可靠的抓取机制,确保从吉客云接口获取的数据不漏单,并且能够处理分页和限流问题,从而保证数据获取的稳定性和完整性。
接下来,在将数据写入到金蝶云星辰V2系统时,我们使用其API接口/jdy/v2/scm/inv_tfmove
进行批量数据集成。为了适应特定业务需求,轻易云支持自定义的数据转换逻辑,以解决吉客云与金蝶云星辰V2之间的数据格式差异。此外,通过可视化的数据流设计工具,使得整个数据集成过程更加直观和易于管理。
在实际运行过程中,集中监控和告警系统发挥了重要作用。它能够实时跟踪每个数据集成任务的状态和性能,并及时发现并处理任何异常情况。同时,通过日志记录功能,实现了对整个数据处理过程的全面追溯,为后续优化提供了有力支持。
综上所述,本次技术案例展示了如何利用轻易云平台高效、可靠地完成吉客云到金蝶云星辰V2的数据集成任务。在后续章节中,我们将详细介绍具体实施步骤及相关配置细节。
调用吉客云接口erp.allocate.get获取并加工数据
在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用吉客云接口erp.allocate.get
获取并加工数据,以确保数据的准确性和完整性。
配置元数据
首先,我们需要配置元数据,以便正确调用吉客云的API。以下是相关配置:
{
"api": "erp.allocate.get",
"method": "POST",
"number": "allocateNo",
"id": "allocateId",
"pagination": {
"pageSize": 50
},
"beatFlat": ["stockAllocateDetailViews", "batchList"],
"idCheck": true,
"request": [
{"field":"pageIndex","label":"页码(默认从0开始)","type":"string"},
{"field":"pageSize","label":"每页条数(默认50)","type":"string","value":"50"},
{"field":"status","label":"调拨单状态(多个中间逗号隔开)","type":"string"},
{"field":"auditDateStart","label":"审核起始时间","type":"datetime","value":"2022-09-01 00:00:00"},
{"field":"auditDateEnd","label":"审核结束时间","type":"datetime","value":"{{CURRENT_TIME|datetime}}"},
{"field":"inWarehouseCode","label":"调入仓库编号","type":"string"},
{"field":"outSkuCode","label":"外部货品主键(支持批量 例:123,456)","type":"string"},
{"field":"outWarehouseCode","label":"调出仓库编号","type":"string"},
{"label": "调拨单号,多个中间逗号隔开", "field": "allocateNos", "type": "string"},
{"label": "入库状态",
"field":
"instatus",
"type":
"string",
"describe":
"(支持批量查询,多个值逗号隔开 1=入库等待,2=部分入库,3=入库完成)",
"value":
"3"
},
{
"label":
"出库状态",
"field":
"outstatus",
"type":
"string",
"describe":
"(支持批量,多个值逗号隔开 1=出库等待,2=部分出库,3=出库完成)",
"value":
"3"
}
]
}
调用API接口
在配置好元数据后,我们可以通过轻易云的数据集成平台发起对erp.allocate.get
接口的请求。该接口主要用于获取调拨单信息,并且支持分页查询,以应对大规模数据处理需求。
请求参数说明
pageIndex
: 页码,从0开始。pageSize
: 每页条数,默认为50。status
: 调拨单状态,可传递多个状态,中间以逗号隔开。auditDateStart
: 审核起始时间。auditDateEnd
: 审核结束时间。inWarehouseCode
: 调入仓库编号。outSkuCode
: 外部货品主键,可批量传递,如:123,456。outWarehouseCode
: 调出仓库编号。allocateNos
: 调拨单号,可传递多个,中间以逗号隔开。instatus
: 入库状态,可批量查询,如:1,2,3分别表示不同的入库状态。outstatus
: 出库状态,可批量查询,如:1,2,3分别表示不同的出库状态。
这些参数能够帮助我们精确地筛选和获取所需的数据,提高了数据处理的效率和准确性。
数据清洗与转换
在成功调用API并获取到原始数据后,需要进行必要的数据清洗与转换。这一步骤包括但不限于:
- 去重:确保没有重复记录存在,这对于保证数据的一致性非常重要。
- 格式转换:根据目标系统(金蝶云星辰V2)的要求,将字段格式进行相应转换。例如,将日期格式统一为标准ISO格式等。
- 字段映射:将源系统中的字段映射到目标系统中的对应字段。这一步骤需要仔细检查,以确保所有关键字段都能正确匹配。
分页与限流处理
由于API请求可能会涉及大量的数据,为了避免超时或影响系统性能,需要对分页和限流进行合理处理。通过设置适当的pageSize
和控制请求频率,可以有效地管理API调用负载。
例如,通过设置每次请求返回50条记录,并逐页抓取,可以确保在高效获取大量数据的同时,不会给服务器带来过大的压力。此外,还可以实现定时任务,每隔一定时间段自动抓取最新的数据,从而保持数据的实时更新。
实时监控与日志记录
为了保证整个过程顺利进行,需要对每个步骤进行实时监控,并记录详细日志。一旦出现异常情况,可以及时发现并采取相应措施。例如,当某个请求失败时,可以根据日志信息快速定位问题原因,并通过重试机制重新发起请求,从而提高整体稳定性和可靠性。
综上所述,通过合理配置元数据、精确调用API、以及高效的数据清洗与转换,我们能够顺利完成轻易云数据集成平台生命周期中的第一步,为后续的数据写入和业务应用打下坚实基础。
将数据转换为金蝶云星辰V2API接口格式并写入
在数据集成过程中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星辰V2API接口所能够接收的格式,最终写入目标平台。这一过程至关重要,因为它直接关系到数据的准确性和一致性。
首先,我们需要了解金蝶云星辰V2API接口的具体要求。根据元数据配置,可以看到API接口/jdy/v2/scm/inv_tfmove
采用POST方法,主要参数包括单据编码、出库日期、操作类型、商品分录等。每个字段都有其特定的格式和要求,需要我们在ETL过程中进行相应的转换和映射。
数据请求与清洗
在数据请求阶段,我们从源系统(如吉客云)抓取原始数据。为了确保数据不漏单,可以使用定时任务可靠地抓取吉客云接口数据,例如调用erp.allocate.get
接口获取库存调拨信息。此时需要处理分页和限流问题,以确保数据完整性和系统稳定性。
数据转换与映射
-
单据编码(bill_no):将吉客云中的调拨单号映射为金蝶云星辰V2的单据编码。
{"field":"bill_no","value":"{transfer_no}"}
这里
{transfer_no}
表示从源系统中提取的调拨单号。 -
出库日期(bill_date):将调拨创建日期转换为符合金蝶云星辰V2格式的出库日期。
{"field":"bill_date","value":"{created}"}
created
字段表示调拨单创建时间。 -
操作类型(operation_key):固定为“audit”,表示审核操作。
{"field":"operation_key","value":"audit"}
-
商品分录(material_entity):这是一个数组,包含多个商品条目,每个条目需要进一步映射具体字段,如商品编码、数量、单位、调入仓库和调出仓库。
-
商品ID:
{"field":"material_id","value":"_findCollection find id from 87620e1d-bf21-3b1b-a036-5d64ec61ad39 where number={goods_no}"}
这里通过查找集合中的ID来获取商品ID。
-
数量:
{"field":"qty","value":"{{material_entity.num}}"}
数量直接从原始数据中提取。
-
单位:
{"field":"unit_id","value":"_findCollection find baseunitid_id from 87620e1d-bf21-3b1b-a036-5d64ec61ad39 where number={{details_list.goods_no}}"}
单位ID同样通过查找集合来获取。
-
调入仓库ID:
{"field":"in_stock_id","value":"_findCollection find id from 38d1bf66-eeed-38f7-adf6-93ae7b2c7ce8 where number={to_warehouse_no}"}
调入仓库ID通过仓库编号查找。
-
调出仓库ID:
{"field":"out_stock_id","value":"_findCollection find id from 38d1bf66-eeed-38f7-adf6-93ae7b2c7ce8 where number={from_warehouse_no}"}
调出仓库ID同样通过仓库编号查找。
-
数据写入与监控
在完成上述转换后,将处理好的数据通过POST请求写入金蝶云星辰V2。为了确保高吞吐量的数据写入能力,可以批量处理数据,减少网络请求次数。同时,通过集中的监控和告警系统,实时跟踪数据集成任务的状态和性能,及时发现并处理异常情况。
此外,为了应对可能出现的数据对接异常,需要实现错误重试机制。一旦发现错误,可以自动重试,确保数据最终成功写入目标平台。
实时监控与日志记录
在整个ETL过程中,实时监控与日志记录是不可或缺的一部分。通过轻易云提供的数据质量监控和异常检测功能,可以及时发现并处理任何潜在的问题,确保数据的一致性和准确性。
综上所述,通过对源平台数据进行精确的ETL转换,并利用金蝶云星辰V2API接口实现高效的数据写入,可以显著提升业务流程的自动化程度和数据处理效率。