Вы находитесь на странице: 1из 78

Workarounds for What the Essbase Developers Forgot!

Edward Roske eroske@interrel.com BLOG: Looksmarter.blogspot.com WEBSITE: www.interrel.com TWITTER: ERoske

About interRel
2008 Oracle Titan Award winner - EPM Solution of the year 18 presentations at Collaborate 2009, 14 presentations at Kaleidoscope, 6 at OpenWorld 2008 2008 Oracle Excellence Award winner with Pearson Education One of the fastest growing companies in the world (Inc. Mag., 08) We have two of the three Hyperion Oracle ACE Directors in the world Founding Hyperion Platinum Partner; now Oracle Certified Partner Focused exclusively on Oracle Hyperion EPM software Consulting Training Infrastructure and Installation Support Software sales
2

5 Hyperion Books Available:


Essbase (7): Complete Guide Essbase System 9: Complete Guide Essbase System 9: End User Guide Smart View 11: End User Guide Essbase 11: Admin Guide

eBooks available on Amazon Kindle

Coming Soon
Hyperion Planning for End Users (September) Hyperion Planning for Admins To order, check out www.lulu.com

Copyright 2007, Hyperion. All rights reserved.

Disclaimer
These slides represent the work and opinions of the presenter and do not constitute official positions of Oracle or any other organization. This material has not been peer reviewed and is presented here with the permission of the presenter. This material should not be reproduced without the written permission of interRel Consulting. We will send you a copy of the slides shortly after the presentation.

Agenda
Converting #Missing to Values in Excel Essbase Workarounds with Data Load & Dimension Build Rules Essbase Workarounds with Substitution Variables Planning Metadata Filters Drill Through to Planning using Studio Native Essbase Security Other Miscellaneous Tips (if we have time) Questions and Answers

Workarounds for Converting #Missing to Zeros in Excel

Excel Trick
If you try to do something like subtract #missing (or another non numeric value), you can get the silly #val in your calculated cell. To get around this, you can modify the formula. Just add N() around the cell references.

Excel Trick

=N(C2)

Result

Excel Trick
Now, what if we wanted to have Essbase return a numeric zero instead of a text zero We all know how to do the text zero right?

Simply go into the Add-In and under OPTIONS do this:

Excel Trick

Excel Trick
Problem is now when we do an Essbase RETRIEVE, our spreadsheet has a text zero where there was a #MISSING

Excel Trick
We want a numeric zero to be returned from Essbase This is easy! We simply go into the Add-In and under OPTIONS place parentheses around the zero like this:

Excel Trick

Excel Trick
Now we have numeric zeros in our spreadsheet

Excel Trick

Disclaimer This should not be used if you are sending data back to Essbase

It will cause the database size to grow since you would now be storing data instead of #MISSING

Workarounds for Data Load & Dimension Build Rules

Rules Quotation Marks


Watch out for in data files The load will break the data into multiple columns if it encounters unbalanced quotes
Like if you had a product called 12 diamond necklace

Rules will also remove paired quotes around words New York will be evaluated as New York

Rules Quotation Marks cont.


What if youre using a dim build rule to add a formula like this:
=New York + Oregon;

Putting that in a column will not work. The key is getting Essbase to treat the quotes as characters Do this by putting a \ before each quote:
=\New York\ + Oregon;

Rules Direct Editing


Its possible to open a rule in an editor that preserves all characters
Hexadecimal editors Wordpad.exe

Heres Sample.Basic.Act1 rule in Wordpad:

Rules Direct Editing cont.


Note that most of it is gibberish But also notice that plain text in the original rule comes across as plain text in the editor

Rules Direct Editing cont.


If you keep the characters the same, you can change the RUL file in the editor, save it, and run it. This rule has Actual in the header since all data in the file is actual. What if we want it to load budgets instead? Lets change Actual to Budget at the end of line 3

Free-form Data Loading


Free-form data loading is an easy-to-use process if the following characteristics are recognized:
Data file is loaded as is without any explicit description of its contents Data must be in natural order for Essbase Any valid dimension/member/alias name combination is acceptable Data is read according to the member names Essbase finds

Free-form data load is optimized for fast loading

Free-form File Requirements


Each data point tagged with a member from each dimension Data scanned from top of file and from left to right Each item separated Some types of member names or aliases with double quotes Members from same dimension in same column or row Members from different dimensions together only on page header

Free-form File Requirements


Markets Products Scenario Year Measures

