計算選取的元組

透過選取元組,您可以將計算焦點放在作用中的 Smart View 方格,將計算範圍限制在立方體中特定的資料截塊。

本指南中的下列區段描述元組計算:

如需在計算命令檔中採用 @GRIDTUPLES 的語法,請參閱 FIX…ENDFIX

元組計算的使用案例

透過選取元組,您可以將計算焦點放在作用中的 Smart View 方格,將計算範圍限制在立方體中特定部分的資料。

選擇元組有助於最佳化跨維度的非對稱方格計算,以避免過度計算。

Essbase 計算元組與 MDX 查詢中使用的元組不同。計算效能與立方體大小主要取決於資料庫中的區塊數目 (指定特定的區塊大小)。因此,只會針對稀疏成員組合指定計算元組。此外,為了方便撰寫計算命令檔,一個計算元組設定可以包括單一稀疏維度的多個成員。例如,若您指定 ("New York", "California", "Actual", "Cola") 作為計算元組,則會計算下列儲存格交集:

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

請考量下列對稱方格。此為對稱方格,因為方格中每項產品都有相同的市場與案例 (Actual)。

對稱方格,內含 Cola 及 Diet Cola 5 個市場的 Actual、Jan 值

以下為不對稱方格,因為方格中 Diet Cola 這項產品的市場數少於 Cola 產品的市場數。

不對稱方格,內含 Cola 5 個市場的 Actual、Jan 值,但 Diet Cola 只有 2 個市場的 Actual、Jan 值

當 FIX 敘述句或 Smart View 方格檢視點 (POV) 包含一個以上的維度時,預設計算範圍會計算 FIX 或方格中跨產品 (所有可能組合) 的成員。也就是說,其產品與市場組合取自於方格的 POV 導向計算,將計算以下所有資料列成員組合:

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"

這有可能產生超乎所需的計算活動。如果您只要計算方格中顯示的組合,可以指定要計算的元組而縮小計算範圍。計算元組還可減少計算時間和縮減立方體大小。

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"

瞭解元組式計算

計算元組是一種表示成員資料截塊的方法 (從二或多個稀疏維度),以用於計算。

有效的計算元組範例:

  • ("Diet Cola", "New York")
  • ("Diet Cola", "Cola", Florida)
  • (Cola, "New Hampshire")

當您撰寫 MDX 表示式時,應注意套用於 MDX 的以下幾項元組限制:

  • 一個 MDX 元組只能包含每個維度的單一成員
  • 一個 MDX 集中的所有元組都必須以相同的順序呈現相同的維度

不過,如果您選取的是計算命令檔中的元組,這些要求會為了方便起見而較為寬鬆。您可以自由撰寫元組表示式,而元組會描述成員清單,如以下元組所示:(@Children(East), Cola)

選取元組進行檢視點計算

選取元組的簡便方法就是將它們明確插入計算命令檔中,當作 FIX 敘述句內的清單。

請記得 FIX 敘述句的格式如下:

FIX (fixMbrs)
COMMANDS ;
ENDFIX

下面的 FIX 敘述句中,命令區塊開頭的前面指定了兩個元組。這兩個元組以大括弧 ({ }) 括住,分隔成一組,此為元組集合。

FIX({
  (@Children(East), Cola),
  ("New York", Florida, "Diet Cola")
  })
Sales (Sales = Sales + 10;);
ENDFIX

另一種方法是透過相關資訊環境,根據計算時期 Smart View 方格 POV 中存在的成員來選取元組。在計算命令檔中,將 @GRIDTUPLES 函數當作引數提供給 FIX,即可利用此方法選取元組。

FIX ({@GRIDTUPLES(Product, Market)})
   Sales (Sales = Sales + 10;);
ENDFIX

若是從 Smart View 針對下面的方格執行此計算命令檔,則系統只會計算顯示的產品與市場組合。例如,不會對 "Diet Cola"->Massachusetts 進行計算,因為它並未明確顯示在方格中。請注意,即使方格中只顯示 Actual,系統還是會計算全部的案例 (此範例立方體中的第三個稀疏維度)。這是因為 Scenario 維度不是計算命令檔中 GRIDTUPLES 敘述句的一部分。

