Category Archives: MicroStrategy

Sluggish Prompts

Last month Jeremy wrote an excellent article on how filters can return unexpected results. My colleague Oznur found a somewhat similar issue and he was kind enough to allow me to share it with you.

So, there was this tiny little report that used an element prompt, and that prompt contained a list of default answers. Nothing fancy so far. However, it has come to my colleague’s attention that this report had turned rogue… How else could we explain that it started returning result sets for attributes that weren’t even chosen by the user when answering the prompt?
Well, there is a simple explanation, though it did required a little bit of outside of the box thinking. MicroStrategy stores the prompt default answers (ID and DESC) exactly as they were the day the prompt was created or modified. But what if something untoward happens to the lookup table, something like modifying the lookup value for a certain ID?

What happens is that while you distinctly remember choosing “Books” you end up seeing the sales for “Beverages”, and that is because the SQL Engine will write the WHERE clause with its mind on the ID not on DESC field. Since you selected “Books” and this lookup value corresponded to “1001”, then the SQL will filter on “1001”. Then, in the last step it will perform a join with the lookup table and get the description of “1001”, which now is “Beverages”.

MicroStrategy Interview questions 101 – II

77. Can you update a table in Warehouse using MicroStrategy?

78. attribute role, Security role, security filter and access control ?

79. How will you resolve an issue when (by chance) a aggregate table at higher level has a higher LTS than an aggregate table at lower level? What happens if LTS is high for a higher level table?

80. What are the criteria used by the MicroStrategy SQL Engine to build the join tree of a report’s SQL?

81. When a WH Primary key doesn’t appear as keys in MicroStrategy table editor OR Can MicroStrategy logical primary keys and the true (warehouse) primary keys differ?

82. Oracle has a pseudo column named ROWID which is not “directly” exposed to frone-end?Can this table be used in MicroStrategy? Why one would do that?

83. Can you enable/disable the thresholds based on some condition/prompt answers?

84. In a Document, there are 5 reports and 3 out of them need to have a prompt so that 20 user can select first day of the week for which user want to execute the report. How many prompts would be required to be made?

85. Can you make a floating window in MicroStrategy Web?

86. What’s XML Cache?

87. Can you apply themes to MicroStrategy Web? How to create a one?

88. Can MicroStrategy be installed on Solaris or UNIX w/o Root access? Can such a server be (re)started?

89. If you have a Quad core CPU and MSTR license to use CPUs, can you set to use two particular cores dedicately for I-Server (As other core may have been programed for some other dedicated work)

90. What’s a System call error? Have you seen Object variable error?

91. Drawbacks on 4GT switch?

92. Can you create Schema objects in 2 tier connection? IS it recommended?

93. What’s a Bulk export report?

94. After a bulk export report is run, NCS puts it on an ftp location? Can this location be directly made available in MSTR web?

95. Can you cap the number of reports run at a time by users? What happens when this limit is breached?

96. What’s the use of Monitor? What kind of error are captured in it?

97. Have you ever manually edited the metadata? why?

98. Can you have a prompt in free form sql report?

99. What will happen when the network connection between the webserver and one of the clustered I-server is lost? Will report run smoothly?

100. Can you prioritize report execution?

101. You have Clustered I-Servers? Can you some how disable Web users to use only one
I-Server?

More to come, but not before a 6 months gap.

MicroStrategy 8.0.x Support Expiration

Support for MicroStrategy 8.0.x officially expires on April 2, 2009.
According to MicroStrategy, Inc: If you are still running this version, upgrade planning and implementation services are available through MicroStrategy Consulting and can be requested through your Account Manager. If you are unable to get upgraded before the version expiration, please contact your Account Manager to determine your options for receiving continued support on the expired version.

Remove from Grid/Report

You know what they say – you are seldom assigned to a new role, instead new roles are constantly being assigned to you. This is how it came into past, that my job description (being the hospitable chap that it is) was kind enough to make room for yet another topic – second level support.

All in all, this suddenly made my job even more interesting. It is an established fact that no matter the data model’s flawlessness, no matter the excellence of design and no matter the software, be it rain or snow, given enough time and creativity, someone is bound to find an ingenious way of bringing that software to its knees. Thus it is with great confidence that I am promising plenty of new articles on how things can go wrong, and hopefully on how to fix them.

One common problem that I encountered so far is an issue that it’s usually pretty well covered during the first training modules – the difference between “Remove from Report” and “Remove from Grid”. Basically what happens is that users tend to play around with various attributes while creating a report and then neglect to properly remove them from the “Report Objects”.

Having an alien attribute in the “Report Objects” can cause cross joins, and the bad thing about cross joins is that, unless someone has a look at the SQL or the report runs into a spool space error then it is kind of hard to spot. I have seen user created reports that ran with cross joins for years without anyone ever raising an eyebrow…

It would be unfair not to mention that sometimes we need to bring an attribute to the “Report Objects” although we don’t want to see it in the grid, precisely in order to avoid cross joins. How’s that for confusing? Well, let’s just say that in this particular case, the attribute I’m talking about is not an alien attribute, but rather a “connecting” attribute. I can’t think of a suitable example, but feel free to post a comment if you have one.