AASt AASt AASt AASt AASt AASt AASt AASt AASt

Cola Cola Cola Cola Cola Cola Cola Cola Cola

Actual Actual Actual Actual Actual Actual Actual Actual Actual

Jan Feb Mar Apr May Jun Jan Feb Mar

Sales Sales Sales Sales Sales Sales Marketing Marketing Marketing

$10 $21 $30 $35 $40 $45 $8 $16 $20

Free-form Data Loading, Example 2

Measures

Markets

Products

Year

Scenario

East Sales Marketing 10 8 21 16

100-10 30 20 35 33 40 38

Actual 45 40

Jan Feb Mar Apr May Jun

Load Data via Free Form


1. Select Actions / Load data for dbname 2. The Load Data window will open

Load Data via Free Form


3. Specify SQL or data files 4. Select Find Data File and navigate to the data file 5. DO NOT select Find Rules File; NO RULES FILE is necessary for a free form load 6. Click OK

Free-form Purpose
So, why would I bother? Because a free-form data load is ALWAYS faster than the equivalent load with the rule Its more flexible than a data load rule You just have to get it right, because one error will stop the whole process

Replacement of empty values in a load rule Lets say we have a data file that looks like this:

Notice that we have some empty values in the product column or Field1

Replacement of empty values in a load rule Create a text column with an obscure character or word (like a ~ or ZZZZZ)

Replacement of empty values in a load rule Join the text column to the problem column

Replacement of empty values in a load rule In the field replacements replace the special character with a default value like NoProduct selecting replace whole word only

Replacement of empty values in a load rule

Now we have:

Replacement of empty values in a load rule Next replace ZZZZZ with nothing and do not select Match Whole Word That Does it!

Essbase Workarounds using Substitution Variables

Substitution Variables How They Work A substitution variable is set up by an administrator to simplify maintenance of things like calc scripts and retrieves The question I always get is: what can I put in a variable? Are these valid in a substitution variable? 1. Jan 2. Jan 3. Jan:Feb 4. Jan:Feb 5. Jan,Feb 6. Jan,Feb All can be put in a variable, but you wouldnt want to do #4

Substitution Variables How They Work cont Before a calc script (or whatever it is) runs, it replaces the variable with the value the variable is saved to. It then validates and runs the calc script (or whatever it is). Do you need double-quotes around a variable value like Actual->Sales? No, because you wouldn't normally put the term "Actual->Sales" in double-quotes in a calc script Youd just say Actual->Sales In other words, put quotes around something in a variable if youd want quotes around them in a calc script (or whatever)

Substitution Variables The Fun Part

You can actually set a variable to any darned thing you want. Check out this substitution variable:

&ClrCommand = CLEARDATA Actual->Feb->Sales->Cola->Texas;

Substitution Variables Calc Lines

Yes, that's a full line from a calc script (including a semi-colon). Watch how you can call it and then run it in a calc script:

And yes, it actually runs.

Substitution Variables Whole Scripts

You can even take this a step further and put a series of lines into a script like this:

And then call it like this:

And then call it like this:

Substitution Variables Whats The Point? You can put the common lines from all of your calc scripts into a substitution variable and call them from all your scripts No more repeating SET UpdateCalc Off; at the top of every script Just put &Header at the top of each script And if your header needs change, just change the variable Basically, youre writing your own macros using

variables

Workaround for Filtering Metadata in Planning (using Essbase)

Planning Metadata Filters from Planning Web


Planning will filter the dimensions within the Planning web client, showing users only the members for which they have read or write access Instead of seeing the full Entity hierarchy (for example):

Planning Metadata Filters from Planning Web


They see the hierarchy and members where they have read or write (e.g. Latin America entities):

Planning Metadata Filters from Reporting


Great in the Planning web client but what about reporting in Smart View or other reporting tools? The problem Users see the complete dimension, even those members with none access
Note they receive a #NoAccess message if they try to retrieve data for members with None access

The Solution
So what if you want to filter the metadata in reporting as well as Planning? Copy the Read filter that Planning creates in Essbase Change the copied read filter to metaread Metaread security takes precedence over Read so you can leave the Planning read filter Metaread Essbase filters will filter both dimensions and data for end users (just like the Planning web) Is that it? Nope. Planning refreshes will wipe out the new Metaread filters

The Solution Part 2


