成員如何儲存資料值的選項
您可以決定 Essbase 儲存成員資料值的方式與時機。例如,您可以讓 Essbase 僅在使用者要求成員時才計算該成員的值,然後捨棄該資料值。
每個可用成員儲存特性的描述如下。
表格 5-4 選擇儲存特性
| 儲存財產 | 行為 |
|---|---|
|
Store - 儲存庫 |
以成員儲存資料值。 |
|
動態計算 |
除非使用者要求資料值,然後捨棄資料值,否則不會計算資料值。 |
|
僅限標籤 |
「僅標籤」成員用於群組或標示其他成員。資料庫中不會儲存「僅標籤」成員的資料。 |
|
共用成員 |
在成員之間共用值。例如,在 Sample Basic 資料庫中,100-20 成員儲存在 100 父項之下,並在 Diet 父項下共用。 |
|
不共用 |
不允許以隱含方式共用成員。 標記為「永不共用」的成員只能明確共用。若要明確共用成員,請建立具有相同名稱的共用成員,並將其標記為共用。 |
動態計算成員
當成員為動態計算時,在使用者要求該成員之前, Essbase 不會計算該成員的值。在使用者檢視之後, Essbase 不會儲存該成員的值。
Essbase 會自動將屬性維度的成員標記為動態計算。您無法變更此設定。
另請參閱資料值的動態計算。
僅標籤成員
Essbase 中的僅標籤成員沒有相關資料。使用它們將成員分組,或簡化 Smart View 的導覽和報表。一般而言,您應該只為標籤成員提供「無合併」特性。
您無法將屬性與僅限標籤的成員建立關聯。如果您標記只有屬性關聯為標籤的基礎維度成員, Essbase 會移除屬性關聯並顯示警告訊息。
僅標籤成員的子代不能標記為「動態計算」。在下列範例中,驗證大綱時, Essbase 會發出錯誤訊息,指出 ChildB 不能僅標記為標籤:
ParentA = Label Only
ChildB = Label Only
DescendantC = Dynamic Calc將 DescendantC 標記為「儲存資料」可解決此問題。
共享會員
Essbase 共用成員可協助您在大綱中跨多個父項計算相同成員,這在項目屬於多個類別時非常有用。與共用成員關聯的資料值來自另一個名稱相同的大綱成員,稱為原型成員。
共用成員將指標儲存到原型成員中包含的資料,並且只儲存一次資料。若要將成員定義為共用,必須存在相同名稱的原型成員。例如,在 Sample.Basic 資料庫中,100 底下的 100-20 成員會儲存該成員的資料。飲食下的 100-20 成員指向該值。
共用成員通常用來計算多個父項的相同成員;例如,計算 100 和 Diet 父項中的 Diet Cola 成員。
使用共用成員可讓您在整個維度中重複使用成員。Essbase 只會儲存一次資料值,但會顯示在多個位置。只儲存一次資料值即可節省空間並提升處理效率。
共用成員的準則
Essbase 共用成員不得有子項、UDA、屬性或公式。它們必須與原型的維度相同,並以大綱順序進行後續追蹤。共用成員可以有唯一的別名,而且其名稱可以與其他成員相同。
請遵循下列準則,以避免建立共用成員時發生錯誤:
-
共用成員必須與其原型成員位於相同的維度。例如,Sample.Basic 資料庫中的兩個 100-20 成員都位於 Product 維度中。
-
原型成員必須在大綱順序中的共用成員之前。
-
共用成員不能有子項。
-
不限數目的共用成員可以有相同的名稱。
-
無法將 UDA 或公式指派給共用成員。
-
您可以為成員名稱重複的成員建立共用成員。
-
屬性不能與共用成員關聯。
-
如果帳戶特性已指派給共用成員,則這些帳戶特性的值會從原型成員取得,即使共用成員上的帳戶特性已變更。
-
別名可以指派給共用成員。
-
如果共用成員的別名是空的,Essbase 會使用儲存成員的別名。
-
如果您為共用成員指派別名,並且變更原型成員的別名,則共用成員的別名不會變更。
-
原型成員必須位於其共用成員之前。
-
避免將作為屬性計算一部分的原型與共用成員之間的複雜關係,或者計算可能會傳回非預期的結果。請參閱屬性計算和共用成員。
-
您無法將共用成員及其原型成員置於相同的父項之下。在重複的成員大綱中,同層級必須是唯一的。
-
在方格用戶端 (例如 Smart View) 中,共用成員可以輕易地與其原型成員區別,因為您可以指定以限定名稱顯示 (例如,[Parent].[Child])。共用成員可以使用限定名稱顯示,即使您尚未設定大綱來啟用重複的成員名稱。此外,您可以使用合格成員名稱來搜尋方格中的共用成員或使用成員選擇。
逐層往下檢視期間的共用成員擷取
在放大 (向下展開) 作業期間, Essbase 會擷取原型成員,而非共用成員 (若有的話)。縮小 (向上展開) 共用成員會擷取共用成員父項,而非原型。
Essbase 會在向下鑽研期間擷取共用成員,視其在試算表或方格用戶端中的位置而定。Essbase 會在擷取方格時遵循下列規則:
-
依預設擷取原型成員 (非其共用成員)。
-
先從試算表底部擷取。
-
如果共用成員的父系是其中一個共用成員的原型成員的同層級,則會擷取原型成員。
單一維度的共用成員範例
如果您根據 Sample.Basic 大綱中維度 East 的原型成員建立所有共用成員的測試維度,則大綱與圖 5-1 中顯示的大綱類似:
圖 5-1 單一維度的共用成員

