Wednesday, July 6, 2011

Compare Items Using Dashboard Pages

Ideas for blog entries using OBI EE come up all the time and I should really post them straight away, but something work-related usually gets in the way ;-)

On a lunch break I was reading Stephen Few's blog entry about OECD visualizations. I don't always agree with him, but his writing is interesting; always encouraging readers to strive for high standards!

Now OBI can't display flowers yet, but it was the 'interactive comparison' that got me thinking. Hmmm, how can I achieve something similar with a dashboard? Let's get the most out of what we have in OBI EE, here's the steps:

1. Create a new dashboard page with multiple sections and columns (e.g. 'Compare Items')
  • layout relates to how you want to compare the request contents (see example below)
  • one section for the 'Compare Prompt', remaining sections are for the request(s) being compared
From DR. OBI
2. Create a page prompt for the dashboard page with a single column holding a list of numbers. You could use:

    SELECT CASE WHEN 1=0 THEN "Table"."Column" ELSE 0 END FROM "Subject Area"
    UNION
    SELECT CASE WHEN 1=0 THEN "Table"."Column" ELSE 1 END FROM "Subject Area"
    UNION
    SELECT CASE WHEN 1=0 THEN "Table"."Column" ELSE 2 END FROM "Subject Area"
    UNION
    SELECT CASE WHEN 1=0 THEN "Table"."Column" ELSE 3 END FROM "Subject Area"
    etc...

3. Add a presentation variable for the column (e.g. dp_comp).
4. Uncheck 'All Choices', Save, then add the prompt to your new dashboard page.
From DR. OBI
5. Create a new request with the layout you need. You'll be comparing items in one request with others, consider adding some dynamic elements for more interest (e.g. view selector, pivot page prompt).
6. In the request, create a filter that directly references your @{dp_comp} presentation variable:

    - add ANY column as a filter criteria
    - select the 'Filter Options' then 'Edit Column Formula'
    - replace this column with your presentation variable reference @{dp_comp}


7. Return to the 'Filter Options', then 'Edit Filter...'. Set filter criteria @{dp_comp} >= 1 (see below). Save the request.
8. Repeat steps 5-7 for each new comparison request, changing the value in the filter each time. I've created 5:

    - filter criteria @{dp_comp} >= 2
    - filter criteria @{dp_comp} >= 3
    - filter criteria @{dp_comp} >= 4
    - filter criteria @{dp_comp} = 5

From DR. OBI
Running these requests directly will give an error, don't worry about it... head back over to the dashboard page from step 1.

9. Add each new comparison request to one of the sections previously created. I've done this from left-to-right, but the order doesn't matter here.
10. Set the 'Guided Navigation...' for each request section:

    - Reference Source Request = Yes
    - Source Request = reference to request in section
    - Show Section = If request returns rows


11. Save the dashboard page layout.
12. Select a value from the page prompt and the same number of 'comparison' sections appear.
N.B. The usual limitations with 'Guided Navigation...' and large result sets apply. Be cautious with the size of your requests.

Thursday, February 10, 2011

Give your OBI EE Request the Stephen Few Treatment...

Stephen Few has a couple of great books on visual display of quantitative information. Use these principles when you're building your requests.

1. Take this...
From DR. OBI
2. Then turn it into this...
From DR. OBI

DB Functions 'Evaluate' and 'Evaluate Aggr' Bypass Cache

If super-fast performance using cache is your goal, the DB functions 'Evaluate' and 'Evaluate Aggr' will cause a request to bypass any OBI Server Cache. Look for an alternative that will populate your cache instead.

DR. OBI Open Letter Content Reminder

Dear Readers,

just a reminder of the ONLY content you'll find this blog:
  • useful tips for getting the most from OBI EE front-end components
  • descriptions are brief (you'll find a lot of wordy solutions out there!)
  • a working knowledge of OBI EE is anticipated or
  • at heart a desire to get more from your implementation
  • references to fellow bloggers and colleagues highlight (in my opinion) good quality technical solutions or approaches
If you find the solutions helpful, I'm glad. To the best of my knowledge, blog posts do not repeat content found on other blogs!

All the best,
DR. OBI

    Tuesday, February 8, 2011

    Theory: Single Dashboard Prompt, Multiple Subject Areas

    Frequently the requirment pops up to provide results from more than one subject area, using a single dashboard prompt.
    From DR. OBI
    OBI EE doesn't handle this situation directly, so the 'mid-request' concept can be used.
    From DR. OBI
    The steps briefly are...
    1. Create dashboard prompt using subject area 1, including required columns.
    2. Create a 2nd (mid) request listing columns and data returned from the prompt in Step 1.
    3. Filter columns using 'Is Prompted' option. 
    4. Create the 3rd and 4th requests, from subject areas 1 and 2 respectively, then make sure these requests are based on the results of the request in Step 2.
     A worked example in a future post...

    Thursday, December 16, 2010

    Wednesday, December 15, 2010

    OBI EE Usage Tracking - Part 4

    In a later post we'll extend the request used in Parts 1-3, to highlight performance for individual users. Continuing the license review theme, let's clarify overall exposure.

    Set this up from the beginning and a business can witness the growing number of licenses used.

    1. A saved filter for the definition of 'Active Users' can be changed without affecting dependent requests, so using the Part 2 definition:

        (TIMESTAMPDIFF(SQL_TSI_DAY, MAX("Query Time"."Date"), Current_TimeStamp)) 
     
    a filter will look similar to this...
    From DR. OBI
    2. So, we can count active users now at any time, but inform your Usage data a little more making the report more informative with:
    • Total Available Licenses
    • Remaining Available Licenses (Total Available - # Active Users)
      3. Add these to your request and always know your license exposure, similar to the one here...
      From DR. OBI
      4. Alternate text is added for context using HTML markup for the column:

          <HTML TITLE="# of Active Users"># of Named Users</HTML>

      Add your total number of licenses using a repository variable, database table updated via writeback or other convenient method of your choosing.

      Keen-eyed readers will see I'm using the SampleApp available from Oracle. Usage Tracking is available in the RPD supplied in this bundle, just follow the other steps to setup the required tables.