You need to create a process / script that: 1) Refresh Planning dimensions and security 2) Apply METAREAD access to those filters In more detail 1. Refreshes Planning through CubeRefresh.cmd 2. Writes the filters to disk via MaxL 3. Reads them into memory in VBScript 4. Programmatically generates MaxL code to apply a METAREAD to each of those filters 5. Run that new MaxL script
For more info/code samples, see interRels Cameron Lackpours blog: http://camerons-blog-foressbase-hackers.blogspot.com/2009/07/fixing-plannings-filters.html

Workaround - Drill Through to Detail from Planning Using Essbase Studio

Essbase Studio
Next generation tool for Essbase application building and administration
Graphical modeling environment ease of use Integrate Cube creation capabilities of EIS and EAS Promote reuse and consistency Manage change through impact analysis and artifact lineage Update data source administration and access

Essbase Studio 11.1.1


Create, deploy and maintain cubes Unifies many sources for modeling
RDB OBIEE Flat Files EPMA Dimension Library

Does anyone see Planning listed here?

Support for new Essbase 11 features (Varying attributes, Text and date lists) Catalog browsing and exploring Manage change through impact analysis and artifact lineage Graphic modeling environment Drill Through Role based security Improvements in architecture (parallel loads, optimized for Teradata TPT API)

Essbase Studio Components


Data source definitions Mini schemas Hierarchies Logical elements Measures Cube schemas Cube deployments Drill through reports

51

Essbase Studio - Layout


Metadata Navigator A tree view of the metadata repository Minischema tab in the Data Source Navigator A dimension element that is bound Data Sources tab in the Data Source to a physical column in the database Navigator Folders created by user to organize contents in the repository

A dimension element of that is of a measure type

Thumbnail navigator to obtain a miniaturized view of the minischem

Cube schema A higher level Hierarchy - A higher level metadata element metadatabeen created from that has element that consists of hierarchies and measures. base dimensional elements Essbase Model A cube schema that has all the properties necessary to create an Essbase application

Create and Manage an Essbase Cube in Studio


1. 2. 3. 4. Create data source Create mini-schema (similar to metamodel in EIS) Create hierarchies Create cube schema
Add hierarchies All Essbase properties under Essbase Model properties

5. Create Essbase model


6. Cube deployment wizard

53

Create a Drill Through Report


Define the context
For what dims and members should the report display

Define report content


Wizard driven selection You can customize the SQL

Associate cubes
Can associate multiple models

How does a user know a drill through exists?


Apply coloring in Smart View

54

So Can I Use Studio with Planning?


Technically no But I need to drill through from a Planning application to a relational table containing source details or even better, an actual invoice Heres the workaround to make that happen

Drill Through Set Up Steps


First you must have a relational source that contains tables for each of the drill through dimensions that match the dimensions in the Planning application
Hierarchies, member names

Create a Essbase Studio components for the Planning application


Data Sources Mini-model Hierarchies (only need those dimensions for the Drill Through reports) Cube Schema Essbase Model Drill through reports

Studio Redeployment of cube model to the Planning Application >> Update All Hierarchies
Will associate the drill through reports with the defined dimensions

Must Redeploy / Update All Hierarchies after every refresh

Create Mini-Schema

Create Cube Schema

The End User Experience (Smart View)


Use formatting to highlight data intersections or members where drill through reports exist

xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx Xxx xxxxx Xxx xxxxx Xxx xxxxx xxxxxx Xxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx

The End User Experience (Smart View)


In Smart View, select Adhoc Analysis >> Drill Through Reports

Select the Drill Through Report


For the member or data value, a list of valid drill through reports will display
Yes you can have more than one drill through report (to different sources even)

Relational Source Detail Displayed


Based on selected members, those are passed as parameters / context for the drill through data
See example below detailed invoice amounts for a specific account for a specific month and year are returned

Can drill from any level in the Essbase database


Although watch out for the number of records to be returned

xxxxxxxx

xxxxxxxx

Drill Through to Images


Technologies like Imagenow or Oracles Stellant provides access to document images via web URLs

xxxxxxxx

xxxxxxxx xxxxxxxx

Drill Through to Images

xxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxx


XXXXXXXX XXXXXXXX xxxxxxxx XXXXXX XXXXXX

xxxxxxxxxxxxx xxxxxxxxxxxxx

xxxxx xxxxx

Remember Making This Work in Planning


Dimensions and hierarchies in source must match Planning Studio Redeployment of cube model to the Planning Application >> Update All Hierarchies
Will associate the drill through reports with the defined dimensions

Must Redeploy / Update All Hierarchies after every Planning refresh

