設計鑽研報表
如果您是 Essbase 資料庫管理員或更高版本,您可以建立鑽研報表定義,讓使用者能夠存取儲存在外部關聯式來源中的更多資料。設計因子包括資料欄對應、可鑽研區域,以及選擇性參數化 (如果您想要增加變數的彈性)。
設計鑽研報表的一般考量
鑽研報表會從外部來源系統或檔案提取資料,或連結至 Web 應用程式。若要建立鑽研報表定義,您必須具備「資料庫管理者」或更高的權限。在 Essbase Web 介面的資料庫「指令碼」區段中建立。
每個鑽研報表定義都必須包含一個資料欄對應與一個可鑽研區域。如果為鑽研報表提供外部來源資料連線的資料來源中有參數化查詢,您可以選擇性定義程式實際執行參數的對應。
附註:
如果鑽研報表的資料來源是連線至 Oracle Database,您可以勾選使用暫時表格選項,改進在 SQL “IN” 子句中有大量值的查詢效能。您也可以將鑽研報表設計為存取 Web URL。
定義鑽研報表的資料欄對應
Essbase 鑽研報表定義的資料欄對映部分會定義哪些外部來源資料欄應包含在報表中,哪些 Essbase 會將這些資料欄對映至這些資料欄,以及 (選擇性) 產生 / 層級篩選條件,指出要提供多少存取權。
若要深入瞭解欄對映,請參閱鑽研報表定義。
若要定義欄對映,
-
在首頁上,開啟應用程式並開啟立方體。
-
從左側面板中選取命令檔。
-
按一下鑽研報表。
-
按一下建立,然後從功能表中選取資料來源。
-
在名稱欄位中,新增報表的名稱。
-
在資料來源欄位中,選取您要使用的資料來源。
-
建立資料欄對應:
-
從外部來源選取要包含在報表中的資料欄。
-
選取您要讓每個資料欄對應的維度。
-
選取用於對應的篩選條件;例如「層級 0」、「層代」或「無」(用於維度對應)。

-
完成時,按一下可鑽研區域。若未定義區域,則無法儲存鑽研報表定義,如定義鑽研報表的可鑽研區域中所述。
-
定義鑽研報表的可鑽研區域
Essbase 鑽研報表定義的「可鑽研區域」部分,是您在 Essbase 立方體中指定一或多個區域 / 資料交集的位置,您可以從此處提供鑽研存取外部資料來源中可用的其他詳細資訊。
若要使用 Essbase Web 介面指定可鑽研區域,
-
完成鑽研報表的資料欄對應之後,請按一下可鑽研區域。
- 按一下並選擇下列其中一個方法:
- 按兩下空白列,然後使用計算語法定義區域:成員名稱與成員集函數。
- 按一下鉛筆圖示以開啟可鑽研區域選取器,選取要新增的成員,按一下滑鼠右鍵,然後從功能表選項中選擇以定義區域。

-
按一下儲存。系統會顯示一則訊息,指出是否已順利更新鑽研報表。

可鑽研區域範例
下列範例顯示 Smart View 中的可鑽研區域,以藍色標示。
範例 1
若要在 Market、Year、Scenario 維度和成員 Sales 頂端及 Product 維度的所有層級 1 成員定義可鑽研區域,請使用:
Market,Year,Scenario,Sales,@LEVMBRS(Product,1)
當您鑽研至 Smart View 工作表時,產生的方格看起來會像這樣:

範例 2
若要為 Market 的子代定義可鑽研區域,請使用:
@DESCENDANTS(Market)
當您鑽研至 Smart View 工作表時,產生的方格看起來會像這樣:

範例 3
若要為 Product 維度中層代 3 的成員及 Market、Year、Scenario 維度和成員 Sales 頂端定義可鑽研區域,請使用:
Market,Year,Scenario,Sales,@GENMBRS(Product,3)
當您鑽研至 Smart View 工作表時,產生的方格看起來會像這樣:

實作鑽研報表的參數
若要使鑽研報表更具彈性,您可以導入參數,讓 Essbase 能夠根據傳遞至 SQL 查詢的變數動態建立鑽研報表。
如果您是「資料庫管理員」或更高版本,可以在鑽研報表中實行參數化資料來源查詢。
先決條件:「應用程式管理員」或更高版本可讓您存取使用固定 (預設值) 值、替代變數或外部使用者定義函數作為參數的資料來源。
Essbase 會在程式實際執行時識別參數的值,將其目前值插入至 Essbase 在執行鑽研時所產生的查詢中。
在鑽研報表定義中,您可以視需要為程式實際執行參數新增維度、層代及層級對應。這可讓您根據目前的變數相關資訊環境進一步自訂鑽研報表的結果。
如果您希望 Essbase 根據變數動態建置鑽研報表,請依照此工作流程進行:
-
在基礎資料來源查詢中導入參數。這必須由應用程式管理人員或更高權限執行。
-
建立與資料來源相關聯的鑽研報表定義。
-
視需要在鑽研報表定義內為參數使用提供程式實際執行自訂值。以下提供一個範例。
-
執行鑽研報表與檢查平台日誌,以測試並驗證預期行為。
程式實際執行參數與使用者定義函數
以下範例使用案例是基於下列先決條件假設:
-
已在外部來源系統中定義 getMonths 使用者定義函數。此函數會傳回以逗號區隔的月份清單。
-
已使用會呼叫 getMonths 函數的查詢來定義用於鑽研報表定義的資料來源,如下:
select * from SampleBasic where month in (getMonths(?))
程式實際執行參數的層級 0 (遞迴) 對應
在鑽研報表定義中,當程式實際執行參數連結至 Year 的層級 0 時,
![鑽研報表定義的「程式實際執行參數」頁籤。參數:Param1。變數:已勾選。值:Sample.mnth。維度:Year。層代連結:Level0 [層級] 鑽研報表定義的「程式實際執行參數」頁籤。參數:Param1。變數:已勾選。值:Sample.mnth。維度:Year。層代連結:Level0 [層級]](img/drill-through-param-level0.jpg)
如果 Smart View 使用者鑽研 Year 維度的 Qtr1,則鑽研報表將會包含 Jan、Feb、Mar。如果 Smart View 使用者鑽研 Year,則鑽研報表會包含 Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec。
程式實際執行參數的層代對應
在鑽研報表定義中,當程式實際執行參數連結至 Year 的 Quarter 層代時,
![鑽研報表定義的「程式實際執行參數」頁籤。參數:Param1。變數:已勾選。值:Sample.mnth。維度:Year。層代連結:Quarter [層代] 鑽研報表定義的「程式實際執行參數」頁籤。參數:Param1。變數:已勾選。值:Sample.mnth。維度:Year。層代連結:Quarter [層代]](img/drill-through-param-quargen.jpg)
如果 Smart View 使用者鑽研 Year 維度成員,則鑽研報表將會包含 Qtr1、Qtr2、Qtr3、Qtr4。
附註:
設定與資料欄對應重疊之程式實際執行參數的維度/層代連結無效。在此情況下產生的查詢一律為空值集合。