維度建構中的層代參考

佔用通用分支的 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

通常,當最低層級成員由右至左排序時,您會使用層代建置方法來執行維度建置,如上所示。

您可以使用下列規則,使用層代參考來建立維度。規則會指定資料來源中每個欄位的產生號碼。除非您的來源資料包含空值 (針對該使用案例,請參閱下方的「以空白欄位處理」),否則您也必須在規則的維度特性中選取層代建置方法。

用於產生建置的規則檔案。欄位 1:產品,第 2 代具名類別。欄位 2:產品,第 3 代名為產品 SKU。欄位 3:產品,第 4 代指定促銷

Essbase 會從資料來源和規則建立下列階層:

圖 14-2 世代參考


此圖像顯示產生建置期間所建立的新成員。

處理空白欄位

當您從來源資料中的層代或層級參照建立維度時,可以選擇處理空值。空值處理會指定當 Essbase 在資料來源中遇到空白欄位時,應採取的動作。

附註:

空值處理選項僅適用於一般維度建置規則 (非以索引為基礎)。

如果未啟用空值處理, Essbase 會拒絕所有具有空值的記錄,並將錯誤寫入錯誤日誌。

若要啟用空值處理,請在建立新維度建置規則時,在維度特性中選取其中一個空值處理建置方法:「處理產生」為空值或「處理」層次為空值。


在新規則的維度特性中處理建置方法為空值

如果您使用程序產生空值建置方法,它會告知 Essbase 在處理來源資料中的產生參照時預期某些空值,以避免發生錯誤。

範例

對於此維度建置範例,假設您要將不規則 / 非對稱階層 (如下所示) 新增至 Sample Basic 的新 Channel 維度。


通道維度是層代 1。「所有通路」階層是第 2 代。第 3 代包含「間接」和「直接」成員。在第 4 代,間接具有通路 ID 作為下階。Direct 在第 4 代有「Outlet」、「Mall」和「Kiosk」地點成員,接著在第 5 代有通路 ID。間接管道 ID 位於第 4 代,而直接管道 ID 位於第 5 代,則使其成為不平衡 / 不規則的階層。

資料來源由上而下,表示較高的層次 (接近最上層維度成員) 會在每筆記錄中最先出現。因此,使用層代參考建置方法是合理的。不過,將需要空值處理指示。前三個來源資料記錄包含空值欄位,因為間接通路沒有位置資料。

"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

您可以使用處理產生空值建置方法,建立規則以建立維度並避免與空值相關的錯誤。

