Monday, January 16, 2012

IBM COGNOS 8 Report Prompt Page taking too long to load


Before going in to the solution we need to know few things:
1.      Prompts Reconciliation ---- COGNOS ensures the parameter definition matches the parameter usage. Parameters are defined in filters and calculations.
2.       The resulting parameters are used in prompts. A parameter definition contains several key items
a.       Cardinality – The number of input values that can be supplied to the parameter
b.       Discreteness – Whether an input value defines a single value or a value range
c.        Optionality – Whether a parameter is required or optional in the context of the filter or calculation.
d.       Data type – The required data type that is expected in the context of the filter or calculation to match other referenced data items or constants. These types can be one of Numeric, Date, Time, Date
e.      Time, Interval, String, or Member Unique Name (MUN).
Here is an example I found in the IBM COGNOS documentation ----- In order to perform prompt reconciliation, IBM Cognos 8 examines the queries to determine which parameters exist and their characteristics. The larger and more complex the queries, the longer this process can take.  A customer report in IBM Cognos 8.1 with over 200 queries has been noted to require over 40 seconds to show the first prompt page. Most of this time was spent on prompt reconciliation. 
(Content taken from IBM COGNOS knowledge forums)

I had similar issue, what I saw was that the query subjects (this is particular report) were very complex and had about 20 tables joined under it.  But the main culprit for this problem was due to a join that was created on the report with 2 such (complex) query subjects that are totally different with a dummy value and this new query had couple of filters. Crazy mistake and yes, the prompt was taking 40 seconds to load for us J

Solution --- > We created new metadata / query subject that was a combination of the 2 query subjects that we were joining i.e. basically we moved the join from the report to the framework and all the filters that we used on the report were made optional on the framework. (They were generic filters and so we did not have any issues). Now the prompt page comes up in a flash. :)