Google
 

Thursday, December 4, 2008

Tips from PerformancePoint Planning Series I Course


I'm teaching a PerformancePoint Planning course this week with a colleague from my company.  Here are some tips that may help implementations, some added from previous postings, others discussed in forums, others discussed in the class:

Calendar

Note that the calendar cannot be changed for an application once it is created. (Time Dimension)  Plan carefully!

Model Type

As with Calendar, Model Type is not something you can change, though you could add or remove rules from other model types to make them similar...

Schedule a Job

Is really just "create a job" which could be scheduled or run manually.

Associations

Are really just hidden model rules... sometimes it might be better to roll your own rather than using the associations section.

Input Forms

http://performancepointing.blogspot.com/2008/09/why-aren-my-input-form-cells-turning.html 

Why aren't my input form cells turning yellow?

A colleague of mine offers this troubleshooting checklist when you just can't get the PerformancePoint Planning Excel Add-in to recognize input boxes in an assignment.

PerformancePoint Planning - Input Forms Checklist

  1. The current date is within the Assignment start/end date/time
  2. The cells you are looking at are within the start and end periods for the assignment (that you selected from the time dimension)
  3. The scenario you are trying to input to is the scenario you selected for the cycle that the assignment is using
  4. You have a value selected for every dimension in the model (both filters, rows and columns) and that the value selected is at the leaf level
  5. The user you are logged on as has access to the model set to “On” in the summary view of the user’s role.
  6. That read/write access is enabled for all of the dimensions selected in the filters/rows/columns you selected above.
  7. The status of the assignment is listed as “started” or “partial”, not “Not Started” or “Submitted”, or something else.
  8. That the assignment is opened using the assignment list in the action pane or from the assignment search window.
  9. That the report property “Allow data entry” is set to true
  10. That you haven’t mistakenly changed the format of a data entry to a white background (this has happened).  Check this using the “Home” ribbon and going to cell styles.  Right click on the “PerformancePoint data entry cell” to modify if necessary.  This can be testing by trying to write to the cell –if you don’t get a “read-only” error you’re fine.

And a few new ones.

11. The cycle you have created uses the same model as the assignment's forms.

12. The cycle you have created starts before the current date and ends 1 day after the current date (depending on your cycle configuration.)

13. The roles that the user you are logged on as do not have read/write access turned off for the dimension members selected to input, as any role with this will override a permitting role. (similar to 6)

14. That you have refreshed the offline assignment under Work Offline - Manage offline Assignments.

Dynamic Dates in Reports

Use the Current Period Reference in the time dimension of reports to dynamically change report date ranges.  Static examples from the course are not as maintainable, especially for monthly cycles.

Cycles

Only one role/user can be assigned to a cycle template.  Multiple users/roles can be assigned to an instance.

Might want to name cycles like YYYY-MODEL-SCENARIO-DESCRIPTION

Security And Roles

For Business Unit security - Create a master role with read/write access to all business units.  Add all users to this role.  Treat it as a 'mailing/distribution list' used specifically for creating the cycle instance and assigning it to the role. 

Create separate roles for each business unit contributor making an assignment.  Deny access to units that you do not want them to have access to.

Create another role "Lockout" or "Disabled Users" with no access to anything.  Add users to this role to disable access to models.  Deny overrides any other access they may have.

Do not specify User Customized Permissions. (Performance Hit).    Use increased number of roles instead.

Excel Add-In

Cut-pasting the matrix from Report-Properties may throw an error if dimension filters exist.  Edit the dimension filters under report properties to include name, label syntax same as original matrix.  Ensure that all properties match original matrix.

Rules

Use Active column to disable rules when performance problems exist.  Test model performance without any rules.  SQL Rules should be scoped very tightly, MDX rules should be scoped very broadly.

Use variables to store start and end dates for rules instead of current period reference.  Additional flexibility.

PPSCMD.EXE

Creating a job of jobs. (Courtesy Jeffrey Wang, Technet forums)

Well, its not impossible, its just not documented - but i guess that also means use it with care =)

If you use .Net Reflector, you can browse into the PPSCmd itself and see that it actually has some hidden commands inside. One such magical command is the ImportXml that takes an xml file descibing the jobs you want to run.

Create a XML file with the following content in your context:

<?xml version="1.0" encoding="utf-8"?>
<Root xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/performancepoint/2007/03/MigrationDefinition">
  <Applications>
    <Application Id="GUID" Label="AppLabel" Name="AppName">
      <ImportCommands>
        <Command xsi:type="LaunchJob" Name="JobLabel">
        </Command>
      </ImportCommands>
    </Application>
  </Applications>
</Root>

Next, call it:

PPSCmd importXml /server http://server:46767 something.xml

Make sure you do not have have rules that are NativeMdx or NativeSQL implementation as this will disable the EnableNativeMdxSQLRule on the application.

Once you have it running, you can schedule this to run in SQL Agent - full scheduling to your heart's desire.

PerformancePoint Planning - Analysis Services

Use SQL Profiler to connect to Analysis Services to identify query problems and issues with caching, or just to see what it's doing in the background while it's not "rendering the matrix".  You may be able to tweak aggregations using Aggregation Manager, though you will probably need to do this on every deploy.  Analysis Services should be on at least one separate server in the architecture for memory and performance reasons.

PerformancePoint Exam 70-556 Outline

http://www.microsoft.com/learning/en/us/exams/70-556.mspx

No comments: