用友BIP与吉客云的销售订单数据集成案例分享
在企业信息化系统中,数据的高效流动和准确对接是业务顺利运转的关键。本文将聚焦于一个实际运行的系统对接集成案例:用友BIP的数据集成到吉客云,方案名称为“2B-YS-销售订单--->吉客云-销售单-成功”。通过这一案例,我们将探讨如何利用轻易云数据集成平台实现高效、可靠的数据传输和处理。
在本次集成过程中,我们主要面临以下技术挑战:
- 确保数据不漏单:用友BIP作为数据源平台,其API接口
/yonbip/sd/voucherorder/list
需要定时可靠地抓取销售订单数据,并确保所有订单都能被完整获取。 - 处理分页和限流问题:由于用友BIP接口存在分页和限流机制,需要设计合理的数据抓取策略,以避免遗漏或重复读取。
- 快速写入大量数据:目标平台吉客云要求能够快速、大量地写入销售单数据,通过其API接口
oms.trade.ordercreate
进行操作。 - 自定义数据转换逻辑:用友BIP与吉客云之间的数据格式存在差异,需要进行定制化的数据映射和转换,以适应各自的业务需求。
- 实时监控与异常处理:整个集成过程需要具备实时监控能力,并在出现异常时能够及时告警和重试,确保任务的稳定性和可靠性。
通过轻易云提供的可视化操作界面,我们可以直观地设计并管理整个数据流,从而简化了复杂的数据处理流程。同时,集中监控和告警系统使得我们能够实时跟踪每个环节的状态,迅速定位并解决潜在问题。特别是支持高吞吐量的数据写入能力,使得大量销售订单能够快速、安全地从用友BIP传输到吉客云,大大提升了整体效率。
接下来,我们将详细解析这一集成方案中的具体技术实现细节,包括如何调用用友BIP接口、处理分页与限流、以及在吉客云中进行定制化数据映射等内容。
调用用友BIP接口获取并加工数据
在轻易云数据集成平台的生命周期中,第一步是调用源系统用友BIP接口/yonbip/sd/voucherorder/list获取并加工数据。这一步骤至关重要,因为它确保了后续的数据处理和写入能够顺利进行。
接口调用与请求参数配置
首先,我们需要配置请求参数,以便正确地调用用友BIP接口。以下是一些关键的请求参数及其配置:
- 页码 (pageIndex):用于分页查询,默认值为1。
- 每页行数 (pageSize):控制每次查询返回的数据条数,默认值为50。
- 单据编码 (code):用于指定特定单据的编码。
- 订单状态 (nextStatusName):例如“DELIVERGOODS”表示待发货状态。
- 制单日期范围:包括开始时间(open_orderDate_begin)和结束时间(open_orderDate_end),格式为
yyyy-MM-dd HH:mm:ss
。 - 期望收货日期范围:包括开始时间(open_hopeReceiveDate_begin)和截止时间(open_hopeReceiveDate_end),格式同上。
- 单据时间范围:包括开始时间(open_vouchdate_begin)和截止时间(open_vouchdate_end),支持动态日期,如过去30天到当前时间。
这些参数通过POST方法发送给API,以获取符合条件的销售订单数据。
数据清洗与转换
从用友BIP接口获取到原始数据后,需要对其进行清洗和转换,以适应目标系统吉客云的需求。以下是一些常见的数据清洗与转换操作:
-
字段重命名:
- 将
stockId
重命名为new_stockId
。 - 将
pubuts
重命名为date_pubuts
,并将其格式化为日期类型。
- 将
-
数据类型转换:
- 确保所有字段的数据类型符合目标系统要求。例如,将字符串类型的日期字段转换为标准日期格式。
-
过滤与排序:
- 根据业务需求,对返回的数据进行过滤。例如,仅保留订单状态为“DELIVERGOODS”的记录。
- 对结果集按指定字段(如vouchdate)进行排序,确保数据有序性。
处理分页与限流问题
在实际操作中,由于数据量较大,我们需要处理分页和限流问题。可以通过以下方式实现:
-
分页处理:
- 利用pageIndex和pageSize参数,逐页获取数据,并在每次请求后更新pageIndex以获取下一页的数据。
-
限流控制:
- 设置合理的请求频率,避免触发源系统的限流机制。可以通过设置延迟或使用异步任务来实现这一点。
异常处理与重试机制
为了保证数据集成过程的可靠性,需要设计健全的异常处理与重试机制:
-
异常捕获:
- 在每次API调用时捕获可能出现的异常,如网络超时、服务器错误等,并记录详细日志以便排查问题。
-
自动重试:
- 针对可恢复性的错误(如临时网络故障),可以设置自动重试机制,例如在失败后等待一段时间再重新尝试请求。
-
告警通知:
- 配置告警系统,在发生严重错误时及时通知相关人员,以便快速响应和解决问题。
实时监控与日志记录
轻易云平台提供了强大的实时监控功能,可以跟踪每个数据集成任务的状态和性能。同时,通过详细的日志记录,可以全面掌握整个流程中的各个环节,有助于快速定位和解决问题,提高整体效率。
综上所述,通过合理配置请求参数、进行有效的数据清洗与转换、妥善处理分页与限流问题,以及设计健全的异常处理机制,可以确保从用友BIP接口成功获取并加工销售订单数据,为后续的数据写入奠定坚实基础。
使用轻易云数据集成平台进行ETL转换并写入吉客云
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并转为目标平台吉客云API接口能够接收的格式,最终写入目标平台。这一步骤至关重要,因为它确保了数据在不同系统之间的无缝对接和一致性。
数据请求与清洗
首先,从用友BIP系统中提取销售订单数据。通过调用用友BIP接口/yonbip/sd/voucherorder/list
,获取原始订单数据。为了处理分页和限流问题,需要实现批量抓取和定时调度,以确保数据完整性和系统稳定性。
数据转换逻辑
在ETL过程中,轻易云提供了强大的自定义数据转换功能。以下是一些关键字段及其转换逻辑:
-
仓库编码(warehouseCode):根据
agentId_name
字段的值,使用条件表达式进行映射。例如:_function case '{agentId_name}' when '聚好看科技股份有限公司(海信)' then '04' else '000017' end
-
下单时间(tradeTime)和支付时间(payTime):直接映射
date_pubuts
字段。 -
店铺名称(shopName):映射
formula_userDefine_1908587096934187016
字段。 -
订单类型(tradeType):固定值为
1
,表示零售业务。 -
商品金额和应收金额(totalFee, payment):映射
payMoney
字段。 -
收货人信息:包括收货人姓名、电话、手机、详细地址等字段,分别映射相应的源数据字段。
-
订单明细(tradeOrderDetails):这是一个数组类型字段,其中包含多个子字段,如货品编号、规格名称、单价、数量等。这些子字段需要从源数据中的相应字段进行映射,例如:
goodsNo: {{list.skuCode}} sellPrice: {{list.oriTaxUnitPrice}} sellCount: {{list.subQty}}
数据写入吉客云
完成数据转换后,通过吉客云API接口oms.trade.ordercreate
进行数据写入。该接口支持POST方法,并要求传递一个包含订单详细信息的JSON对象。以下是部分关键参数配置:
- api:
"oms.trade.ordercreate"
- method:
"POST"
- idCheck:
true
- operation:
- method:
"merge"
- field:
"code"
- bodyName:
"list"
- method:
在配置过程中,需要特别注意以下几点:
- 请求体结构:确保请求体符合吉客云API规范,包括正确的层级关系和字段名称。
- 错误处理与重试机制:如果数据写入失败,需要实现错误处理机制,并根据具体错误原因进行重试。
- 实时监控与日志记录:通过轻易云的数据质量监控功能,实时跟踪数据写入过程中的异常情况,并记录日志以便后续分析和排查问题。
实际案例
假设我们有一条从用友BIP提取的销售订单,其部分原始数据如下:
{
"code": "SO123456",
"createTime": "2023-10-01T10:00:00",
"payMoney": "1000",
"receiver": "张三",
"receiveMobile": "13800000000",
"receiveAddress": "北京市朝阳区某街道某小区",
"new_stockId": "001",
"date_pubuts": "2023-10-01T10:05:00",
"agentId_name": "聚好看科技股份有限公司(海信)"
}
通过上述ETL过程,我们将其转换为吉客云API所需的格式,并成功写入目标平台。这一过程不仅保证了数据的一致性,还提升了系统之间的数据交互效率。
通过轻易云的数据集成平台,我们能够高效地完成从用友BIP到吉客云的数据ETL转换及写入任务,实现不同系统间的数据无缝对接,为企业业务流程优化提供坚实的数据支持。