Hati-hati Menggunakan Fasilitas "Save As" Pada PUC

Pentaho User Console (PUC) pada BI Server merupakan aplikasi web yang sangat baik karena memungkinkan kita dengan mudah melakukan navigasi dan eksekusi menu-menu solusi Pentaho. 


Salah satu diantara kemudahan tersebut adalah kemampuan menyimpan status laporan analisis pivot pada titik analisis tertentu. Ini tentunya membuat kita tidak perlu mengulangi navigasi member dimensi dan measure yang kita perlukan.

Namun ternyata kita perlu berhati-hati terhadap fasilitas ini disebabkan perintah MDX yang dihasilkannya. Berikut adalah gambar contoh dari salah satu menu BI Server, "Quadrant Slice and Dice" yang merupakan tipe analisis. Perhatikan juga MDX yang membentuk tampilan ini.



MDX

with member [Measures].[Variance Percent] as '([Measures].[Variance] / [Measures].[Budget])', format_string = IIf(((([Measures].[Variance] / [Measures].[Budget]) * 100.0) > 2.0), "|#.00%|style='green'", IIf(((([Measures].[Variance] / [Measures].[Budget]) * 100.0) < 0.0), "|#.00%|style='red'", "#.00%"))

select NON EMPTY {[Measures].[Actual], [Measures].[Budget], [Measures].[Variance], [Measures].[Variance Percent]} ON COLUMNS,
  NON EMPTY {([Region].[All Regions], [Department].[All Departments], [Positions].[All Positions])} ON ROWS
from [Quadrant Analysis]


Kemudian kalau kita klik tampilan navigasi sehingga mendapatkan hasil tampilan berikut :


Dan klik tombol MDX untuk melihat query yang menghasilkan tampilan ini :

MDX

with member [Measures].[Variance Percent] as '([Measures].[Variance] / [Measures].[Budget])', format_string = IIf(((([Measures].[Variance] / [Measures].[Budget]) * 100.0) > 2.0), "|#.00%|style='green'", IIf(((([Measures].[Variance] / [Measures].[Budget]) * 100.0) < 0.0), "|#.00%|style='red'", "#.00%"))
select NON EMPTY {[Measures].[Actual], [Measures].[Budget], [Measures].[Variance], [Measures].[Variance Percent]} ON COLUMNS,
  NON EMPTY Union(Union(Union(Union(Union(Union(Union(Crossjoin({[Region].[All Regions]}, {([Department].[All Departments], [Positions].[All Positions])}), Crossjoin({[Region].[All Regions]}, Crossjoin({[Department].[All Departments].[Executive Management]}, {[Positions].[All Positions], [Positions].[All Positions].[CEO], [Positions].[All Positions].[SVP Partnerships], [Positions].[All Positions].[SVP Strategic Development], [Positions].[All Positions].[SVP WW Operations]}))), Crossjoin({[Region].[All Regions]}, Crossjoin({[Department].[All Departments].[Finance]}, {[Positions].[All Positions], [Positions].[All Positions].[Administrative Assistant], [Positions].[All Positions].[CFO], [Positions].[All Positions].[Controller], [Positions].[All Positions].[IS], [Positions].[All Positions].[Payroll]}))), Crossjoin({[Region].[All Regions]}, Crossjoin({[Department].[All Departments].[Human Resource]}, {[Positions].[All Positions], [Positions].[All Positions].[Administration], [Positions].[All Positions].[EOE], [Positions].[All Positions].[HR Generalists], [Positions].[All Positions].[HR Training], [Positions].[All Positions].[Sexual Harassment], [Positions].[All Positions].[SVP HR]}))), Crossjoin({[Region].[All Regions]}, Crossjoin({[Department].[All Departments].[Marketing & Communication]}, {[Positions].[All Positions], [Positions].[All Positions].[Analyst Relations], [Positions].[All Positions].[CMO], [Positions].[All Positions].[Graphics], [Positions].[All Positions].[Press Relations], [Positions].[All Positions].[Product Marketing Mgr], [Positions].[All Positions].[Writer]}))), Crossjoin({[Region].[All Regions]}, Crossjoin({[Department].[All Departments].[Product Development]}, {[Positions].[All Positions], [Positions].[All Positions].[CTO], [Positions].[All Positions].[Engineer], [Positions].[All Positions].[QA Engineer], [Positions].[All Positions].[QA Manager], [Positions].[All Positions].[Senior Engineer], [Positions].[All Positions].[VP Engineering]}))), Crossjoin({[Region].[All Regions]}, Crossjoin({[Department].[All Departments].[Professional Services]}, {[Positions].[All Positions], [Positions].[All Positions].[Senior Consultant], [Positions].[All Positions].[Services Mgr], [Positions].[All Positions].[Staff Consultant], [Positions].[All Positions].[SVP Services], [Positions].[All Positions].[Trainer]}))), Crossjoin({[Region].[All Regions]}, Crossjoin({[Department].[All Departments].[Sales]}, {[Positions].[All Positions], [Positions].[All Positions].[Account Executive], [Positions].[All Positions].[District Manager], [Positions].[All Positions].[Pre-Sales], [Positions].[All Positions].[Sales Rep], [Positions].[All Positions].[Senior Sales Rep]}))) ON ROWS
from [Quadrant Analysis]


Terlihat semua member dari positions untuk semua department termasuk departemen Executive Management di-"hard code" di dalam MDX tersebut (CEO, SVP Partnerships, dll). Nah, bagaimana kalau terjadi penambahan posisi pada departemen tersebut ? MDX tersebut tidak akan mengakomasinya.

Oleh sebab itu berhati-hatilah dalam penggunaan fitur penyimpanan view analisis dari Pentaho User Console ini.  Tetapi jika sudah terlanjur menyimpannya. Segera check cube browser apabila hasil summary tidak sama dengan hasil dari member drill down.
Comments