如何使用服务流程进行数据一致性补偿同步

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何使用服务流程进行数据一致性补偿同步


服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程化设计编排成全新的应用服务,以支持更加复杂的业务场景。


例如基础数据分发到多个系统、数据消费需要从多源取数、基于某个数据参数处理不同的集成过程等等。


为了帮助大家快速掌握服务流程的使用方法,我们推出了系列文章,通过11个典型案例向大家介绍服务流程的高级技巧。


在上期集成服务流程典型案例系列文章中,我们为大家介绍了服务流程的第5个典型案例:如何使用服务流程进行基础资料初始化


本期,小编继续为大家介绍第6个案例:以定时同步第三方系统凭证为例,演示如何进行数据一致性补偿同步,包括以下3个要点:


  • 案例思路拆解;

  • 利用服务流程,定时检测源系统新增、修改的数据,从而调用目标系统接口生成凭证、修改凭证;

  • 利用服务流程,定时检测源系统删除的数据,从而调用目标系统接口删除凭证。




案例思路拆解

1.1 整体思路


业务人员在使用系统时,数据库直连或数据库代理等异构系统需要通过苍穹系统进行凭证同步。对此,服务流程提供了一种解决方案。


该解决方案的整体思路为:通过定时检查源系统和目标系统数据是否一致,对差异部分进行补偿同步,以保证两个系统间数据的一致性。


1.2 实现原理


针对本文提出的定时同步第三方系统凭证案例,具体原理为:使用苍穹二开的凭证模版作为中间表,当源系统数据更新时,使用服务流程中数据对比节点对比源系统与中间表差异,检测出源系统新增、修改、删除的数据,从而调用不同的目标系统接口生成凭证、修改凭证或删除凭证。


实现原理


1.3 业务逻辑与流程概览


使用服务流程进行数据一致性补偿同步的业务逻辑如下:


1、设置凭证启动方式为定时启动;

2、通过两个数据对比节点分别检测新增/修改和删除的凭证数据;

3、若数据对比结果为map类型数据,需要转成list后作为后续处理的筛选条件值;

4、更新源系统凭证数据需要先同步到中间表,再通过中间表数据模版调用目标系统的微服务生成凭证;

5、删除源系统凭证需要先调用目标系统微服务删除凭证,成功后再删除中间表数据。


具体的流程如下图所示:


流程图概览


实现流程-源系统新增/修改


利用服务流程,可定时检测源系统新增、修改的数据,从而调用目标系统接口生成凭证、修改凭证。具体实现流程如下:


2.1 检查新增、修改的凭证


为了检测源系统数据是否有新增或修改,首先需要建立一个基于源系统和中间表的数据集成方案的数据对比方案,以对比源系统中数据是否在中间表中存在或需要更新。


新增数据集成方案


新增数据对比方案


将服务流程开始节点设置为每天定时启动,数据对比节点将过滤出最近两天的源系统更新数据,并将对比差异结果保存到流程变量中用于后续处理。


检查新增、修改的凭证


2.2 获取待同步凭证ID


通过脚本节点获取上一步对比结果的流程变量(map)中所有ID值,并保存在另一个变量(list)中。如果该变量为空,则无需同步,结束这条分支流程。


获取待同步凭证ID


2.3 将源数据同步到中间表


获取到待同步凭证ID值后,使用ID作为过滤条件,执行凭证修改/新增数据集成方案,将源系统的数据同步到中间表中。


将源数据同步到中间表


2.4 调用目标系统微服务生成凭证


最后,通过中间表模版中的数据,调用目标系统凭证新增/修改的微服务,生成凭证。


调用目标系统微服务生成凭证


实现流程-源系统删除


利用服务流程,可定时检测源系统删除的数据,从而调用目标系统接口删除凭证。具体实现流程如下:


3.1 检查待删除的中间表数据


与新增、修改不同的是,源系统数据被删除后,无法通过获取源数据候选键与中间表进行对比


因此,需要基于中间表作为源对象、源系统凭证作为目标对象的数据集成方案(仅适用于中间表数据来源唯一的情况)进行对比(对比策略为“目标单是否存在”)。


对比的差异结果即是源系统中被删除的数据项。将此结果保存在流程变量中以备后续步骤使用。


检查待删除的中间表数据


3.2 获取待删除的中间表凭证ID


通过脚本节点获取上一步对比结果的流程变量(map类型)中所有ID值,并保存在另一个变量(list类型)中,如果该变量为空,则无需删除任何凭证,结束这条分支流程。


获取待删除的中间表凭证ID


3.3 调用目标系统微服务删除凭证


通过上一步脚本节点转化的待删除的凭证ID,直接调用目标系统删除凭证的微服务,即可删除目标凭证的对应凭证。


调用目标系统微服务删除凭证


3.4 删除源系统中已删除的中间表数据


最后,删除中间表中的对应数据,以防源系统中已删除的数据保留在中间表,导致下次对比时仍存在差异。


删除源系统中已删除的中间表数据


参考资料


更多关于集成服务云的知识,可参考下述资料:


集成服务流程操作指南




#往期推荐#


# 如何使用服务流程进行基础资料初始化

# 如何在服务流程中进行API集成

# 如何在服务流程中使用消息集成

# 如何使用服务流程对启动方案失败进行自动补偿

# 如何通过服务流程进行单据反写


更多精彩内容,“码”上了解!↓


如何使用服务流程进行数据一致性补偿同步

服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息