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.分析與解決