Other Tips
Backup your Planning application and database! Deploy the model to a blank / new Essbase database first
Make sure the hierarchies are building correctly before deploying over the Planning database

Dont rebuild dimensions youll lose all the properties You must update all hierarchies (otherwise the drill through report wont attach to the dimensions) Today drill through is only available in Smart View and Web Analysis Remember you can drill on data and/or members Many other tips and tricks for Essbase Studio
But that is a different presentation (or 1 day interRel class)

Can I Still Use Native Essbase Security?

Native Security vs. Essbase


Shared Services is where you manage security for all of your Hyperion / Oracle EPM products (beginning in System 9)

Did you know you could actually still use native Essbase security (if you wanted to)?

Pros / Cons of Native Essbase Security


Pros Manage users and groups directly within Essbase administration services Able to use external authentication (MSAD) for users Able to use Essbase API commands to manage security Application copies/migrations in EAS can include security even across Essbase servers Ability for Essbase administrators & application owners to quickly add groups & users Cons Double maintenance sort of.. Doesnt allow use of External (MSAD) groups Shared Services isnt the single security portal for all Hyperion products LCM (Life Cycle Management) utility isnt available for Essbase objects No segregated Provisioning Manager role separate from server or application administration

Pros / Cons of Shared Services Security for Essbase


Pros More comprehensive External authentication (MSAD) integration with provisioning LCM utility is available for Essbase objects Able to have Provisioning Manager users that are not Essbase administrators EssCMD and MaxL statements can still be used to add/update/delete users Addition/removal of users within External (MSAD) groups is handled outside of the Hyperion system Security audit/reporting tools that reference the External (MSAD) directory can include Essbase in their reporting Cons Shared Services and Essbase have to be synchronized (can be a time consuming process depending on number of users) Application copies/migrations in EAS cannot include security but security can be migrated separately through Shared Services Essbase API calls cannot be used to add/update/delete users External (MSAD) and native (Hyperion) groups must have unique names No way to force all security to be External (MSAD) so some native (Hyperion) users and groups could exist outside of the auditing/reporting done against MSAD

What is the right answer for you?


What Oracle EPM products are you using? Do you use more than one EPM product? Or are you strictly an Essbase / Excel Add-in shop? What version are you using?
You decision may be different in a 931 world vs. 11 world with LCM

Who are the users and do they use more than one Oracle EPM product? How many users do you have for Essbase? Who maintains security? Who maintains security for which Oracle EPM product? How are groups set up in your external directory? Can you leverage existing groups? Do you have to migrate / create groups in the external directory? If a new external group is required, what is the turn around time to create the group and assign the user (so that you can then leverage it in Shared Services)? What are nightly batch windows?

In Summary
Essbase Security Shared Services Security

Good: More control as Essbase admin Bad: Duplicative security work, more maintenance if you own more than one EPM product

Good: Less duplicative security work, audit controls, less maintenance Bad: Less control as Essbase admin

Other Miscellaneous Tips

Recent Customer Questions

Copy Filters (or other Essbase Objects)


Situation: I have defined a number of filters on my Essbase database. At the end of each month, I archive a copy of database and then I would like to reattach the filters. After the database is created, I can use the EAS Console to copy the filters from the current database to the archived version...but I want a scripted / automated way to do this? Where is the copy command in MaxL?

Create As
Use the As FilterYouWantToCopy optional argument to the Create Filter command For instance, say you had a filter called Sample.Basic.West and you wanted to copy it to AppCopy.DBCopy.West (note the change in the application name and database name) Create filter AppCopy.DBCopy.West as Sample.Basic.West ;

Apply this for other Essbase objects as well in MaxL

Are You Having this Issue?


If you are experiencing slow response time when you are bringing up the sessions dialog in EAS (or MaxL), you can add the following to your Essbase.cfg file NO_HOSTNAME_LISTCONNECT True When set to TRUE, IP addresses are not converted to hostnames, which improves the performance of the display session MaxL statement

Agenda
Converting #Missing to Values in Excel Essbase Workarounds with Data Load & Dimension Build Rules Essbase Workarounds with Substitution Variables Planning Metadata Filters Drill Through to Planning using Studio Native Essbase Security Other Miscellaneous Tips (if we have time) Questions and Answers

QUESTIONS AND ANSWERS

Edward Roske eroske@interrel.com BLOG: Looksmarter.blogspot.com WEBSITE: www.interrel.com TWITTER: ERoske

78

Вам также может понравиться