Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Pushing MicroStrategy to the LimitThe Hacker WayBryan Brandow             Ashish Shah             Jeremy Clover           ...
This presentation has been modified from the formit was originally delivered. Facebook branding andstats have been removed...
Bryan‟s Section   Bryan Brandow
it‟s all about theuser experience
making dashboards  more engaging
HTML ContainersA door into the code• Allows you to add HTML code  snippets• Place them anywhere on the  dashboard• Can be ...
Video Removed. For more information, check out this blog post.  http://www.bryanbrandow.com/20  12/09/create-graph-popups-...
JavaScript PopupsAdvantages over Info Windows • Dashboard loads faster • Called from anywhere • No parameter limit • Repos...
JavaScript PopupsAdd the JavaScript<a style="cursor:pointer"onclick="window.open(<microstrategy url>, ,height=435,width=71...
Answering PromptsAppend macros to the end of the URL• &elementsPromptAnswers=AttributeGUID;AttributeGUID:Value  <BaseURL> ...
Hiding Page SectionsIntegrated look and feel• &hiddenSections=
Video Removed. For more information, check out this blog post.  http://www.bryanbrandow.com/20     12/10/hideshow-sections...
Collapsible SectionsAdd the JavaScript<img id=moreAppleonclick="javascript:if(getElementById(K8).style.height==0px) {     ...
Collapsible SectionsRetrieve the IDs• Execute your Dashboard and  use Inspect Element (via  Chrome)• Section ID = K8
Video Removed. For more information, check out this blog post.  http://www.bryanbrandow.com/20   13/01/collapsible-section...
jQueryMaking dreams come trueAdd this to the beginning of the HTML Container:<script type="text/javascript" src="http://co...
jQuery Collapsible SectionsMore powerful JavaScript$(document).ready(function() {       $(#K8).hide();});$(#moreApple).cli...
Jeremy‟s Section  Jeremy Clover
frictionsucks
understanding the HTML structurefirebug it
dynamic sectionsreuse and recycle based on structureHTML Containers• Define, Find, Capture, Change   <div id=“k50” pber=„A...
is it perfect?    nope
does it work?    yep
full control over styleformat anything anywhereCSS and jQuery• Move panels outside of div sections • Remove block overflow...
date reformattingbecause we can
n00bsmoving fast and breaking things   We‟re New at This Represents 2 Months of         Work
Ashish‟s Section   Ashish Shah
it‟s all about theuser experience
making datamore accessible
Reducing clicks to access data…Understanding the pain-points of end-usersThe Challenges…• Sharing a link the size of a par...
Quick Links
Data Freshness Timestamp
Quick Links & Data Freshness TimestampsThe HighlightsHighlights:• Thin jdbc connection to the database• Determines the act...
it‟s all about theuser experience
making data moreopen and connected
Revamp User ExperienceOne stop shop for accessing dataThe Challenges...• How to reduce friction?• How to enable browsing?•...
Video Removed. No further information available at this time.
Data Portal Highlights• Crowd sourced• Reporting technology agnostic• Built on FB LAMP stack• Internal identity management...
Data PortalExample URLs of Mobile DashboardInstead of:https://<web_server_name>/MicroStrategy/servlet/mstrWeb?Server=<i_se...
World 2013 - Pushing MicroStrategy to the Limit, The Hacker Way
World 2013 - Pushing MicroStrategy to the Limit, The Hacker Way
World 2013 - Pushing MicroStrategy to the Limit, The Hacker Way
Upcoming SlideShare
Loading in …5
×

World 2013 - Pushing MicroStrategy to the Limit, The Hacker Way

6,974 views

Published on

This presentation was delivered jointly with two colleagues. The original slides have been stripped down and blog links have been added where videos used to be.

  • http://dbmanagement.info/Tutorials/Microstrategy.htm
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

World 2013 - Pushing MicroStrategy to the Limit, The Hacker Way

  1. 1. Pushing MicroStrategy to the LimitThe Hacker WayBryan Brandow Ashish Shah Jeremy Clover facebook.com/MicroStrategyHacks
  2. 2. This presentation has been modified from the formit was originally delivered. Facebook branding andstats have been removed after the titleslide, videos have been removed and additionallinks and information have been added.
  3. 3. Bryan‟s Section Bryan Brandow
  4. 4. it‟s all about theuser experience
  5. 5. making dashboards more engaging
  6. 6. HTML ContainersA door into the code• Allows you to add HTML code snippets• Place them anywhere on the dashboard• Can be used as iFrames to load external content• Can run JavaScript…
  7. 7. Video Removed. For more information, check out this blog post. http://www.bryanbrandow.com/20 12/09/create-graph-popups-with- javascript.html
  8. 8. JavaScript PopupsAdvantages over Info Windows • Dashboard loads faster • Called from anywhere • No parameter limit • Reposition window • Open multiple • Single popup serves the entire dashboard
  9. 9. JavaScript PopupsAdd the JavaScript<a style="cursor:pointer"onclick="window.open(<microstrategy url>, ,height=435,width=710);">
  10. 10. Answering PromptsAppend macros to the end of the URL• &elementsPromptAnswers=AttributeGUID;AttributeGUID:Value <BaseURL> &elementsPromptAnswers=8D679D4B11D3E4981000E787EC6DE8A4; 8D679D4B11D3E4981000E787EC6DE8A4:Central; 8D679D4B11D3E4981000E787EC6DE8A4:South• &valuePromptAnswers=Value <BaseURL> &valuePromptAnswers=Central^South
  11. 11. Hiding Page SectionsIntegrated look and feel• &hiddenSections=
  12. 12. Video Removed. For more information, check out this blog post. http://www.bryanbrandow.com/20 12/10/hideshow-sections-on- document.html
  13. 13. Collapsible SectionsAdd the JavaScript<img id=moreAppleonclick="javascript:if(getElementById(K8).style.height==0px) { getElementById(K8).style.height=300px; getElementById(moreApple).src=../images/minus.gif;}else { getElementById(K8).style.height=0px; getElementById(moreApple).src=../images/plus.gif;};"src=../images/plus.gifstyle="cursor:pointer"width=12>
  14. 14. Collapsible SectionsRetrieve the IDs• Execute your Dashboard and use Inspect Element (via Chrome)• Section ID = K8
  15. 15. Video Removed. For more information, check out this blog post. http://www.bryanbrandow.com/20 13/01/collapsible-sections-with- jquery.html
  16. 16. jQueryMaking dreams come trueAdd this to the beginning of the HTML Container:<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
  17. 17. jQuery Collapsible SectionsMore powerful JavaScript$(document).ready(function() { $(#K8).hide();});$(#moreApple).click(function () { if ($(#K8).is(":hidden")) { $(#K8).slideDown("slow"); $(#moreApple).attr(src, ../images/minus.gif);} else { $(#K8).slideUp("slow"); $(‟#moreApple).attr(„src‟, ../images/plus.gif‟);}});
  18. 18. Jeremy‟s Section Jeremy Clover
  19. 19. frictionsucks
  20. 20. understanding the HTML structurefirebug it
  21. 21. dynamic sectionsreuse and recycle based on structureHTML Containers• Define, Find, Capture, Change <div id=“k50” pber=„AttributeVal‟> <span>Metric Value</span> </div>• Let the document logic drive the data• Approx. 50 lines (currently) of Javascript Code will be posted directly after
  22. 22. is it perfect? nope
  23. 23. does it work? yep
  24. 24. full control over styleformat anything anywhereCSS and jQuery• Move panels outside of div sections • Remove block overflow hidden • Z-index adjustments • Transparency on the fly• Extensive fading options• Adjust “tooltip” formatting
  25. 25. date reformattingbecause we can
  26. 26. n00bsmoving fast and breaking things We‟re New at This Represents 2 Months of Work
  27. 27. Ashish‟s Section Ashish Shah
  28. 28. it‟s all about theuser experience
  29. 29. making datamore accessible
  30. 30. Reducing clicks to access data…Understanding the pain-points of end-usersThe Challenges…• Sharing a link the size of a paragraph in not very appealing• Too many clicks to access daily reports causes friction• Report links bookmarked by users can get outdated quickly• Not sure how current the data is!The Solution…• Quick Links• Data Freshness Time-Stamps
  31. 31. Quick Links
  32. 32. Data Freshness Timestamp
  33. 33. Quick Links & Data Freshness TimestampsThe HighlightsHighlights:• Thin jdbc connection to the database• Determines the active I-Server at runtime• Deployed as a plugin – built in v8.1.2 and never touched since• Crowd-sourced. Very easy to maintain and audit• Easy integration with ETL scripting and internal pages• Code extended to show highlights/announcements and communicate outages!
  34. 34. it‟s all about theuser experience
  35. 35. making data moreopen and connected
  36. 36. Revamp User ExperienceOne stop shop for accessing dataThe Challenges...• How to reduce friction?• How to enable browsing?• How to enable discovery?• How to enable collaboration?The Solution…• Data Portal
  37. 37. Video Removed. No further information available at this time.
  38. 38. Data Portal Highlights• Crowd sourced• Reporting technology agnostic• Built on FB LAMP stack• Internal identity management• It‟s all about the UEX!
  39. 39. Data PortalExample URLs of Mobile DashboardInstead of:https://<web_server_name>/MicroStrategy/servlet/mstrWeb?Server=<i_server_name>&Project=<project_name>&port=<portnumber>&evt=2048001&src=mstrWeb.2048001&visMode=0&documentID=29A51324451BE8397F1A14A79AB1AE1A&currentViewMedia=1&<authentication tokens>This: intern/data/portal/mobileOr just: dp mobile

×