維度建構中的層代參考
佔用通用分支的 Essbase 維度成員位於同一層代中。第 1 代是維度名稱,每個較低層級都會遞增層代編號。從由上而下的來源建立維度時,請使用層代建置方法。如果來源資料包含空值,請使用處理產生空值建置方法。
由上而下的資料來源會從最高層次到最低層次從左到右組織。每筆記錄以最一般的資訊開始,並進展至最特定的資訊。新成員的名稱位於記錄結尾。使用由上而下的資料來源時,請使用層代參照建置方法。在規則檔案中,指定資料來源中每個欄位的層代編號與欄位類型。
Essbase 會根據維度內成員的階層位置,對維度內的成員進行編號。這些數字稱為產生參照。維度一律為層代 1。維度中相同分支的所有成員都稱為層代。相對於維度,層代會根據其位置由上而下編號;亦即相對於維度 1。
例如,如下圖所示,Product 維度為層代 1。產品有 100 個成員,其層代為 2。100 有成員,例如 100-10,其為層代 3。若要使用產生參照建置方法,請在規則檔案中指定產生參照號碼。
圖 14-1 世代

假設您有一個包含 Product 維度的立方體。維度為第 1 代,因此 Product 為第 1 代。假設您要使用下列由上而下、以 Tab 字元分隔的資料檔案來建立 Product 維度:
500 500-10 500-10-10
500 500-10 500-10-20
500 500-20 500-20-12
500 500-20 500-20-15
500 500-20 500-20-20
通常,當最低層級成員由右至左排序時,您會使用層代建置方法來執行維度建置,如上所示。
您可以使用下列規則,使用層代參考來建立維度。規則會指定資料來源中每個欄位的產生號碼。除非您的來源資料包含空值 (針對該使用案例,請參閱下方的「以空白欄位處理」),否則您也必須在規則的維度特性中選取層代建置方法。

Essbase 會從資料來源和規則建立下列階層:
圖 14-2 世代參考

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

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

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

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

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

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

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

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

-
將欄位 1 的類型選取器變更為層代。
-
將層代遞增至 2,因為「所有通路」階層成員位於層級 2。層代 1 成員永遠是維度名稱;在此例中為「通道」。
-
在「欄位 2 - 4」中,現在應選取通路作為維度。將類型選取器變更為層代,然後將層代號碼標示為 3 代表欄位 2、 4 代表欄位 3,以及 5 代表欄位 4。

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

-
次要欄位前的空值欄位:如果在次要欄位前直接出現空值,則 Essbase 會忽略次要欄位。(次要欄位類型為別名、屬性、公式、重複產生、重複產生別名、幣別名稱、幣別類目、屬性上階、UDA 及屬性維度的名稱。)
範例
維度建置會忽略欄位 4 中的別名,因為「層代 4」包含空值,並將通道 ID 升級為「層代 4」,而非「層代 5」。

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