在Master Data Services中, Hierarchy的作用主要用於:
對同屬性成員進行分組聚合成員用於分析和報告輸出寫在開始:顯示層次結構(Explicit Hierarchy)即將在新版本中不再應用了。 應該是2016。 如果還在用之前的版本, 並且有升級計畫, 最好提前準備替代方案。
在實際工作中, 用於許可權設置是基於第一種作用的一個重要體現。 例如給不同部門同事分配不同的許可權, 那我們就需要在公司級別建立部門整體的業務結構, 然後基於Hierarchy進行許可權設置。 這裡有一點需要注意的是:一個層次結構必須是基於同一個模型(Model)的, 不可誇模型創建層次結構。
基本介紹:
一個層次結構可以創建在一個或者多個實體(Entity)上, 在MDS中有兩種不同類別的層次結構:
顯示層次結構(Explicit Hierarchy):基於同一個實體(Entity)建立起來的層次結構。 可以自由組織結構關係。 每個葉子節點都可以作為當前層次的技術點, 不限制結構的層次, 不限制層次的成員數量。在創建顯示層次結構之前, 必須在實體生啟用顯示結構, 並命名。
顯示層次結構 vs. 派生層次結構:
顯示層次結構
(Explicit Hierarchy)
派生層次結構
(Derived Hierarchy)
自訂結構
基於實體間domain引用的屬性關係創建
基於一個實體內部成員創建
基於同一個模型內所有實體創建
在一個實體內部, 使用合併成員來對內部其他成員進行分組
用一個實體的葉節點成員去歸類另一個實體內的葉節點成員
允許任意層級數量
包含一致的層級數量
顯示層次結構(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是不允許直接刪除的。
派生層次結構就是基於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是不允許直接刪除的。