MicroStrategy - Ongoing investigations

mstr

MSTR how to add MDX function to report
MSTR how to dynamically ignore a security filter
Before run, switch the security filter. After run, switch back to the old security filter.
Change intelligence cube to MDX cube.

https://www2.microstrategy.com/producthelp/10.7/ReportDesigner/WebHelp/Lang_1033/Content/ReportDesigner/understanding_functions_in_microstrategy_7i.htm
https://www2.microstrategy.com/producthelp/10.6/AdvancedReportingGuide/WebHelp/Lang_1033/Content/AdvancedReporting/Apply_functions__Using_database_specific_functions.htm
https://www2.microstrategy.com/producthelp/10.4/AdvancedReportingGuide/WebHelp/Lang_1033/Content/AdvancedReporting/Custom_expressions.htm
https://www2.microstrategy.com/producthelp/10.8/AdvancedReportingGuide/WebHelp/Lang_1033/Content/AdvancedReporting/Creating_your_own_plug_in_functions.htm
https://www2.microstrategy.com/producthelp/manuals/en/FunctionsReference.pdf
http://www2.microstrategy.com/producthelp/10.4/WebUser/WebHelp/Lang_1033/Content/function_parameters_dialog_box.htm
https://community.microstrategy.com/s/article/KB6178-How-to-use-pass-through-expression-ApplyComparison-in
https://community.microstrategy.com/s/article/KB9108-How-to-create-add-modify-and-import-a-new-function-using
https://www2.microstrategy.com/producthelp/10.8/ReportDesigner/WebHelp/Lang_1033/Content/ReportDesigner/using_advanced_functions_in_metrics.htm
https://www2.microstrategy.com/producthelp/10.6/AdvancedReportingGuide/WebHelp/Lang_1033/Content/AdvancedReporting/Specifying_custom_SQL_statements.htm

http://www2.microstrategy.com/producthelp/10.5/manuals/en/InMemoryAnalytics.pdf
https://smartbridge.com/bypassing-security-filters-microstrategy/
https://community.microstrategy.com/s/article/KB18729-How-to-set-the-dynamic-aggregation-function-of-a-metric
https://community.microstrategy.com/s/article/KB30714-Handling-of-security-filters-with-multiple
https://smartbridge.com/how-to-avoid-security-filters-for-prompt-element-retrieval-in-microstrategy/
http://www.bryanbrandow.com/2012/02/database-passthrough-functions.html
https://community.microstrategy.com/s/article/KB9108-How-to-create-add-modify-and-import-a-new-function-using
http://www.itprotoday.com/business-intelligence/mastering-olap-extending-mdx
https://www2.microstrategy.com/producthelp/10.11/MDXCubeReporting/WebHelp/Lang_1033/Content/How_to_build_analysis_into_metrics_with_custom_MDX.htm
https://community.microstrategy.com/s/article/KB31816-How-to-enable-custom-MDX-metrics-for-dynamic-aggregation
https://community.microstrategy.com/s/article/KB18396-Fundamentals-of-MDX-data-processing-for-custom-MDX
https://www2.microstrategy.com/producthelp/10.9/ReportDesigner/WebHelp/Lang_1033/Content/ReportDesigner/creating_intelligent_cubes_based_on_mdx_cubes_.htm
https://community.microstrategy.com/s/article/KB16057-How-to-create-customized-metric-expressions-for-MDX-Cube
https://www2.microstrategy.com/producthelp/10.11/MDXCubeReporting/WebHelp/Lang_1033/Content/Creating_metrics_from_MDX_cube_data.htm
https://community.microstrategy.com/s/article/KB16100-How-to-write-a-custom-metric-formula-in-MDX-to-filter-on
https://www2.microstrategy.com/producthelp/10.8/InMemoryAnalytics/WebHelp/Lang_1033/Content/InMemoryAnalysis/Features_that_prevent_the_use_of_dynamic_sourcing.htm
https://community.microstrategy.com/s/article/KB3905-How-to-use-pass-through-expression-ApplySimple-in
https://community.microstrategy.com/s/article/KB18206-How-to-write-a-custom-MDX-formula-to-rank-report-rows-in

The issue with Intelligence servers not available during scheduled reports:

  1. Configure MicroStrategy Intelligence Server > Governing > Memory Settings
  2. RptCacheAdmin->ReleaseInboxRefCount return error 0x225. See the History List page

The issue with the Shared List:

When scheduling a report to be delivered via email or using the Send Now functionality, the user can select email addresses from the "Shared List" or "Personal List". The "Shared List" seem to be always empty.

See support case 803221 and TN229563

This maybe happening perhaps because even my custom task for creating the user is given an email address, but instead of assigning this email address to the user that just got created, this code add the email address to the contact list. This is a good thing accidentally, because otherwise, users from one tenant can see email addresses from other tenants, which would lead to security incidents. However, having a Shared List that contains 428 empty pages seem buggy.

Export using CSV via Web works as expected but does not work when scheduled for delivery via email:

If we run a report and export it using CSV option, and then use Excel to open the file, it works fine, but if we schedule the report to be delivered via email using CSV, and then use Excel to open it, Excel display all the data lumped into one column. When we export via Web, it use quote comma quote as delimiter, but when scheduled for delivery via email, it uses just comma as delimiter. Why do MSTR behave differently for these scenarios? The current options:

  1. The user can reconfigure his / her Excel to use comma. If they have some software that automatically parse the Excel file, perhaps they can configure that software to use comma as the delimiter.
  2. Is it possible to configure the Intelligence server to use "," somehow?
  3. Is it possible to configure the Intelligence server to use tab delimited but have the file saved as .csv?
  4. Can the user choose plain text (tab delimited) when scheduling?

Tracking email / subscription delivery:

Cube refresh failed:

Export to Excel:

Extracting the report data / Getting the report data:

How can we change the limit on the number of rows per page or grid?

This is done in the Web Preference screen: Web Preferences -> Grid Display -> Maximum rows in grid: 250 (was 50). However, this only change for ad-hoc report. For document reports, we need to do additional research:

Sharing report definition:

Figuring out the list of projects that a user has access to:

List all subscription for a particular user:

Extracting / Getting the SQL statements from the reports:

The shared address list:

Notice: This is not really a problem from the MSTR side. MSTR was designed for an environment where a corporate own the entire installation (not multi-tenant).

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License