在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是不允許直接删除的。