What Essbase Can't Do

Embed Size (px)

Citation preview

  • 8/8/2019 What Essbase Can't Do

    1/23

    WHAT ESSBASE DOESNT DO(TODAY)

    The Cubegeeks Toolkit

  • 8/8/2019 What Essbase Can't Do

    2/23

    Agenda Intro

    Data Management Cubegeeks Toolkit

    The Welds

    Object Versioning

    Currency

    ExternalizationNotifications

    Fake Data Generation

  • 8/8/2019 What Essbase Can't Do

    3/23

    Michael Bowen Sr. Mgmt.Consultant

    @ Rolta-TUSC13th Year with

    Hyperion Products

    3 Presentations atSolutions

    Microsoft Detour

    aka Cubegeek Hair

  • 8/8/2019 What Essbase Can't Do

    4/23

    Goals of Data Management Direct and manage the flow of data into the Hyperion

    applications

    Provide a mechanism for understanding the state of theHyperion application at any time.

    Provide the ability to recreate a particular data event.

    Integrate, synchronize and automate all Hyperion back-end processes with IT.

    Leverage best aspects of relational & multidimensional

    databases + scripting. Provide a logical framework for extending and enhancing

    Hyperion applications.

  • 8/8/2019 What Essbase Can't Do

    5/23

    Backend Functions: Two Cycles Data Management

    CycleData Registration

    Data Cleansing

    Data MovementData Processing

    (Essbase Cycle)

    Data ArchivingData Recovery

    Essbase Production

    CycleExport

    Clear

    BuildLoad

    Calc

    Report

  • 8/8/2019 What Essbase Can't Do

    6/23

    The Cubegeeks Toolkit SQL

    UltraEdit32 Blat / mailx

    Hashcalc Blogger

    Audacity Outlex / AppMgr

    Perl

    V5.8.8 Build 822 7Zip

    V4.32

    7za CLI

    PasswordSafe

    WS_FTP Procexp

  • 8/8/2019 What Essbase Can't Do

    7/23

    The Cubegeeks Backend ~/essbase/batch

    logs data

    Currentinbucket

    archive mdata

    scripts ex ort

  • 8/8/2019 What Essbase Can't Do

    8/23

    The Welds Versioning of Objects

    Externalization ofCurrency Conversion

    Backend Notifications

    Fake Data Generation

  • 8/8/2019 What Essbase Can't Do

    9/23

    Versioning Why?

    Development RollbackRecovery Pairing

    Data Run Enumeration

  • 8/8/2019 What Essbase Can't Do

    10/23

    Versioning What

    .ver fileVer.pl

    Version.pl

    Tools

    Perl

    back:Build 029

    20090522-125028

  • 8/8/2019 What Essbase Can't Do

    11/23

    Versioning Code Fragment# cd ${scrdir}

    system ("ver.pl back.ver");

    # get new build number

    # bnum=`head -1 ${appid}.ver$verfile = "back.ver";open (VF, "< $verfile");

    $ver = ;chop $ver;$x = substr($ver,-3);

    print "saw version $x\n";close VF;

    print OUTLOG "$t : $appid version $x \n";$fspec="back_build".$x."_objects_"."$env".".zip";

    $cmd = "7za a -tzip $fspec *.dat *.sql *.txt *.pl *.bat *.lst *.msh *.csv back.ver";print "executing $cmd\n";system ($cmd);

    $cmd = "move $fspec $expdir";system ($cmd);

  • 8/8/2019 What Essbase Can't Do

    12/23

    Notifications Why

    Nobody Subscribes,

    Everybody Asks Diagnostics

    What

    Logs Email

    Twitter

    Blog

    Tools Perl

    Blat

  • 8/8/2019 What Essbase Can't Do

    13/23

    Notifications Code Fragmentif (not -z $rejects)

    {

    print "rejects found.\n";

    print OUT "GL RUN $tline:REJECTS\n";

    #email notification

    $subject = '"GL RUN: Load Rejects"';

    $sendfile = $rejects;

    &notify ($sendfile, $subject);

    }

  • 8/8/2019 What Essbase Can't Do

    14/23

    Blat Callsub notify {

    local $outfile = $_[0];

    local $subject = $_[1];

    $rfile = "d:\\hyperion\\essbase\\batch\\scripts\\recip.lst";$sender = "michael.bowen";

    $senderpw = "amazon.com123";

    $cmd = "c:\\usr\\bin\\blat $outfile -tf $rfile -subject $subject -u$sender -pw $senderpw";

    system ($cmd);

    }

  • 8/8/2019 What Essbase Can't Do

    15/23

  • 8/8/2019 What Essbase Can't Do

    16/23

    Currency Externalization

    How

    SQL ServerPerl Code Generation

    Fetch & StoreVersion

    Translate

  • 8/8/2019 What Essbase Can't Do

    17/23

    Currency Code Fragment

    Generated SQL

    INSERT INTO [HRSource].[dbo].[FX]

    ([currency],[stamp], [year],[to_usd])

    VALUES ('AUD','FX:023:20090318-071501','2009',0.63836);

    INSERT INTO [HRSource].[dbo].[FX]

    ([currency],[stamp], [year],[to_usd])

    VALUES ('AUD','Now','2009',0.63836);

  • 8/8/2019 What Essbase Can't Do

    18/23

    Fake Data Generation Why

    OptimizationValidation

  • 8/8/2019 What Essbase Can't Do

    19/23

    Fake Data Tools

    PerlUltraEdit32

    Datgen.pl

    Pieces & Parts

    DatgenDim Files

    INX file

  • 8/8/2019 What Essbase Can't Do

    20/23

    Configuring INX Six Fields

    DimDim name

    Dim Count

    Curve TypePerm Flag

    File name

    One Measure

    dim0:"Costs":50:1:1:costs.txt

    dim1:"Teams":50:3:1:teams.txt

    dim2:"Parts":500:2:1:parts.txt

    dim3:"Options":3:3:1:options.txt

    dim4:"Scenario":3:3:1:scen.txt

  • 8/8/2019 What Essbase Can't Do

    21/23

    Sample Dim Files

    Options

    Base OptionOption AOption B

    Parts

    69-73484-1251A2160-269-54631-1250055-9

    1544400-33910031-1053910036-101UA538551-3

    65-44631-1OH6740281E32--O6347466087

  • 8/8/2019 What Essbase Can't Do

    22/23

    Code Fragment

    if ($ndims==5) {for ($i=0; $i

  • 8/8/2019 What Essbase Can't Do

    23/23

    Q&A