I recently discovered a feature thats actually been around since MicroStrategy 8.1 called ‘Links.’ It basically allows you to add links to other reports from a regular grid report while dynamically passing prompt answers. Its basically the “drilling” feature thats been used in dashboards for awhile now.
Sounds pretty simple but its actually quite powerful. You can now do recursive drilling in MicroStrategy without all the overhead of flatened hierarchy tables and dummy attribute objects of yester year. If you’ve tried to do recursive drilling in MSTR you know how painful it is. The previous solutions were always just a hack.
The one major flaw with the Links is the inability to lower its priority over a drill path. For example if a template attribute like year has a high priority drill down to quarter and the same attribute has a ‘Link’ to some other report, then the default hyperlink in web will always be the ‘Link’ instead of the drill path.
This was somewhat detrimental to a self service project we are currently developing. I wont go into the details of the project, but we use prompted reports as a replacement for design mode. We have ‘Links’ to reports that allow you to add attributes and metrics to a View Report (report based on an in memory cube) that wasnt part of the cubes. Every time a user clicked a hyperlink on the grid it would launch this prompted report instead of drilling down. Needless to say this is horrible from a useability point of view.
From the standard web interface there is no way to set the default hyperlink behaviour. SDK to the rescue! You can actually do a very simple addon to change the behavior such that the drill path will always be higher priority when a template unit has both a drill path and a link. For our project this works very well. We can easily extend this customization to some how control the behavior at the report level.
As an aside we are loving the new plugin architecture for customizations. I will write more about that in the future. We are developing several for our current client.