您的位置:首頁>遊戲>正文

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

派生層次結構就是基於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是不允許直接刪除的。

Next Article
喜欢就按个赞吧!!!
点击关闭提示