若要建立此範例的規則,

  1. 使用 Essbase 伺服器檔案目錄中儲藏庫可用的應用程式工作簿,匯入 / 建立 Sample Basic 立方體。

  2. 建立以逗號分隔的資料檔案,如以下所示,將其命名為 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
    
  3. 在應用程式頁面中,依序開啟應用程式和資料庫 (立方體)。

  4. 選取指令集頁籤,然後按一下規則。


    已選取「指令碼」頁籤,並在 Essbase Web 介面中反白「規則」方磚。

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


    在資料庫指令碼對話方塊中,會按下「建立」按鈕並選取「維度建置 (一般)」選項

  6. 在「新增規則」對話方塊中,

    1. 輸入規則名稱,例如 genchannel 。

    2. 針對來源類型選取檔案,按一下目錄,然後導覽至 genchannel.txt。

      當您按一下目錄時,檔案預設會位於 Essbase 伺服器的立方體目錄中,因此您必須已經使用 Essbase Web 介面的檔案區段上傳該檔案。如果檔案位於您的從屬端機器上,請按一下檔案瀏覽器來尋找檔案。

    3. 將標頭記錄號碼和維度建置記錄號碼欄位保留為 0。表頭記錄不適用於維度建置。

    4. 按一下繼續。

    5. 維度建置規則隨即開啟,其中包含未定義的欄位,且預覽資料 (來自文字檔) 會植入欄位下方的方格。
      新規則 "genchannel" 的維度建置規則編輯器的影像,其中未定義的欄位 1 到 4 為等待填入的中繼資料資料欄。每個欄位下都是從來源資料檔匯入的資料值。

  7. 由於這是新規則,因此尚無相關聯的維度。

    1. 按一下維度。
      規則編輯器中的維度按鈕

    2. 輸入新維度名稱通道,然後按一下新增。
  8. 現在您需要定義建置方法,並檢查其他維度建置作業指示。按一下通道連結以編輯維度特性。

  9. 將建立方式變更為產生處理空值。


    維度建置規則編輯器中「編輯維度」視窗的圖像,其中已選取「程序產生」空值。

    按一下「確定」。

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


    維度建置規則編輯器中已選取「通路」維度的欄位 1 影像。

  11. 將欄位 1 的類型選取器變更為層代。

  12. 將層代遞增至 2,因為「所有通路」階層成員位於層級 2。層代 1 成員永遠是維度名稱;在此例中為「通道」。

  13. 在「欄位 2 - 4」中,現在應選取通路作為維度。將類型選取器變更為層代,然後將層代號碼標示為 3 代表欄位 2、 4 代表欄位 3,以及 5 代表欄位 4。


    此圖像顯示使用「程序」產生空值建置方法,建立具有不同階層之「通道」維度的規則。欄位 1 定義為「通道」、「層代」、「2」,且包含「所有通道」。欄位 2 定義為「通路」、「產生」、「3」,且包含三筆記錄的「間接」,三筆記錄則包含「直接」。欄位 3 定義為「通路」、「世代」、「4」,且包含三個空值欄位與三個地點欄位 (Outlet、Mall 與 Kiosk)。欄位 4 定義為通路、層代、5,且包含通路 ID。

  14. 驗證規則,然後儲存並關閉。如果有任何錯誤,請參閱有效維度建置規則檔案的需求。

  15. 執行維度建置工作。

  16. 檢視大綱以確認已新增「通路」維度與預期的成員階層。

產生型維度建置的 Null 處理流程

如果啟用空值處理, Essbase 會以下列方式產生空值:

  • 空值產生欄位:如果在 Essbase 預期為「產生」欄位時發生空值,則 Essbase 會升級下一個「產生」欄位以取代遺漏的欄位。

    範例

    維度建置會將通路 ID 升級為「第 4 代」而非「第 5 代」,因為「第 4 代」包含空值。


    欄位 1 為通路,第 2 代包含所有通路。欄位 2 為通路,第 3 代包含間接。欄位 3 為通路,第 4 代包含空值。欄位 4 為通路,第 5 代包含通路 ID。

  • 次要欄位前的空值欄位:如果在次要欄位前直接出現空值,則 Essbase 會忽略次要欄位。(次要欄位類型為別名、屬性、公式、重複產生、重複產生別名、幣別名稱、幣別類目、屬性上階、UDA 及屬性維度的名稱。)

    範例

    維度建置會忽略欄位 4 中的別名,因為「層代 4」包含空值,並將通道 ID 升級為「層代 4」,而非「層代 5」。


    欄位 1 為通路,第 2 代包含所有通路。欄位 2 為通路,第 3 代包含間接。欄位 3 為通路,第 4 代包含空值。欄位 4 是包含「目錄」的「通道」、「別名」。欄位 5 為通路,第 5 代包含通路 ID。

  • 空值次要欄位:如果 Essbase 預期為次要欄位,則 Essbase 會忽略次要空值欄位並繼續載入 (與層代建置方法的行為相同)。

    範例

    維度建置會忽略「欄位 4」中的別名,因為該欄位包含空值。成員 Outlet 會新增至不含任何別名的大綱。


    欄位 1 為通路,第 2 代包含所有通路。欄位 2 為通路,第 3 代包含直接。欄位 3 為通路,第 4 代包含暢貨中心。欄位 4 為通路別名,包含空值。欄位 5 為通路,第 5 代包含通路 ID。