MS MDS系列之MDS層次結構(Hierarchy)

在Master Data Services中,Hierarchy的作用主要用於:

  • 對同屬性成員進行分組

  • 聚合成員用於分析和報告輸出

寫在開始:顯示層次結構(Explicit Hierarchy)即將在新版本中不再應用了。應該是2016。如果還在用之前的版本,並且有升級計劃,最好提前準備替代方案。

在實際工作中,用於權限設置是基於第一種作用的一個重要體現。例如給不同部門同事分配不同的權限,那我們就需要在公司級別建立部門整體的業務結構,然後基於Hierarchy進行權限設置。這裏有一點需要注意的是:一個層次結構必須是基於同一個模型(Model)的,不可誇模型創建層次結構。

基本介紹:

一個層次結構可以創建在一個或者多個實體(Entity)上,在MDS中有兩種不同類別的層次結構:

  • 顯示層次結構(Explicit Hierarchy):基於同一個實體(Entity)建立起來的層次結構。可以自由組織結構關係。每個葉子節點都可以作爲當前層次的技術點,不限制結構的層次,不限制層次的成員數量。

在創建顯示層次結構之前,必須在實體生啓用顯示結構,並命名。

         

  • 派生層次結構(Derived Hierarchy):基於同一個模型內部,不同實體之間的層次結構。用於描述實體與其屬性之間的關係。這種關係是已經存在於實體之間的,用domain引用的方式進行關聯的。

          

顯示層次結構 vs. 派生層次結構:

顯示層次結構

(Explicit   Hierarchy

派生層次結構

(Derived   Hierarchy

自定義結構

基於實體間domain引用的屬性關係創建

基於一個實體內部成員創建

基於同一個模型內所有實體創建

在一個實體內部,使用合併成員來對內部其他成員進行分組

用一個實體的葉節點成員去歸類另一個實體內的葉節點成員

允許任意層級數量

包含一致的層級數量

 

 

 

 

 

 

 

 

顯示層次結構(Explicit Hierarchy):

所有層級結構的成員都是在同一個實體內部的。並且這裏有兩種類型的顯示層次結構:

  • 強制顯示層次結構(Mandatory Explicit Hierarchy)

所有的子節點成員都必須包含在層次結構中。默認的情況下是,所有成員都在根節點下。可以自己再重新組織結構。

  • 非強制顯示層次結構(Non-Mandatory Explicit Hierarchy)

在此,就不過多介紹顯示層次結構了,下面詳細介紹派生層次結構。

派生層次結構(Derived Hierarchy):

首先需要介紹域引用(Domain-based),在創建實體的屬性時,有三種類型可選:free-form, Domain-based, File。

 

  • Free-form:由於四種類型可以定義:文本,數字,日期時間,地址鏈接。都是屬於基本的類型,根據實際情況選擇。

如果選擇Link方式,屬性值必須以http:// 或者https://開頭,否則的話,就會報錯

例如,輸入docs.microsoft.com/en-us/,然後發佈;

 

系統在InputStatus這一列提示屬性數據類型不正確。(光標放在相應的單元格上,就能看到錯誤提示的詳細信息)

 

再把屬性添加上https://之後,再次發佈,成功提交。

  

  • Domain-based:引用模型內,其他實體的Code值。來達到主數據統一的目的;同時也能防止用戶在錄入的時候出現誤差,可以通過這種方式進行規範化輸入和驗證。

例如在Subcategory實體中,建立Category屬性,引用的是Category實體中的Code屬性。

 

派生層次結構就是基於domain-based的屬性創建的。例如我們闖將了Category,Subcategory,Product三個實體如下:

  • Category

   

  • Subcategory

其中Category屬性,引用的是Category實體的Code屬性,也是Category的主鍵。

   

  • Product

其中Subcategory屬性,引用的是Subcategory實體的Code屬性,也是Subcategory的主鍵。

   

派生層次結構(Derived Hierarchy)創建和示例:

1. MDS主頁面,打開系統管理System Administration

   

2. 管理 - > 派生層次結構Derived Hierarchy
  

3. 點擊 來創建一個新的派生層次結構。

  

命名成HRC_Product,然後保存。

 

4. 在編輯界面,需要先從最底層節點開始,也就是最細粒度的層次開始。

   

我們需要在可用層級(Available levels)下依次把Product, Subcategory, Category實體點住,然後依次拖動到Current levels: HRC_Product上。MDS的操作這裏確實有個坑,開始的時候嘗試了很多方法,原來直接拖動就可以的。

   

系統只支持Code屬性的派生層次結構創建。

   

  

  

派生層次結構(Derived Hierarchy)修改和刪除

1. 同樣也是需要先打開派生層次結構界面

   

2. 點擊需要修改的HRC_Product。

按鈕的右邊,就出現了編輯按鈕和刪除按鈕

如果需要刪除的話,直接點擊刪除就可以。

如果需要編輯的話,點擊編輯按鈕。

  

 

 3. 編輯頁面與創建是同一個。可以重命名層級名字和設置層級是否顯示。

   

例如設置Subcategory不顯示,效果如圖;只是不顯示而已,在聚合的時候,還是會按照創建的層次結構進行聚合的。

 

這裏有兩點需要注意:

第一點是最頂層和最底層的結構是必須顯示的,也就是Category和Product是不允許隱藏的。

  

 第二點是如果需要刪除某一層級,必須先從最頂層的層級開始刪除,不支持直接刪除子層級。例如Subcateogy和Product是不允許直接刪除的。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章