不對稱方格,內含 Cola 5 個市場的 Actual、Jan 值,但 Diet Cola 只有 2 個市場的 Actual、Jan 值

不論是使用明確的元組清單,還是使用 @GRIDTUPLES 函數來選取元組,選取元組只適用於 FIX…ENDFIX 計算命令的相關資訊環境。以下為擴充的 FIX 敘述句語法以選取元組:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - 以逗號區隔的元組組合。
  • dimensionList - 至少有兩個稀疏維度 (其成員來自於作用中的 Smart View 方格) 用來定義計算區域。(在計算命令檔中,您只能使用稀疏維度以定義元組。)
  • fixMbrs - 一個成員或一份成員清單。

縮小計算範圍的元組選擇範例

使用 Smart View 方格和計算命令檔 FIX 敘述句時,您可以根據方格檢視點 (POV) 計算選取的成員元組。或者,您也可以在 FIX 敘述句中明確輸入元組組合,移除特定 Smart View 方格的相依性以定義計算範圍。

計算選取的元組可協助您有效地使用計算命令檔與 Smart View 方格中的不對稱區域。

參考下列範例:

  • 未選擇任何元組 - 根據目前的 Smart View 方格檢視點 (POV) 以預設方式計算。這項計算不限任何特定元組。
  • 選擇具名稀疏維度 - 在計算命令檔中計算兩個或多個具名稀疏維度的元組。這項計算只限 Smart View 方格中的元組維度成員。
  • 選擇相關資訊環境稀疏維度 - 計算執行時期所選稀疏維度中的元組。這項計算只限 Smart View 方格中的元組維度成員。

若要嘗試這些範例,請從 Essbase Web 介面檔案區域中 gallery 資料夾的 Technical > Calc 區段,下載 CalcTuple_Tuple.xlsx 工作簿樣板。請參考工作簿中的 README 工作表,以取得相關指示。

未選擇任何元組

下列計算命令檔示範沒有選取元組情況下的預設計算行為,將計算 Smart View 方格中 Product 和 Market 維度成員的所有產品。

藉由使用 SET RUNTIMESUBVARS 區塊定義的兩個程式實際執行替代變數 (RTSV),計算限制為從 Smart View 執行計算時方格中存在的 Product 和 Market 檢視點。

SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
   Marketing = Marketing +1;
);
ENDFIX

選擇具名稀疏維度

使用 @GRIDTUPLES 函數選取 Product 和 Market 維度的元組時,此計算命令檔只計算這兩個維度的元組,將計算範圍限制成從 Smart View 執行計算時存在於 Smart View 方格中的成員。

FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
   Marketing = Marketing + 1;
);
ENDFIX

透過 FIX 方式僅限定元組中具名的稀疏維度,此計算包含的區塊數目遠少於預設計算所含的區塊數目。不過,FIX 中未提及的所有維度成員 (Year, Scenario) 都由此計算命令檔計算。

選擇相關資訊環境稀疏維度

使用 @GRIDTUPLES 函數和程式實際執行替代變數時,此計算命令檔會根據 RTSV 提示中的稀疏維度選擇項目,只計算從方格中選取的元組。

程式實際執行替代變數 &DimSelections (定義於 SET RUNTIMESUBVARS 區塊中) 將計算範圍限制為立方體的稀疏維度 (不包括 Scenario)。FIX 敘述句中使用的 @GRIDTUPLES 函數會呼叫此變數,限制所計算的交集數目。

SET RUNTIMESUBVARS
            {
            DimSelections = "Version", "Site", "Entity", "Product", "Market"
            <RTSV_HINT><svLaunch>
            <description>List two or more sparse dimensions used for forming calculation tuples:</description>
            <type>string</type>
            </svLaunch></RTSV_HINT>;
            };
            FIX (
            {@GRIDTUPLES(&DimSelections)}
            )
            Marketing(
            Marketing = Marketing + 1;
            );
            ENDFIX
        

此計算包含的區塊數目比前一個範例少,這是因為在此案例中,元組定義擴及的稀疏維度數目超過 Product->Market。

若要嘗試這些範例,請從 Essbase Web 介面檔案區域中 gallery 資料夾的「Technical > Calc」區段,下載 CalcTuple_Tuple.xlsx 工作簿樣板。請參考工作簿中的 README 工作表,以取得相關指示。