MicroStrategy TaskProc Enhancement in 9.2 SDK
One thing that you’ll notice when trying to use the TaskProc as a method of feeding MicroStrategy data into an external application is that the various options for results are none too friendly. The XML options are all very bloated with metadata/formatting overhead and the other delivery packages are just wrappers for the XML, so they make it worse. The handy ReportViewer style that can be used with the Web Services to get clean and compact data isn’t supported by TaskProc for some reason.
Traditionally, this has been enough to deter me from using TaskProc as my go to choice for data extraction from MicroStrategy, but a hidden little gem in the 9.2 Web SDK gets all of that fixed. I’m not sure why it’s not out of the box, but perhaps in the future it will be. For now, check out this cool plugin that will make TaskProc a lot more powerful.
Note: For details on using the TaskProc, check out the post Getting Started with MicroStrategy TaskProc
The plugin is called RetrievingReportXMLCustomFormat and can be found in your local installed SDKCustomizationPluginsAdvancedScenarios in both ASP and JSP flavors. Simply copy the plugin folder to your Webplugins folder and restart your web server for it to be loaded. Then, when you use the Task Processor, set your styleName parameter to CustomXMLReportStyle to use this new plugin. The output is now clean and precise XML that just contains the data for the report, which is really the only part you’ll care about if you’re feeding data to an external application.
As a bonus tip, my original post for the TaskProc used reportExecute as a method, which requires a separate TaskProc call to create a Session first. A faster way to accomplish a data read from MicroStrategy is to use the reportDataService call instead. I’ve had trouble with this task in the past (it was broken in 9.0.2 GA) but it looks like everything is working great in 9.2. The difference is that this task will perform the session open/close and report execute all in one, preventing the need for the separate calls. When I tested this with 9.2, the speed was spectacular, and even a little faster than the reportExecute method from 9.0.2.