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