SQL Server Indonesia User Groups Community November 2008 - Posts - Cahyo drop in {here}

SQL Server Indonesia User Groups Community

SQL Server Indonesia User Groups Community
Welcome to SQL Server Indonesia User Groups Community Sign in | Join | Help
in Search

Cahyo drop in {here}

SQL as breakfast, BI for lunch and dinner with MDX

November 2008 - Posts

  • SSAS - Implementasi ValueType pada DimAccount

    Coba anda perhatikan Kolom-kolom DimAccount dari AdventureWorksDW berikut:

        [AccountKey] [int] IDENTITY(1,1) NOT NULL,
        [ParentAccountKey] [int] NULL,
        [AccountCodeAlternateKey] [int] NULL,
        [ParentAccountCodeAlternateKey] [int] NULL,
        [AccountDescription] [nvarchar](50) NULL,
        [AccountType] [nvarchar](50) NULL,
        [Operator] [nvarchar](50) NULL,
        [CustomMembers] [nvarchar](300) NULL,
        [ValueType] [nvarchar](50) NULL,
        [CustomMemberOptions] [nvarchar](200) NULL,
     

    Disana terdapat kolom valuetype yang menurut persepsi saya :D digunakan untuk menentukan format value pada suatu account.

    Sudah beberapa minggu saya googling untuk  mencari contoh implementasi/penggunaan kolom ini pada SSAS dan sialnya gak ketemu-ketemu :(. Alhamdullilah karena petunjuk dari yg di atas akhirnya saya menemukan sendiri cara menggunakannya :)

     Masalahnya adalah dimensi account ini punya 3 macam value type dengan 3 format yang berbeda:

    1. Currency ("#,#.00")
    2. Unit ("#")
    3. Percent ("Percent")

    Jadi ada account yang sifat datanya uang,unit dan percent. Jika kita tidak melakukan sesuatu untuk value type di SSAS pastilah ketika dibrowse datanya maka yang muncul adalah format sesuai dengan measure account tersebut.Jika format measurenya "Currency" ya semua account munculnya berformat "Currency".
    Tentunya hal ini akan fatal untuk user karena jika melihat data percent akan muncul nilai nol koma sekian dan tidak ada tanda percent.

    Untuk itulah kita memerlukan sedikit :) script untuk mengimplementasikan kolom value type ini

    Berikut adalah langkah2 untuk peimplementasiannya:

    1. pastikan anda sudah menambahkan atribut value type pada DimAccount.dim pada solusi SSAS dan set property AttributeHierarchyVisible ke false supaya tidak kelihatan
    2. kita set properti visible dari measure yang akan diformat ke false. misal nama measurenya [measure].[real ori]
    3. membuat calculated measure pada cube. karena nama measure asli [measure].[real ori] kita bisa memberi nama calculated measure ini [measure].[real]. berikut script calculated measurenya:
    CREATE MEMBER CURRENTCUBE.[MEASURES].[real]
     AS [measure].[real ori],
    FORMAT_STRING = case
    when [Account Operating].[Account Operating].Properties( "Value Type" )="Percent" then "Percent"
    when [Account Operating].[Account Operating].Properties( "Value Type" )="Unit" then "#"
    else "#,#.00" --ini tipenya currency
    end,
    VISIBLE = 1  ;

    Posted Nov 05 2008, 08:10 AM by cahyo with 2 comment(s)
    Filed under: ,
More Posts
Powered by Community Server (Commercial Edition), by Telligent Systems