使用單位測試來建立商業規則

建立單位測試

建立商業規則和對其進行除錯時,請務必記住 Oracle Essbase 計算是在相對的參照系統上運作,其中 Essbase 會在遍歷 FIX 陳述式中的區塊時計算所提供的語法。因此,建立商業規則或對其進行除錯的最簡單方式就是查看每個個別計算:挑選您要計算的組合,然後查看它是否可運作。這可讓您在商業規則無法運作時考量少量的值,讓您的商業規則快速計算。在單位測試計算成功之後,您可以使用較大的資料集來進行測試。

例如,假設是這種案例:您想要計算「銷售成本」百分比以識別各個產品的分布情況,針對所有月份、所有年度、所有案例及所有部門將計算的值寫入至名為 COS Product% 的新成員。在此案例中,您應該為 COS Product% 科目建立商業規則,然後挑選一項產品作為一個部門、一個月、一年及一個案例的單一單位測試。

您應該針對密集 Account 維度中的 COS Product% 成員計算的公式為 COS Product% = "Cost of Sales" as a Percentage of "Cost of Sales"->Total Product

然後您可以建立試算表,當中包含針對特定組合 (單位) 執行此計算時所需的所有個別資料值。為此,您可以選擇 "Sales Central" ->Jan->FY15->Forecast for the "Television".product (一個電腦配件)。

針對此範例,Television 的 Cost of Sales 值為 12,Total Product 加總為 100,這意謂著資料庫中唯一有的值就是針對 COS Account 之 9 個 Product 成員的值,"Sales Central" 全都是 January FY15 Forecast。因此,您從已清除且只有輸入 levl0 資料的資料庫開始著手,然後建立 Oracle Smart View for Office 特設查詢以擷取下列您所需的資料值。
為範例案例截取的資料

此組合或單位測試的公式為:COS Product% (D3) = = COS (D1) as a Percentage of Total Product COS (D2),這意謂著此試算表包含對此商業規則進行單位測試時所需的一切項目。

使用單位測試來建立商業規則

啟動商業規則以使用 COS 來計算 COS Product% = 成員 (公式的第一個部分)。查看目標行 (第 3 行) 與資料來源的差異。因此,針對 COS (個別 COS),請查看第 3 行與第 1 行中 C 欄 (分別識別 Television) 之間的差異。第 3 行與第 1 行之間成員的唯一差異在於 Account;我們只需將其指定如下:

COS Product% = COS %

請針對公式的第二個部分 (Total COS ) (在此案例中為 Product 最上層的 COS) 進行相同的操作。由於第 3 行與第 2 行之間有兩個差異:COS 與 Product,因此請一併在 Product 中指定位置以完成公式:

COS Product% = COS % ->Product;

此時,執行此規則將會擷取 #missing 而不是正確的總計,如下圖所示:
為範例案例截取的資料
您必須預先計算您所需的資料 (D2 儲存格中的 Total COS),才能夠取得正確的總計。

預先計算所需資料

若要計算所需資料以確保商業規則 COS Product% = COS % ->Product; 傳回正確的值,您就必須透過將規則修改如下,將 COS 包含在其中:
Fix (COS)
Agg (Product);
EndFix
COS Product% = COS % ->Product;