縮小共用成員會傳回共用父項,而不是原型成員。例如,如果您在 Florida 上縮小, Essbase 會傳回共用父項 test。
如果您只擷取 East 的子項,所有結果都是來自原型成員,因為 Essbase 預設會擷取原型成員。
不過,如果您在試算表中以測試的子項擷取資料, Essbase 會擷取共用成員:
New York
Massachusetts
Florida
Connecticut
New Hampshire
test如果您將 test 移到最後兩個子項上方, Essbase 會擷取前三個子項作為共用成員,而後兩個則作為原型成員。同樣地,如果您在清單中間插入不是共用成員同層級的成員 (例如,在 Florida 和 Connecticut 之間插入的 California),則 Essbase 只會擷取非同層級和父項之間的共用成員 (在此情況下,在 California 和 test 之間)。
使用交叉產生共用成員擷取的範例
您可以修改 Sample.Basic 大綱來建立其原型成員對等成員與其本身父項同階的共用成員,如圖 5-2 所示:
圖 5-2 擷取交叉產生共用成員

如果您以此順序建立含有共用成員的試算表, Essbase 會擷取所有共用成員,但它會擷取原型成員 West,而不是共用成員西部:
West
New York
Massachusetts
Connecticut
New Hampshire
testEssbase 會依此順序擷取成員,因為 test 是 west 的父項,以及與 West 對應之原型成員的同層級。
隱含共用成員
如果啟用隱含共用,父項成員會隱含地共用其單一子項成員 (只有一個子項成員時) 或其唯一的合併子項 (只有一個整合時,即具有 ~ 或 ^ 以外的運算子)。
這類父項是隱含的共用成員,除非:
- 他們有公式
- 它們設定為「永不共用」
- 未啟用隱含共用
預設不會啟用隱含共用。從 Essbase 21c 開始,您可以視需要使用 IMPLIED_SHARE_ON_CREATE 組態設定來啟用。
如果啟用隱含共用, Essbase 會在下列情況下假設 (或隱含) 共用成員關係:
-
父項只有一個子項。 在此情況下,父系和子系會包含相同的資料。Essbase 會忽略子項上的整合特性,並且只儲存一次資料,因此父項與子項具有隱含的共用關係。在下列範例中,父系 500 只有一個子系 500-10,因此父系共用該子系的值:
500 (+) 500-10 (+) -
父項只有一個合併至父項的子系。 如果父項有四個子項,但三個子項標示為沒有整合,則合併的父項和子項會包含相同的資料。Essbase 會忽略子項上的整合特性,並且只儲存一次資料,因此父項與子項具有隱含的共用關係。在下列範例中,父系 500 只有一個累加的子系 500-10。其他子項會標示為「無合併 (~)」,因此父項會隱含地共用 500-10 的值。
500 (+) 500-10 (+) 500-20 (~) 500-30 (~)
上述案例在父成員具有公式時不適用。
如果您不想以隱含方式共用成員,請將父項標示為「永不共用」,以便改為複製資料。