<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Bob Duffy's Blobby Blog : SSAS</title><link>http://blogs.msdn.com/boduff/archive/tags/SSAS/default.aspx</link><description>Tags: SSAS</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Dimensional Modelling and Cube Building 101</title><link>http://blogs.msdn.com/boduff/archive/2009/05/07/dimensional-modelling-and-cube-building-101.aspx</link><pubDate>Thu, 07 May 2009 11:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9593109</guid><dc:creator>boduff</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/boduff/comments/9593109.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boduff/commentrss.aspx?PostID=9593109</wfw:commentRss><description>&lt;P&gt;Thanks to everyone who came to the Dublin SQL users Group session on Tuesday. I hope that we addressed some aspects of “cube fear” that is common in even very experienced relational professionals. For me just being comfortable building that first cube is a great feeling.&lt;/P&gt;
&lt;P&gt;We got some great feedback with a a 95% VSAT rating, so I’m quite happy to make up a 201 seminar later in the year. Hey if you can’t wait that long – we do private training courses and design sessions too ;-)&lt;/P&gt;
&lt;P&gt;As the 101 session was quite popular I’ll see if we can re-deliver the content to some of the User Groups around the country.&lt;/P&gt;
&lt;P&gt;The link to the SQL Ireland User Group Site is here &lt;BR&gt;&lt;A title=http://sql.mtug.ie/Events/EventInfo.aspx?ID=bbad6f63-2448-41f2-9352-bb573496af4a href="http://sql.mtug.ie/Events/EventInfo.aspx?ID=bbad6f63-2448-41f2-9352-bb573496af4a" mce_href="http://sql.mtug.ie/Events/EventInfo.aspx?ID=bbad6f63-2448-41f2-9352-bb573496af4a"&gt;http://sql.mtug.ie/Events/EventInfo.aspx?ID=bbad6f63-2448-41f2-9352-bb573496af4a&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And I have posted my slides here:&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9593109" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boduff/attachment/9593109.ashx" length="2808290" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boduff/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.msdn.com/boduff/archive/tags/SSAS/default.aspx">SSAS</category><category domain="http://blogs.msdn.com/boduff/archive/tags/Community/default.aspx">Community</category></item><item><title>Extending SSRS Data Sources</title><link>http://blogs.msdn.com/boduff/archive/2007/05/16/extending-ssrs-data-sources.aspx</link><pubDate>Wed, 16 May 2007 13:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2669630</guid><dc:creator>boduff</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/boduff/comments/2669630.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boduff/commentrss.aspx?PostID=2669630</wfw:commentRss><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Introduction&lt;/H1&gt;
&lt;P&gt;SQL Server Reporting Services comes out of the box with a good few data sources. Microsoft SQL Server and Microsoft Analysis Services are the main ones I use, and you can pretty much connect to any other database product using OLEDB/ODBC. What can you do when you want to display in reporting services that does not come from a database ? 
&lt;P&gt;There are&amp;nbsp;two common methods used to provide data extensibility with reporting services: &lt;/P&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 100%; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing=0 cellPadding=0 width="100%" border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #eeece1; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 22.9%; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background2" vAlign=top width="22%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Method&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BACKGROUND: #eeece1; PADDING-BOTTOM: 0cm; WIDTH: 35.7%; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background2; mso-border-left-alt: solid windowtext .5pt" vAlign=top width="35%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BACKGROUND: #eeece1; PADDING-BOTTOM: 0cm; WIDTH: 41.4%; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background2; mso-border-left-alt: solid windowtext .5pt" vAlign=top width="41%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Pros/cons&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 22.9%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="22%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;XML Data Source&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 35.7%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="35%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The XML data provider flattens the XML structure into a data set that can be accessed by the reporting engine. The flattening and integration with diverse Web services, Web pages, and arbitrary XML documents is powerful, but sometimes confusing. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 41.4%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="41%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Pros&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Best choice for Web Services &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Can model non “flat” data structures&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Custom Dot.Net Code can be exposed as web service through ASMX&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Does not need rely on SQL Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Cons&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Needs to deploy to an IIS web server. I find this really annoying as I like a report to encapsulate all it needs without bits hanging off.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Not as intuitive to work with as Dataset based sources&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 22.9%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="22%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;custom Data Processing Extension&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 35.7%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="35%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Dot.Net Library that enables you to bridge a data source and a dot.net dataset.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Modeled after a subset of the .Net Framework data provider but has some extensions such as server side aggregates&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;One the Extension is deployed and registered in the configuration file it appears in the list of data sources in report designer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 41.4%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="41%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;A simplified data access architecture, often with better maintainability and improved performance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The ability to directly expose extension-specific functionality to consumers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Best choice for complex extension which will be re-usable. Such as exposing a suite of data from non ODBC compatible source.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Cons&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Complex to develop and fiddly to deploy, especially in web farm (deployed to each node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Not easily compatible with Report Builder.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Rather than pull your data from reporting services you could just use the extensibility features of a supported DataSource to push the data to reporting services. There are two common routes here: &lt;/P&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 100%; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing=0 cellPadding=0 width="100%" border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #eeece1; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 20.62%; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background2" vAlign=top width="20%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Method&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BACKGROUND: #eeece1; PADDING-BOTTOM: 0cm; WIDTH: 46.22%; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background2; mso-border-left-alt: solid windowtext .5pt" vAlign=top width="46%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BACKGROUND: #eeece1; PADDING-BOTTOM: 0cm; WIDTH: 33.16%; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background2; mso-border-left-alt: solid windowtext .5pt" vAlign=top width="33%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Pros/Cons&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 20.62%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="20%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Sql CLR / stored procedures&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 46.22%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="46%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Visual Studio “Database” Project used to write dot.net classes that can be registered in sql server 2005 as first class objects. Stored procedures, Table Values Functions, Scalar Functions are useful here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The DLL is loaded into the host database via the “create assembly” command and is then hosted within SQL Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;SQL Server creates one thread pool per user per assembly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;You can also provide COM and external calls using legacy extended stored procedures (xp_*) in SQL Server. I generally avoid this in favour of sqlclr, although xp_cmdshell is still very handy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 33.16%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="33%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Pros&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Written in common dot.net language&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Best choice for Flat Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Integrated into T-SQL Query Language&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Hides complexity from Report Designer&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Data Source can be exposed to Report Builder through a Report Model.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Scripted Deployment via t-sql&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Cons&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Requires sqlclr to be enabled (disabled by default)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Largely limited to the&amp;nbsp;12 safe namespaces&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;By their nature sqlclr functions that access heterogeneous data tend to not be “safe” so some CAS issues when loading into database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;More suited to relational tabular format.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 20.62%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="20%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;SSAS Stored Procedures&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 46.22%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="46%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT face=Verdana&gt;Dot.Net class library aka MDX extensions can be loaded into the “Assemblies” section of Analysis Services using the xmla &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;ObjectDefinition&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&amp;gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&amp;gt; (See sample CubeInfo.xmla in example code)&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;These functions can then be exposed within MDX to be used in the same way as calculated measures using XMLA &lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; PADDING-BOTTOM: 0cm; WIDTH: 33.16%; BORDER-TOP-COLOR: #f0f0f0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width="33%"&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Pros&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Written in common dot.net language&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Best choice for integrating with other OLAP data sources using MDX.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Integrated into MDX Query Language&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Hides complexity from Report Designer, normal Analysis Services Data Source used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Deployed to SSAS Server rather than individual database&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Scripted deployment through xmla&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Cons&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Requires Assembly to be registered within Analysis Services.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Data is exposed through MDX, which may be less familiar to report writers than SQL.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=Text style="MARGIN: 3pt 0cm"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;The last and I guess most obvious way to get non standard data into a report is to data warehouse it: e.g write an ETL or custom code to transform the data into a relational format where reporting services can suck it up natively. The architectural “pivot point” on this approach is how real time you want the data and if you can feasibly maintain a copy for reporting. 
&lt;P&gt;Recently I have been trying quite a seemingly simple task: to display the currently running SSIS packages on a report. It would have been really cool if I could have brought this into SQL Server as sqlclr Table Valued Function so we could have syntax like “Select * FROM RunningDtsPackages(@Server)”, but alas this is not possible as the ManangedDTS namespace is not in the list of allowed external namespaces (even though it is technically part of the SQL product !), assumably this is because it references the windows.forms and many other namespaces itself. I’m working on implementing as a web service to expose XML instead. 
&lt;H1&gt;Example&lt;/H1&gt;
&lt;P&gt;This example looks at how to take data only retrievable through dot.net and return in to Reporting Services through an Analysis Services Stored Procedure. The best use case for this is of course data that you want to join to olap data via MDX. 
&lt;P&gt;In this case I want to return meat data on an OLAP cube such as: Last Processed Time, Data Source, Server Name, Database Name, Build Number and current user. 
&lt;P&gt;This can pretty much be implemented in any one of the methods above, but for real time access to cube meta data it makes sense to use an Analysis Services stored procedure. 
&lt;H2&gt;CubeInfo SSAS Stored Procedure (vb.net)&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Open Visual Studio 2005 
&lt;LI&gt;Start a New Class Library Project called “CubeInfoMDX” 
&lt;LI&gt;Add a reference to Microsoft.Analysis.AdoMdServer (msmgdsrv.dll). This is used to use the “Context” object to refer to current analysis services session. 
&lt;LI&gt;Add a reference to Microsoft.AnalysisServices (Microsoft.AnalysisServices.dll). This is used to create a new AMO session. 
&lt;LI&gt;Enter code to use AMO to return Last Processed Time &lt;/LI&gt;&lt;/UL&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #eeece1; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-background-themecolor: background2" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 456.8pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" vAlign=top width=609&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;Imports&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt; System&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;Imports&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt; System.Collections.Generic&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;Imports&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt; System.Text&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;Imports&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt; Microsoft.AnalysisServices&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;Imports&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt; Microsoft.AnalysisServices.AdomdServer&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt; ASStoredProcs&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Class&lt;/SPAN&gt; CubeInfo&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;''' &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;''' Returns Last Processed Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;''' &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Shared&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Function&lt;/SPAN&gt; GetCubeLastProcessedDate() &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; DateTime&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; oServer &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; Microsoft.AnalysisServices.Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;oServer.Connect(&lt;SPAN style="COLOR: #a31515"&gt;"Data Source="&lt;/SPAN&gt; + Context.CurrentServerID)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; dtTemp &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; DateTime = oServer.Databases.GetByName(Context.CurrentDatabaseName).Cubes.GetByName(Context.CurrentCube.Name).LastProcessed&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;oServer.Disconnect()&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Return&lt;/SPAN&gt; dtTemp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Catch&lt;/SPAN&gt; ex &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; Exception&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Throw&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Finally&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;oServer.Dispose()&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;'//return Context.CurrentCube.LastProcessed; //this doesn't work because of a bug: https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=124606&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;End Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;End Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;End Namespace&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'MS Mincho'"&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;UL&gt;
&lt;LI&gt;Compile Project 
&lt;LI&gt;Connect to SQL Server Management Studio\Analysis Server 
&lt;LI&gt;Right Click on Assemblies and select New 
&lt;LI&gt;Enter Assembly path with security of “unrestricted” 
&lt;LI&gt;Test the MDX extension with the following MDX Query 
&lt;LI&gt;with member [Measures].[LastProcessed] &lt;/LI&gt;&lt;/UL&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #eeece1; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-background-themecolor: background2" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 456.8pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" vAlign=top width=609&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;with&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; [Measures].[LastProcessed]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; [CubeInfoMDX].GetCubeLastProcessedDate()&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;select&lt;/SPAN&gt; {[Measures].[LastProcessed]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;on&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;columns&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie; mso-no-proof: yes"&gt;&lt;FONT size=2&gt;from [Adventure Works]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0cm; LINE-HEIGHT: 13pt; mso-line-height-rule: exactly; mso-layout-grid-align: none"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'Segoe UI','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: en-ie; mso-fareast-language: en-ie"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;We Can Now Make Up Report: 
&lt;UL&gt;
&lt;LI&gt;Add a new VS Project of Type “Report Server Project Wizard” 
&lt;LI&gt;Add shared data source called “AdventureWorksMDX”&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image002%5B2%5D.jpg" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image002%5B2%5D.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=226 src="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image002%5B1%5D.jpg" width=240 border=0 mce_src="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image002%5B1%5D.jpg"&gt;&lt;/A&gt; 
&lt;LI&gt;Click Design Mode in Query Builder and enter your MDX directly. Note that you can use the Graphical Query Designer if you add calculated measures in your cube for the extended measures. However I prefer not to tie the cube to the extensions.&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image004%5B3%5D.jpg" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image004%5B3%5D.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=260 src="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image004_thumb.jpg" width=369 border=0 mce_src="http://blogs.msdn.com/blogfiles/boduff/WindowsLiveWriter/ExtendingSSRSDataSources_9C4B/clip_image004_thumb.jpg"&gt;&lt;/A&gt; 
&lt;LI&gt;Add your column to report and call Report “CubeInfoMDX” 
&lt;LI&gt;You can now deploy and use you report. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;In My sample project (attached) I've added some more meta data that you might want to bring into MDX using&amp;nbsp;AMO such as: server name, database name, cube name, Data Source Name. &lt;/P&gt;
&lt;H1&gt;&lt;A&gt;Conclusion&lt;/A&gt;&lt;/H1&gt;
&lt;P&gt;Microsoft SQL&amp;nbsp;Server&amp;nbsp;2005 Reporting Services offers integration with heterogeneous environments through lots of routes, giving you some nice options for accessing non relational heterogeneous data. 
&lt;P&gt;There are some great samples of using Analysis Services Stores Procedure on CodePlex at: 
&lt;P&gt;&lt;A href="http://www.codeplex.com/ASStoredProcedures" mce_href="http://www.codeplex.com/ASStoredProcedures"&gt;http://www.codeplex.com/ASStoredProcedures&lt;/A&gt; 
&lt;H1&gt;&lt;A&gt;&lt;/A&gt;For more information: &lt;/H1&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=42457" mce_href="http://go.microsoft.com/fwlink/?LinkID=42457"&gt;Microsoft SQL Server Developer Center&lt;/A&gt; 
&lt;P&gt;Reporting Services: Using XML and Web Service Data Sources 
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa964129.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa964129.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa964129.aspx&lt;/A&gt; 
&lt;P&gt;Reporting Services: Extending with SQLCLR 
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/bb293147.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb293147.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb293147.aspx&lt;/A&gt; 
&lt;P&gt;Data Sources Supported by Reporting Services 
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms159219.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms159219.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms159219.aspx&lt;/A&gt; 
&lt;P&gt;Tutorial: Using XML Data in a Report&amp;nbsp; 
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms345334.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms345334.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms345334.aspx&lt;/A&gt; 
&lt;P&gt;Implementing a Data Processing Extension 
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms154655.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms154655.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms154655.aspx&lt;/A&gt; 
&lt;P&gt;Using an External Data Source with Reporting Services 
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms152917.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms152917.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms152917.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2669630" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boduff/attachment/2669630.ashx" length="84230" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boduff/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.msdn.com/boduff/archive/tags/SSRS/default.aspx">SSRS</category><category domain="http://blogs.msdn.com/boduff/archive/tags/SSAS/default.aspx">SSAS</category></item></channel></rss>