維度建構中的層次參考
層級是從由下而上階層定義,其中分支終端成員是層級 0,而接近維度名稱的每個步驟則以 1 遞增層級。從自下而上式來源建立 Essbase 維度時,請使用層級建置方法。如果來源資料包含空值,請使用處理層次空值建置方法。
在由下而上的資料來源中,每筆記錄都會定義維度的單一成員。定義會從有關成員的最特定資訊開始,並提供漸進式的更多一般資訊。一般記錄會指定新成員的名稱,然後指定其父項的名稱,然後指定其父項的父項名稱等等。
例如,在下圖的大綱中,最低層級成員位於 Product 維度分支的底部。
圖 14-3 產生與層次編號

若要使用維度建置工作建置大綱,您可以輸入下列由下而上的資料來源:
100-10-12 100-10 100
100-20-12 100-20 100通常,當最低層級成員由左至右排序時,您會使用層級建置方法來執行維度建置。層級 0 (分葉層級) 成員位於第一個欄位中,層級 1 成員位於第二個欄位中,依此類推。此組織與如何呈現產生參照 (由上而下) 的資料相反。
假設您有一個包含 Product 維度的立方體,而且想要使用下列由下而上、以 Tab 字元分隔的資料檔案,為 Product 維度建立更多產品成員。
600-10-11 600-10 600
600-20-10 600-20 600
600-20-18 600-20 600資料來源為「由下而上」,其中資料來源的第一個資料欄包含新的分葉層次成員 (600-10-11、600-20-10 和 600-20-18)。第二個資料欄包含新成員的父項 (600-10 和 600-20),第三個資料欄則包含父項的父項 (600)。
維度建置載入規則使用層級參照建置方法,將成員新增至 Product 維度。規則會指定資料來源中每個欄位的階層號碼與欄位類型。除非您的來源資料包含空值 (針對該使用案例,請參閱下方的「以空白欄位處理」),否則您也必須在規則的維度特性中選取層級建置方法。

Essbase 會從資料來源和規則建立下列階層:
圖 14-4 等級

處理空白欄位
當您從來源資料中的層代或層級參照建立維度時,可以選擇處理空值。空值處理會指定當 Essbase 在資料來源中遇到空白欄位時,應採取的動作。
附註:
空值處理選項僅適用於一般維度建置規則 (非以索引為基礎)。如果未啟用空值處理, Essbase 會拒絕所有具有空值的記錄,並將錯誤寫入錯誤日誌。
若要啟用空值處理,請在建立新維度建置規則時,在維度特性中選取其中一個空值處理建置方法。

如果您使用程序層級 null 建置方法,它會告知 Essbase 在處理來源資料中的層級參照時,預期會有空值,以避免發生錯誤。
範例
對於此維度建置範例,假設您要將不規則 / 非對稱階層 (如下所示) 新增至 Sample Basic 的新 Channel 維度。

資料來源由下而上,表示每個記錄中會先出現最低階層。因此,使用階層參照建置方法是合理的。不過,將需要空值處理指示。前三個來源資料記錄包含空值欄位,因為間接通路沒有位置資料。
Channel-04,,Indirect,"All Channels"
Channel-07,,Indirect,"All Channels"
Channel-24,,Indirect,"All Channels"
Channel-21,Outlet,Direct,"All Channels"
Channel-29,Mall,Direct,"All Channels"
Channel-31,Kiosk,Direct,"All Channels"您可以使用程序層級 null 建置方法,建立用來建置維度的規則,並避免與空值相關的錯誤。
若要建立此範例的規則,
-
使用 Essbase 伺服器檔案目錄中儲藏庫可用的應用程式工作簿,匯入 / 建立 Sample Basic 立方體。
-
建立以逗號分隔的資料檔案,如以下所示,將其命名為
levchannel.txt,然後上傳至 Sample Basic 立方體目錄。Channel-04,,Indirect,"All Channels" Channel-07,,Indirect,"All Channels" Channel-24,,Indirect,"All Channels" Channel-21,Outlet,Direct,"All Channels" Channel-29,Mall,Direct,"All Channels" Channel-31,Kiosk,Direct,"All Channels" -
在首頁上,開啟應用程式,然後開啟資料庫 (立方體)。
-
選取指令集頁籤,然後按一下規則。

-
按一下建立,然後選擇維度建置 (一般) 。

-
在「新增規則」對話方塊中,
-
輸入規則名稱,例如 levchannel 。
-
針對來源類型選取檔案,按一下目錄,然後導覽至
levchannel.txt。當您按一下目錄時,檔案預設會位於 Essbase 伺服器的立方體目錄中,因此您必須已經使用 Essbase Web 介面的檔案區段上傳該檔案。如果檔案位於您的從屬端機器上,請按一下檔案瀏覽器來尋找檔案。
-
將標頭記錄號碼和維度建置記錄號碼欄位保留為 0。表頭記錄不適用於維度建置。
-
按一下繼續。
-
維度建置規則隨即開啟,其中包含未定義的欄位,且預覽資料 (來自文字檔) 會填入欄位下方的方格。

-
-
由於這是新規則,因此尚無相關聯的維度。
- 按一下維度。

- 輸入新維度名稱通道,然後按一下新增。
- 按一下維度。
-
將建立方式變更為處理層級空值。

按一下「確定」。
-
按一下「欄位 1」中的維度選取器,然後選取管道。

-
將欄位 1 的類型選取器變更為層級。
-
將層次增至 0,因為管道 ID 位於層次 0。
-
在「欄位 2 - 4」中,現在應選取通路作為維度。將類型選取器變更為層級,然後將層級號碼標示為 1 代表欄位 2、 2 代表欄位 3,以及 3 代表欄位 4。

-
驗證規則,然後儲存並關閉。如果有任何錯誤,請參閱有效維度建置規則檔案的需求。
-
執行維度建置工作。
-
檢視大綱以確認已新增「通路」維度與預期的成員階層。
層次型維度建構的 Null 處理流程
如果啟用空值處理, Essbase 會以下列方式處理層級空值:
-
Null 層次欄位:如果 Essbase 預期為「層次」欄位,則 Essbase 會升級下一個「層次」欄位以取代遺漏的欄位。
範例
維度建置會將「間接」置於「層級 1」而非「層級 2」,因為「層級 1」的「欄位 2」包含空值。

-
次要欄位前的空值欄位:如果在次要欄位前直接出現空值,則 Essbase 會忽略次要欄位。(次要欄位選項為別名、屬性、公式、重複層次、重複層次別名、幣別名稱、幣別分類、屬性上階、UDA 及屬性維度的名稱。)
範例
維度建置將會忽略「欄位 3」中的別名,因為「欄位 2」包含空值。Essbase 會將「間接」置於第 1 級,而第 2 級的所有通道。

-
空值次要欄位:如果 Essbase 預期為次要欄位,則 Essbase 會忽略次要空值欄位並繼續載入 (與層級建置方法的行為相同)。
範例
維度建置將會忽略欄位 3 中的第一個別名,因為該欄位包含空值。成員 Outlet 將新增至不含任何別名的大綱。
