ESB+MDM同步分发流程开发总结
Posted 数通畅联
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESB+MDM同步分发流程开发总结相关的知识,希望对你有一定的参考价值。
MDM主数据管理是把企业的多个业务系统中最核心的、最需要共享的主要数据进行整合,集中进行数据清洗和标准化,并且以集成服务的方式把统一的、完整的、准确的、具有权威性的主数据分发给需要使用这些数据的应用系统,而ESB则是主要作为企业信息系统的“龙骨”来集成各业务系统,实现异构系统的互联互通。
本文是对ESB和MDM协同使用实现数据的同步分发进行总结。在对MDM产品的功能及接口进行了解与熟练使用后,进行功能开发,实现从源头数据库到MDM的数据同步、再从MDM到目标数据库的数据分发功能。在本文中会介绍功能的设计实现思路、具体的实现过程、数据架构、功能测试及分析总结。
1总体需求
总体需求主要包括对同步分发流程的业务需求进行说明,并对同步分发流程的功能需求进行整体分析,另外对于整体的集成架构进行介绍。
1.1业务需求
本次同步分发基于实际业务需求,需要在同步过程中模拟真实业务,将ERP、财务系统数据同步至MDM,并下发至业务系统中。基于实际业务情况,将ERP系统的收款、付款单据通过ESB同步至财务的应收、应付单据以及财务凭证中,并保证业务单据和基础数据的有效关联。
1.2功能需求
本次同步分发流程中基础数据需要如下:
1.获取源头系统的客户、供应商和银行账户等数据:
在ESB创建ERP数据获取服务,根据code可以查询单条数据或者根据状态查询关联的多条数据。
2.将数据同步到MDM主数据中:
在同步的过程中,调用MDM预制的存入临时表和真实表接口,调整好数据的入参,将数据先同步到临时表再同步到真实表,自动回写同步日志。
3.MDM自动分发到目标系统当中:
在同步流程中调用BPM自动提交接口,在MDM管理控制台配置前置任务和调用接收服务接口路径,调用财务接收服务将数据存入财务系统当中对应表中。
1.3集成架构
集成架构以ESB+MDM为主,通过ESB实现MDM相关数据的同步,整体架构图如下:
1.以ERP为数据源头,提供客户、供应商、银行账号并进行数据的同步,在主数据中进行治理后调用BPM将该三类主数据分发至财务系统中。
2.以MDM为数据源头,提供组织、人员、物料、产品、参考数据并进行数据的分发,将主数据分发至ERP系统与财务系统中。
3.以财务系统为数据源头,将核算项目、会计科目分发至MDM系统中,在MDM中进行存储,不进行下发。
4.以ERP为数据源头,提供收款单/付款单并通过ESB进行数据的同步,数据同步至财务系统中的应收单/应付单。
2需求分析
本次同步分发流程主要包括两个部分,一部分是进行主数据的模型创建,另一部分是对ESB企业服务总线进行集成流程配置。本次同步分发流程的核心目的是通过调用同步分发流程,一键将源头系统的数据同步MDM再自动分发到目标系统中。
2.1前期准备
首先,对ESB、MDM等产品进行调试,尽量使用最新版避免出现产品问题;其次,先熟悉产品操作,了解ESB组件的使用、MDM在功能实现过程中需要用到的接口、掌握调用其需要的入参格式、调用方式等等。
2.2实现思路
在上文已经对本次工作需求做出了阐述,在拿到需求后,先整理出大体的实现思路,再根据实现思路进行更为具体的实现过程设计,本次开发工作的大体实现思路如下:
1.配置主数据的各类模型;
2.创建数据的数据查询服务接口;
3.创建数据的财务接收服务接口;
4.在SMC管理控制台API服务模块进行查询服务、接收服务以及主数据服务注册配置;
5.在主数据管理平台进行BPM流程的配置和分发接口配置;
6.在SMC管理控制台应用集成配置生成对应的集成流程;
7.在ESB流程内部调用数据获取服务接口进行数据格式的清洗映射转换;
8.调用主数据管理平台的批量导入临时表接口将数据导入至临时表中;
9.调用主数据管理平台的批量导入实体表接口将数据写入主数据管理平台当中;
10.最后调用主数据管理平台的自动提交接口调用目标系统的接收数据接口将数据分发至财务系统。
2.3过程设计
在此将根据从需求整理出的大概实现思路,进行更为具体的设计,对于同步分发流程的开发过程进行整体概述。本次流程主要包含MDM以及ESB应用集成配置两大部分,整体如下:
1.在MDM主数据管理平台按照业务需求创建基础模型并进行部署。
2.在MDM主数据管理平台按照业务需求创建功能模型并进行部署。
3.在ESB设计器创建源头系统数据的数据查询服务接口。
4.在ESB设计器创建目标系统数据的数据查询服务接口。
5.在ESB的SMC管理控制台API服务模块进行查询服务注册配置并对对应接口配置入参出参。
6.在ESB的SMC管理控制台API服务模块进行接收服务注册配置并对对应接口配置入参出参。
7.在ESB的SMC管理控制台API服务模块主数据服务注册配置并对临时表接口配置入参出参。
8.在ESB的SMC管理控制台场景配置中进行流程的场景配置并对其进行提交生成集成流程。
9.根据创建应用集成流程,并在设计器生成进行二次调整在同步流程中添加BPM自动提交接口调用分发流程。
10.对设计的流程进行整体测试。
3模型搭建
在开发流程前,首先对各数据页面的显示进行实现,完成主数据系统中的数据建模以及功能建模。在本章节中将分别对主数据的数据模型、功能模型以及ESB动态模型创建过程进行介绍。
1.主数据模型:通过配置主数据的数据模型,配置该主数据的基本信息、来源系统以及分发系统。
2.功能模型:通过配置主数据系统的功能模型,来对数据的显示格式以及页面的展示效果进行配置。
3.动态模型:通过ESB管理控制台可以配置动态模型,对接口的入参和出参进行规范。
3.1数据模型
数据建模是正式开始工作的第一项,其创建步骤如下(实际使用本预置样例时新建数据模型不是必须操作,可以直接使用主数据系统预制的数据模型):
在MDC的基础数据建模中点击新增,配置该主数据的基本信息、来源系统以及分发系统,如图:
双击新增的数据模型即可对该模型进行字段配置,如图:
3.2功能模型
数据的显示格式以及页面展示效果,可以通过主数据系统的功能模型进行调整,本次预置样例可以使用主数据系统预制的模型,也可以根据需求进行调整,具体配置过程如下:
在MDC的功能配置中点击新增,如图:
在填写并配置完成主数据功能模型的基础信息后,点击表单信息,可以对该主数据的具体页面显示效果进行调整,位置如图:
打开管理列表对主页面中的显示进行调整,如图:
打开管理表单调整数据页面的数据格式,如图:
在SQL中点击解析SQL并进行部署,即可完成功能模型的调整,如图:
3.3动态模型
ESB企业服务总线的模型主要包括两类:动态模型以及JavaBean静态模型。JavaBean对象是在设计器配置,可以基于数据库、XML以及SQL等方式进行配置;而动态模型则是通过SMC管理控制进行创建,并在设计器端引用使用即可。本次模型创建主数据的动态模型,以客户动态模型的创建为例,创建步骤如下:
在ESB管理控制台中,选中工程并打开服务模型点击新增,如图:
填写基础信息后,如图:
点击解析查看配置效果,如图:
最后点击部署即可完成动态模型创建。
4集成配置
完成上述配置后,便可正式开始流程开发。在本章节中,将从最初的服务创建开始介绍,从服务到集成场景到流程的二次调整,再到最后效果展示分别进行阐述,明确ESB集成流程的具体开发步骤。
整体流程图如下所示:
1.调取流程添加入参code值。
2.调取数据查询接口通过唯一code值查询数据。
3.将状态单独提取出来进行判断,按照对应的规则映射层对应的主数据状态。
4.调取toeknId接口,获取调取MDM接口需要的tokenId值。
5.调取临时表接口,将数据同步存入主数据的临时表。
6.调取真实表接口,将数据同步存入主数据的真实表。
7.调取BPM自动提交接口将数据自动分发到目标系统中。
8.调取回写日接口回写状态。
9.流程结束,返回同步结果集。
4.1服务创建
API服务采用注册或导入的方式生成,生成针对虚拟系统开发的七类主数据接口进行服务注册,并对MDM主数据的服务进行注册,每个服务的各个接口均进行入参、出参的配置,具体配置步骤如下:
导入服务点击API服务的导入按钮,选择对应服务,如图:
注册服务点击API服务的注册按钮,如图:
打开源头系统服务,配置入参和出参信息,如图:
入参:
出参:
打开主数据系统服务,配置入参信息,如图:
至此,同步流程的服务配置完毕,分发与同步较为基本一致。
4.2集成流程
在场景配置中点击新增,并填写主数据的基本信息,如图:
在映射参数中点击解析,如图:
在集成流程中可以看到配置完成的集成流程,如图:
在设计器中通过配置完成的集成流程创建HTTP流程,并完成功能开发,如图:
然后,对于流程进行二次调整以此满足业务需求,调整后的流程如下图所示:
首先,对于流程入参进行调整,调整HttpRequest,对其增加入参code:
然后,调整调取源数据节点,将code传入其中:
进行状态整体映射:
在对状态进行单独的提取转换成DataRow:
取出状态的值对状态进行分情况判断:
单独根据条件进行状态映射更改:
增加自动提交接口的节点调用,将taskId与流程编码(BPM流程在后面详细介绍)填入:
整体同步分发流程到此调整完毕。
下面对于BPM流程的创建配置和分发服务进行补充:
1.BPM流程
在MDM主数据管理平台中点击MDC系统,打开主数据控制台,如图:
在主数据控制台中点击流程定义列表,如图:
点击新增,输入流程基本信息,如图:
保存完毕之后,双击进入该流程,修改节点,如图:
点击属性->流程变量->新增保存,对流程变量进行添加:
双击调用节点->前置任务->新增保存,对拦截器进行添加:
(1)获取tokenId设置,如下:
Rest服务地址:
$bpms.GlobalConfigs.mdm/services/OpenApiAuthticater/login/authticate
消息请求体: (post) 解析
同步返回变量: tokenId
(2)初始化日志设置,如下:
Rest 服务地址:
消息请求头:(post)
消息请求体:异步
(3)MDM预置api-info接口
Rest服务地址:
消息请求头:(get)
异步调用
(4)修改任务状态接口
Rest服务地址:
消息请求头: (post)
消息请求体:
异步调用
BPM流程配置发布之后需要调整场景配置的关联地址:
进入MDM管理台,点击应用配置。
选择对应主数据,点击接口配置,添加对应分发的地址路径:
点击关联元数据,选择元数据进行关联:
2.分发服务的调整
整体流程如下图:
首先,将同步流程带过来的数据进行提取:
代码处理后转换为DataSet:
然后,将数据转换为DataRow:
对于状态进行情况判断:
对于不同情况下的状态进行映射:
将数据合并到目标表中:
至此,分发服务流程调整结束。
4.3效果展示
对于完成的流程的功能需要进行测试,在开始测试之前现对数据进行查看:
本次对源数据库的code为a001112的数据进行同步
源数据库:
主数据真实表:
目标数据库:
首先打开ESB管理控制台,选择对应的工程的流程进行调用:
将对应的code填入:
显示调用成功:
后台无报错:
查看主数据数据库:
查看目标数据库:
至此,同步分发流程已经完成整体展示。
5分析总结
通过本次同步分发流程开发,使自身在自我认知、工作方法以及产品使用方面有了很大的提升,现从工作方法、能力提升以及价值分析几个方面进行总结。
5.1工作方法
首先,做事要有规划,将复杂的问题简单化,将复杂问题进行分解,分解成简单的单元进行实现;其次,要有攻克难题的决心和毅力,在遇到不会的问题时,可以先去查找资料进行解决,但是处理不掉时要及时去向领导和同事进行请教,不要使问题堆积,这样效率才会最大化;最后,是要学会举一反三,得到帮助解决问题后要抓住问题的本质,学会解决问题的方法,在下次出现类似的问题时可以很快解决。
5.2能力提升
经过本次工作的历练,让我的能力有了很大的提升,使我对于产品更加熟悉,现从以下几个方面进行阐述。
1.产品的使用
随着工作的开展,对于产品使用越来越熟练,在工作的过程中学到了很多,比如:数据结构之间的相互转换,BPM接口的调用,临时表接口的调用,BPM流程的配置等。
2.总结与沟通
在本次工作中也认识到了总结与沟通的重要,在工作刚开展的时候会遇到一些问题,这时团队合作便显得尤为重要了,所以便需要自己做好问题的总结,然后与相关的负责人进行有效的问题重现和沟通来解决问题。
3.分析与解决
在本次工作中,分析和解决问题的能力有了明显提升,自己总结了处理问题的方法,出现问题的时候,首先看日志的报错从而定位;其次,检查自己的配置是否错误,检查对应主数据、流程和服务是否部署;然后,手动调用接口看是否调通;最后如果解决不了,会将问题记录下来,和同事进行讨论。
5.3价值分析
从技术角度看,ESB企业服务总线可以帮助企业在进行系统开发与集成过程中,辅助进行服务接口的开发以及API的统一管理,简化开发的步骤和流程,能帮助技术人员更快进行开发工作,提高工作效率。
企业服务总线产品本身的定位就是对企业数据以及服务治理,应用集成能够根据集成场景,快速创建对应的服务以及流程,对项目而言有着重要价值。首先可以提高交付速度,让项目人员更加专注于项目业务集成逻辑,为企业的行业积累提供帮助,其次可以简化维护成本。
以上是关于ESB+MDM同步分发流程开发总结的主要内容,如果未能解决你的问题,请参考以下文章