实践案例 | ERP与外围系统大数据同步超时怎么办?
小编推荐
在项目实施中,我们常常遇到因外围系统数据处理慢,导致大数据量无法下发的问题。本篇文章针对这一难题分享了两套解决方案,以及方案使用建议,干货满满!
案例撰稿人:侯存良。
业务背景
在ERP项目实施过程中,ERP需要与多套外围系统进行数据间的同步,经常会因为外围系统性能不理想,导致传输数据的过程中,因外围系统数据处理较慢导致ERP接口出现超时问题。
问题现象可以参考以下业务流程图。每次触发接口时,我们将两小时内的数据都取出来处理,直接给外围系统推送数据,但过程耗时长,且一旦出现超时情况,数据也推送不成功。
图1 业务流程图
图2 推送失败
在外围系统解决不了性能问题的情况下,我们如何确保ERP的数据能正常推送到各个外围系统呢?
解决方案
面对这样一个在项目实施中经常出现的难题,在集成接口开发中,常用到两个方案,分别为服务流程处理、集成方案,下面具体介绍这两个方案的处理流程。
方案一:服务流程处理
服务流程处理(数据流向ERP->外围系统),实现了对下发数据按指定大小分批推送的效果。服务流程图示例:
图3 服务流程图
具体操作流程如下:
1. 操作路径:【苍穹平台】->【应用】->【集成服务云】->【集成管理】->【服务编排】->【服务流程】。
图4 操作路径
2. 新建服务流程,查询符合数据的id集合,把id集合按指定批数分批,流程变量 (onePushDataLength) 按外围系统能接收的数据量设置分批大小,此处按每批100处理。
图5 流程变量设置
3. 配置依赖资源,添加处理业务逻辑的服务流程资源。
图6 依赖资源设置
4. 流程图设计,配置数据查询节点信息,此处只查询id字段即可,用于后续流程处理,其他字段无用。
图7 节点配置
5. 数据分批处理,并把每批数据id传到业务处理流程处理。
注意:此处依赖资源需要引入调用的服务流程,在第3步操作。
图8 代码示例
6. 业务处理流程,设置入参接收传入的id集合。
图9 流程变量设置
7. 用传入的id集合查询所需要的业务字段,进行数据处理后,调用api下发外围系统即可(按照具体的业务处理逻辑处理,此处不展开)。到此处服务流程分批下发数据已处理完成。
8. 按照此方案优化后,接口稳定性有了很大提升,数据也能正常推送。
图10 推送成功
方案二:集成方案
使用集成方案同步数据需要外围系统提供对应的数据库信息才能进行后面的操作。
1. 根据外围系统提供的信息在ERP新建好对应的连接后,即可创建数据库类型的集成对象。
图11 创建集成对象
2. 新建集成方案,选择源对象和目标对象。
图12 新建集成方案
3. 对目标对象字段和源对象字段进行映射处理。
图13 字段映射处理
4. 由于苍穹实体基础资料字段取出来的数据是有层级结构的,还需要对查出来的数据做转换,转换成拉平的数据,可以通过集成方案的值转换规则来处理。
图14 值转换规则设置
5. 对应字段处引用创建好的值转换规则,转换规则支持多种方式处理,可以选择自己擅长的类型进行操作。
图15 值转换规则类型
6. 开启转换规则中的“缓存转换结果”按钮,将对转换结果缓存,不再重复进行值转换,提高转换效率。
图16 开启“缓存转换结果”按钮
7. “目标数据处理”根据需求选择支持增删改查。
图17 目标数据处理设置
8. 新建数据集成启动方案,启动类型可以根据具体需求选择,此处“保存全部日志”按钮不建议开启,数据量大的时候记录全部日志对性能有一定的影响。
图18 新建数据集成启动方案
9. 控制参数可以开启多线程处理,按指定批数大小进行处理。
图19 控制参数
10. 过滤条件处设置需要查询的条件。
图20 过滤条件
11. 至此,用数据集成方案实现大数据同步已完成,上面展示案例仅其中一种,有其他需求可以基于上述案例扩展。
方案对比
1. 服务流程
当需要对整个流程日志查询跟踪,服务流程有整个流程各个流程变量的参数,易于分析问题,自由度非常高,支持搭配集成方案使用,并且基本支持所有类型的数据格式。
2. 集成方案
大数据量的场景下,集成方案通过实体流式取数不会一次性把所有数据取出来,避免了内存溢出问题。
当字段映射需要单独对其中一些字段进行单独处理时,使用值转换规则开启缓存搭配启动方案开启合适的线程数,多线程处理效率更高。
因此,当数据量较大且服务流程处理不了时,推荐使用集成方案处理,表对表操作,效率会比服务流程高很多。
服务流程通过分批处理也适用于一些大数据处理场景,但是数据量过大存在OOM风险。
方案的可推广价值
在每次项目实施中难免会遇到因外围系统性能导致大数据量下发不下去的问题,此方案可以提供一种快速解决问题的思路。
相关资料
服务流程及集成方案的文件见链接:https://vip.kingdee.com/link/s/lQbdW
注意:由于服务流程和集成方案是DTS类型的文件,电脑没有安装相关的软件不一定能打开,遇到打不开的小伙伴可以先下载文件,然后导入到系统中即可。
希望本篇文章能帮助每一位从事集成接口开发的小伙伴,遇到相同的问题时,高效快速进行处理,同时也希望大家分享更好的案例,一起学习。
往期推荐
# 实践案例 | 如何在内外网IP端口不一致下搭建苍穹开发环境
更多精彩内容,“码”上了解!↓
实践案例 | ERP与外围系统大数据同步超时怎么办?
本文2024-09-23 00:50:19发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142060.html