Monthly Archives: April 2010

Deleting unused Facts in MicroStrategy

I was searching a technote for a friend about distinct not apearing in the SQL (not something to do True Key, sadly) with the and landed up with this interesting technote which I’m going to implment for my current project sometime. We can’t use Object Manager to find this even though there is specific feature to do it as Tables are considered (logically) dependent on Facts. [Can anyone from MicroStrategy explain why is that? It should be other way round.]

Luckily it is simple but you need to have Select access on Metadata. Just run following query against your metadata database and your would get the list of afacts not used by any metric. Also, your would need to run it for each project your have. :(

SELECT object_id,
       object_name
FROM   dssmdobjinfo
WHERE  object_type = 13
       AND project_id = <Project ID> 
       AND object_id NOT IN (SELECT DISTINCT depn_objid AS object_id
                             FROM   dssmdobjdepn
                             WHERE  project_id =??
                                    AND depnobj_type = 13
                                    AND object_type = 4)
ORDER  BY object_id ASC

Disclaimer: Running a unmanaged SQL query against Metadata is not guranteed by MicroStrategy, Inc.

BusinessObjects vs. MicroStrategy

On the MicroStrategy-website white paper can be downloaded, tells where in 10 pages why Business Objects is beaten in all possible fields of MicroStrategy. As my readers, but certainly the decision not want to leave a competitor and is also intended for the subtle but important details of interest, I have made the following (incomplete course) to compare the features of MicroStrategy and Business Objects.

As mentioned before, I have considered only the features relevant to the SQL generation of meaning. I have also considered that MicroStrategy and Business Objects to build on fundamentally different approaches and some features are therefore not simply comparable. Such radio ions so I left aside.

The plus sign in the table means is that each tool has an important feature that for the other product would be implementable, although certainly, but unfortunately is not available.

Some “little things” that are in my view, just very important and therefore be present at every BI tool should not be missing, but in the current release of Business Objects. This is why I have marked with a minus sign.

And now the scoreboard:

Feature MicroStrategy Business Object
1 Automated Aggregate Awareness +
2 Into account the cardinality in SQL generation (eg Subquery with an M: N relationship) +
3 Dimensional metrics and conditionals +
4 Filtering using HAVING (QUALIFY is missing even in Micro Strategy) +
5 Consolidations; Dynamic Groups +
6 Assembly of the key figures within the database +
7 Joins on operators other than “=” (eg BETWEEN Join for Slowly Changing Dimensions) +
8 A simple way to choose one of the join paths (via contexts) +
9 No examination of the object dependencies when deleting
10 No SQL-Preview for the prompt reply but before the execution

MicroStrategy has over so much more powerful means for the rapid generation of high-performance SQL code – and that’s without taking account of VLDB countless settings that exist for the fine-tuning of the SQL query for MicroStrategy!

An important advantage of Business Objects is in my view, only the possibility of any conditions in the join between the tables to use shortcuts.

Based on Google Translator of original article.

No SQL-Preview for the prompt reply but before the execution

Using URL SDK to drill or hyperlink in Document

This is one of the requirement that I had sized quite some time back, and luckily I got go-ahead to implement it. My current client has process under which each projects goes, need less to say, time consuming. When business user say that they want drilling to be standardized, I feel a bit awkward. Most of the business users from my current clients have been trained by MicroStrategy, Inc. itself. 😐 First, these guys must know the difference between drilling and hyperlinking. Drilling is a feature of MicroStrategy, which comes OOB where as hyperlinking is something done by MicroStrategy developer, by actual link option for text fields (Similar to VB that we have been seeing for long) or using attributes having form of type html.

Now here is the requirement. Ex-vendor ripped the client big time by doing clumsy work. Thanks to them. :) They had created some enterprise dashboards that were having serialized hyperlinking. These hyperlinking were dependent on the name of project as well as the I-Server IP address. They just changed the name of MicroStrategy project and every URL went for toss. Now imagine, IP address/machine name of I-Server machine changing. This exercise would be repeated. I ran through 7-8 months old email regarding the same and found some leads, but were not working. Don’t know why, I myself had provided the solution to my peer. There are no (single) tech notes that would help me finding a solution, but I could find a solution by combining 2 tech notes, so relaxed.

Here is problem: Currently client has url SDK implemented as

http://abc.xyz.com/WebServer/servlet/mstrWeb?Project=<Project_Name>&Server=<IServer>&port=0&evt=4001&src=mstrWeb.report.4001&reportID=<Report_ID>&reportViewMode=1&src=mstrWeb

I can’t give exact example due to confidentiality but example above is very similar to actual, except that real one is about executing a document where as above one is about a report. Now, client want to remove the dependent on IP Address (We are providing removing the dependence as extra free addon, or may be we should generate more profit in future as that standardization is not part of the current scope of work) :D. Current URL is more complex and has two more not required events and corresponding arguments.

Now if tomorrow, any change of IP/machine name would make the work useless. The solution is simple. Simply remove the reference to them. The real magic of URL SDK lies in event and argument. You can read the function PDF that comes with installation of MicroStrategy. It talks about 4-5 event. A glimpse: You can create a link that will execute the report with particular attributes in page-by axis or Run reports/document with prompt answers.

In case of jumping from one prompted document to another, you need to pass messageID parameter that would forward the prompt to next document.

Only drawback of using URL SDK: Not a drawback, I would not recommend doing it. Using URL SDK you can also pass the login/apssword and create a hyperlinks that would work from a complete non-MicroStrategy page. Remember, I’m talking about the hyperlink not the resultant of hyperlinking. This puts your system in some disadvantageous situation.