<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://prologika.com/CS/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/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>Prologika Forums</title><link>http://prologika.com/CS/blogs/</link><description>Business Intelligence to the Masses</description><dc:language>en-US</dc:language><generator>CommunityServer 2008 SP2 (Build: 30930.89)</generator><item><title>Reporting Services 2008 Dashboard Goes Live</title><link>http://prologika.com/CS/blogs/blog/archive/2009/01/05/reporting-services-2008-dashboard-goes-live.aspx</link><pubDate>Mon, 05 Jan 2009 17:44:19 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3121</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Thanks to the Robert Bruckner&amp;#39;s &lt;a href="http://blogs.msdn.com/robertbruckner/archive/2008/12/23/reporting-services-2008-information-aggregator.aspx"&gt;blog&lt;/a&gt;, I&amp;#39;ve learned that Microsoft has published the Reporting Services 2008 Information Aggregator. It is a cool dashboard page that aggregates a variety of resources related to Reporting Services, such as training content, white papers, blogs and more. I&amp;#39;m proud to be featured as an MVP &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt; The page also includes to my most recent books and training videos I&amp;#39;ve authored.
&lt;/p&gt;&lt;p&gt;Kudos go to the Reporting Services user education team who worked hard to implement this page. Check out the SSRS aggregator and add it to your favorites.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3121" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Business+Intelligence/default.aspx">Business Intelligence</category></item><item><title>SQL Server 2005 Service Pack 3 is Out</title><link>http://prologika.com/CS/blogs/blog/archive/2008/12/18/sql-server-2005-service-pack-3-is-out.aspx</link><pubDate>Thu, 18 Dec 2008 13:03:02 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3088</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Yesterday, Microsoft &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ae7387c3-348c-4faa-8ae5-949fdfbe59c4&amp;amp;displaylang=en"&gt;released&lt;/a&gt; SQL Server 2005 Service Pack 3. Reporting Services Report Builder added support with Teradata.  Note that some manual configuration is required to turn things &amp;#39;on&amp;#39; as well as you need to install the .Net provider from Teradata.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3088" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/General/default.aspx">General</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category></item><item><title>Dimensionalizing Pivoted Measures</title><link>http://prologika.com/CS/blogs/blog/archive/2008/12/15/dimensionalizing-pivoted-measures.aspx</link><pubDate>Tue, 16 Dec 2008 00:43:39 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3079</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Issue
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You have a table with pivoted measures, such as:
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://www.prologika.com/blog/121608_0043_Dimensional1.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Use the following statement to create and populate the table:
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;CREATE&lt;/span&gt;
			&lt;span style="color:blue;"&gt;TABLE&lt;/span&gt; pvt&lt;span style="color:blue;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;VendorID &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; DateID &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; MaturityAmount1 &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; MaturityAmount2 &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;MaturityAmount3 &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount1 &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount2 &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount3 &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Courier New;font-size:8pt;"&gt;GO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt; 100&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt; 100&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt; 200&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt; 200&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt; 300&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt; 400&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt; 100&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt; 100&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
			&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; pvt &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt; 200&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;font-family:Courier New;font-size:8pt;"&gt;GO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Let&amp;#39;s say you need a way to unpivot the results in the following format which is more suitable for OLAP:
&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.prologika.com/blog/121608_0043_Dimensional2.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;In this way, you eliminate the repeating measure columns with a single column. Here, the BucketID column is introduced so you could join the results to a dimension to let the user cross-tab the results on columns.
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Solution
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Usually, ETL processes would take care of transforming data in format suitable for analysis especially with large data volumes. However, with smaller fact tables and an OLAP layer directly on top of the operational database, such as having SQL views directly on top of the source database, you may need an ad-hoc approach to unpivot the results. Assuming you are fortunate to have SQL Server 2005 or above, you can use the SQL Server UNPIVOT function to unpivot on multiple columns. The following query does the trick:
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; VendorID&lt;span style="color:gray;"&gt;,&lt;/span&gt; DateID&lt;span style="color:gray;"&gt;,&lt;/span&gt;
			&lt;span style="color:fuchsia;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:fuchsia;"&gt;REPLACE&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;Maturity&lt;span style="color:gray;"&gt;,&lt;/span&gt;
			&lt;span style="color:red;"&gt;&amp;#39;MaturityAmount&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;
			&lt;span style="color:red;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;
			&lt;span style="color:blue;"&gt;as&lt;/span&gt;
			&lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;
			&lt;span style="color:blue;"&gt;as&lt;/span&gt; BucketID&lt;span style="color:gray;"&gt;,&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;MaturityAmount&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; VendorID&lt;span style="color:gray;"&gt;,&lt;/span&gt; DateID&lt;span style="color:gray;"&gt;,&lt;/span&gt; MaturityAmount1&lt;span style="color:gray;"&gt;,&lt;/span&gt; MaturityAmount2&lt;span style="color:gray;"&gt;,&lt;/span&gt; MaturityAmount3&lt;span style="color:gray;"&gt;,&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;RepricingAmount1&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount2&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount3 &lt;span style="color:blue;"&gt;FROM&lt;/span&gt; pvt&lt;span style="color:gray;"&gt;)&lt;/span&gt; p
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Courier New;font-size:8pt;"&gt;UNPIVOT
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;MaturityAmount &lt;span style="color:blue;"&gt;FOR&lt;/span&gt; Maturity &lt;span style="color:gray;"&gt;IN&lt;/span&gt;&lt;span style="color:blue;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;MaturityAmount1&lt;span style="color:gray;"&gt;,&lt;/span&gt; MaturityAmount2&lt;span style="color:gray;"&gt;,&lt;/span&gt; MaturityAmount3&lt;span style="color:gray;"&gt;))&lt;/span&gt;
			&lt;span style="color:blue;"&gt;AS&lt;/span&gt; UnPivotedMaturity
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray;font-family:Courier New;font-size:8pt;"&gt;UNPIVOT
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;RepricingAmount &lt;span style="color:blue;"&gt;FOR&lt;/span&gt; Repricing &lt;span style="color:gray;"&gt;IN&lt;/span&gt;&lt;span style="color:blue;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;RepricingAmount1&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount2&lt;span style="color:gray;"&gt;,&lt;/span&gt; RepricingAmount3&lt;span style="color:gray;"&gt;))&lt;/span&gt;
			&lt;span style="color:blue;"&gt;AS&lt;/span&gt; UnPivotedRepricing
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:8pt;"&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt;
			&lt;span style="color:fuchsia;"&gt;REPLACE&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;Maturity&lt;span style="color:gray;"&gt;,&lt;/span&gt;
			&lt;span style="color:red;"&gt;&amp;#39;Maturity&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;
			&lt;span style="color:red;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;
			&lt;span style="color:gray;"&gt;=&lt;/span&gt;
			&lt;span style="color:fuchsia;"&gt;REPLACE&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;Repricing&lt;span style="color:gray;"&gt;,&lt;/span&gt;
			&lt;span style="color:red;"&gt;&amp;#39;Repricing&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;
			&lt;span style="color:red;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Notice that a WHERE clause is needed to join the two unpivoted sets so you don&amp;#39;t end up with a Cartesian set. The net result is that the number of rows in the unpivoted dataset is:
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;Number of Rows in Pivoted (original) Table * Number of Repeated Columns
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So, in our case, the dataset will have 9 * 3 = 27 rows. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3079" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Business+Intelligence/default.aspx">Business Intelligence</category></item><item><title>Troubleshooting the SharePoint Add-in for Reporting Services</title><link>http://prologika.com/CS/blogs/blog/archive/2008/11/19/troubleshooting-the-sharepoint-add-in-for-reporting-services.aspx</link><pubDate>Wed, 19 Nov 2008 22:06:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3063</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A common issue when setting up Reporting Services integration with SharePoint is that the SharePoint add-in is not installed properly although the setup program doesn&amp;#39;t indicate any issues. More than likely, the culprit is that the person who installed the add-in is not SharePoint Web farm administrator and Site Collection administrator. &lt;/p&gt;
&lt;p&gt;As&amp;nbsp;a first stop for troubleshooting SharePoint integration issues, you should examine the add-in log after the add-in setup completes to verify if it was installed successfully. You&amp;#39;ll find the log file (RS_SP_&amp;lt;N&amp;gt;.log) in your temp folder, such as \Documents and Settings\&amp;lt;login&amp;gt;\Local Settings\Temp. Specifically, check that all activation tasks have completed successfully and that there are no errors. If all is well, the log files should look as follows: &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;User: &amp;lt;userid&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Installing Report Server feature. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Calling copyappbincontents command. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;copyappbincontents command completed successfully. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Adding Report Server feature to farm. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Installed Report Server feature. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Activating Report Server feature to root level site collections. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Activating feature in web app &amp;#39;SharePoint - 80&amp;#39; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Activating feature to root site collection: http://&amp;lt;server&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Activated feature for root site collection: http://&amp;lt;server&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Activating Report Server feature in all admin site collections. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Activating feature in web app &amp;#39;&amp;#39; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Activating feature to root site collection: http://&amp;lt;server&amp;gt;:35000 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:Courier New;"&gt;Feature already activated in site collection http://&amp;lt;server&amp;gt;:35000&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3063" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Cumulative Update 2 for SQL Server 2008</title><link>http://prologika.com/CS/blogs/blog/archive/2008/11/19/cumulative-update-2-for-sql-server-2008.aspx</link><pubDate>Wed, 19 Nov 2008 17:58:45 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3062</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Microsoft has &lt;a href="http://support.microsoft.com/kb/958186/en-us"&gt;released&lt;/a&gt; the Cumulative Update 2 build (build number 1779) for SQL Server 2008. The update is not publicly available as of now. It has to be released individually based on whether you are running into a bug fixed in the build and it is password-protected. Among other things, it fixes the freeze issue associated with opening SSAS projects in BIDS.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3062" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Referencing Parameters in SSRS Calculated Members</title><link>http://prologika.com/CS/blogs/blog/archive/2008/11/09/referencing-parameters-in-ssrs-calculated-members.aspx</link><pubDate>Mon, 10 Nov 2008 00:09:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3061</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Issue&lt;/strong&gt;: You author an SSRS report that connects to a cube. You want to create a calculated member that uses a report parameter. For example, the Selector calculated member in the following query returns 1 if a given employee has exceeded 1 million in sales for the dates specified by the user in the report parameter. &lt;span style="font-size:10pt;font-family:Courier New;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;WITH MEMBER [Measures].[Selector] AS SUM ( &lt;/p&gt;
&lt;p&gt;StrToSet(@DateCalendar), iif([Measures].[Reseller Sales Amount]&amp;gt;1000000, 1, NULL) &lt;/p&gt;
&lt;p&gt;) &lt;/p&gt;
&lt;p&gt;select non empty {[Measures].[Reseller Sales Amount],[Measures].[Reseller Order Quantity], selector} on 0, &lt;/p&gt;
&lt;p&gt;non empty (Filter([Employee].[Employee].[Employee].Members, [Measures].[Selector]&amp;gt;0) * [Date].[Calendar].[Calendar Year]) on 1 &lt;/p&gt;
&lt;p&gt;from (select StrToSet(@DateCalendar) on 0 from [Adventure Works]) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, when you run the query you get the following error if you target Analysis Services 2005: &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:Courier New;"&gt;The DateCalendar parameter cannot be resolved because it was referenced in an inner subexpression. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Obviously, the built-in SSAS data provider has an issue parsing parameters in a calculated member. This issue is apparently fixed in SQL Server 2008 where the above query executes just fine. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Workaround&lt;/strong&gt;: As a workaround with SQL Server 2005, try defining a set that references the parameter and use the set in the calculated members, as follows: &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;WITH SET [SchoolYears] AS STRTOSET(@DateCalendar) &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;MEMBER [Measures].[Selector] AS SUM ( &lt;/p&gt;
&lt;p&gt;[SchoolYears], iif([Measures].[Reseller Sales Amount]&amp;gt;1000000, 1, NULL) &lt;/p&gt;
&lt;p&gt;) &lt;/p&gt;
&lt;p&gt;select non empty {[Measures].[Reseller Sales Amount],[Measures].[Reseller Order Quantity], selector} on 0, &lt;/p&gt;
&lt;p&gt;non empty (Filter([Employee].[Employee].[Employee].Members, [Measures].[Selector]&amp;gt;0) * [Date].[Calendar].[Calendar Year]) on 1 &lt;/p&gt;
&lt;p&gt;from (select StrToSet(@DateCalendar) on 0 from [Adventure Works]) &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3061" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category></item><item><title>Dundas Chart Controls for .NET Available</title><link>http://prologika.com/CS/blogs/blog/archive/2008/10/27/dundas-chart-controls-for-net-available.aspx</link><pubDate>Mon, 27 Oct 2008 16:09:54 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3059</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;On Friday, Microsoft &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en"&gt;released&lt;/a&gt; chart controls for Microsoft .NET Framework 3.5. These are re-tooled Dundas .NET chart controls which are now baked in the .NET framework. This is important because you can add the same stunning Dundas chart features to your Windows Forms and ASP.NET applications without external dependencies or licensing fees.  It also minimizes your learning curve, as the Dundas controls share the same object model across technologies, e.g. Windows Forms to ASP.NET to Reporting Services.
&lt;/p&gt;&lt;p&gt;Currently, only the Dundas chart control has made the cut to .NET. &lt;span style="font-family:MS Shell Dlg;font-size:10pt;"&gt;&lt;span style="color:black;"&gt;There is a sticky &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/" /&gt;&lt;/span&gt;post&lt;span style="color:black;"&gt; at the top of the forums that has all of the links. Keep an eye on the PDC announcements today for more BI goodies.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3059" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Business+Intelligence/default.aspx">Business Intelligence</category></item><item><title>SSAS WHERE vs. Subselect Puzzle</title><link>http://prologika.com/CS/blogs/blog/archive/2008/10/23/ssas-where-vs-subselect-puzzle.aspx</link><pubDate>Thu, 23 Oct 2008 12:53:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3058</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;#39;ve been involved recently in a quest to optimize an SSAS 2008 long-running query that would return the 12-month history of a KPI. Since the KPI was displayed on a dashboard page alongside other KPIs and charts, it was important to optimize the query as much possible. Rephrased to Adventure Works, the query went something like this: &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;WITH&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;MEMBER&lt;/span&gt; increaser &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#800000;"&gt;Iif&lt;/span&gt;([Measures].[Internet Sales Amount]&amp;gt;([Measures].[Internet Sales Amount], [Date].[Calendar].&lt;span style="color:#800000;"&gt;PrevMember&lt;/span&gt;),1,&lt;span style="color:#0000ff;"&gt;NULL&lt;/span&gt;) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;MEMBER&lt;/span&gt; CustomersWithIncrease &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#800000;"&gt;Sum&lt;/span&gt;([Customer].[Customer].[Customer], [Measures].[increaser]) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; [Measures].[CustomersWithIncrease] &lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 0, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#800000;"&gt;ParallelPeriod&lt;/span&gt; ([Date].[Calendar].[Month], 11, [Date].[Calendar].[Month].&amp;amp;[2003]&amp;amp;[12]) :[Date].[Calendar].[Month].&amp;amp;[2003]&amp;amp;[12] &lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 1 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; -{[Customer].[Customer].&amp;amp;[20075]} &lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 0 &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; [Adventure Works]) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;where&lt;/span&gt; {[Sales Territory].[Sales Territory Country].&amp;amp;[United States], [Sales Territory].[Sales Territory Country].&amp;amp;[United Kingdom]} &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This query compares the sales for each customer with the customer&amp;#39;s sales for the previous month and returns the number of customers who have increased sales for the past 12 months. Also, the query uses a subselect to exclude a customer and a WHERE clause that restricts the results to USA and United Kingdom only. The real-world query would get the members to filter in the WHERE clause from the UI. &lt;/p&gt;
&lt;p&gt;The first optimization technique to point out is that instead of filtering the customer set using the Filter function, the query benefits from Mosha&amp;#39;s summator &lt;a href="http://sqlblog.com/blogs/mosha/archive/2007/11/22/optimizing-count-filter-expressions-in-mdx.aspx"&gt;trick&lt;/a&gt;, which alone improved the query performance about ten times. However, the query was still taking long to execute (some 30 seconds with set of 150,000 customers). Much to my surprise though, flipping the WHERE and the subselect clauses cut the query time in half.&lt;span style="font-size:8pt;font-family:Courier New;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;WITH&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;MEMBER&lt;/span&gt; increaser &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#800000;"&gt;Iif&lt;/span&gt;([Measures].[Internet Sales Amount]&amp;gt;([Measures].[Internet Sales Amount], [Date].[Calendar].&lt;span style="color:#800000;"&gt;PrevMember&lt;/span&gt;),1,&lt;span style="color:#0000ff;"&gt;NULL&lt;/span&gt;) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;MEMBER&lt;/span&gt; CustomersWithIncrease &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#800000;"&gt;Sum&lt;/span&gt;([Customer].[Customer].[Customer], [Measures].[increaser]) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; [Measures].[CustomersWithIncrease] &lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 0, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#800000;"&gt;ParallelPeriod&lt;/span&gt; ([Date].[Calendar].[Month], 11, [Date].[Calendar].[Month].&amp;amp;[2003]&amp;amp;[12]) :[Date].[Calendar].[Month].&amp;amp;[2003]&amp;amp;[12] &lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 1 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; &lt;strong&gt;(&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; {[Sales Territory].[Sales Territory Country].&amp;amp;[United States], &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;strong&gt;[Sales Territory].[Sales Territory Country].&amp;amp;[United Kingdom]} &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 0 &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; [Adventure Works]) &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;where&lt;/span&gt; -{[Customer].[Customer].&amp;amp;[20075]} &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Here, the member that needs to be excluded was moved to the query WHERE clause, while the rest of the filter went to the subselect. While I don&amp;#39;t know what the server does exactly, my hypothesis is that the WHERE clause is more efficient in restricting the cube space before the rest of the query is executed. I wasn&amp;#39;t able to reproduce the performance gain with the Adventure Works cube probably because is too small or the issue was design specific. Larger cubes may benefit from the filter flip.&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IMPORTANT&amp;nbsp;&amp;nbsp;OOPS &lt;img src="http://prologika.com/CS/emoticons/emotion-6.gif" alt="Sad" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As Mosha was quick to point out, in particular case where SUM is used, the attempt to exclude a given customer in both cases (subselect and WHERE) will not work. Specifically, filtering out the customer is a no-op, since the Customer.Customer.Customer inside Sum overwrites it. Consequently, the queries&amp;nbsp;don&amp;rsquo;t exclude this customer from the computations at all and therefore are wrong. A great optimization without QA involvement, indeed :-). However, I still can&amp;#39;t explain why subselect is slower if both options are no-ops. BTW, if the exclude filter was done on another attribute (not Customer), then the subselect would produce the correct results, while the WHERE clause will still be a no-op.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In this particular case, the easiest way to exclude specific customers is to remove them from the set inside the SUM function, as the following query shows. This, of course, will impact the query performance. Based on my test, the member exclusion adds about 25% overhead to the query.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;WITH&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;MEMBER&lt;/span&gt; increaser &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#800000;"&gt;Iif&lt;/span&gt;([Measures].[Internet Sales Amount]&amp;gt;([Measures].[Internet Sales Amount], [Date].[Calendar].&lt;span style="color:#800000;"&gt;PrevMember&lt;/span&gt;),1,&lt;span style="color:#0000ff;"&gt;NULL&lt;/span&gt;) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;MEMBER&lt;/span&gt; CustomersWithIncrease &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#800000;"&gt;Sum&lt;/span&gt;({[Customer].[Customer].[Customer] - &lt;strong&gt;[Customer].[Customer].&amp;amp;[20075]} &lt;/strong&gt;, [Measures].[increaser]) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; [Measures].[CustomersWithIncrease] &lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 0, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#800000;"&gt;ParallelPeriod&lt;/span&gt; ([Date].[Calendar].[Month], 11, [Date].[Calendar].[Month].&amp;amp;[2003]&amp;amp;[12]) :[Date].[Calendar].[Month].&amp;amp;[2003]&amp;amp;[12] &lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 1 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; {[Sales Territory].[Sales Territory Country].&amp;amp;[United States], &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;[Sales Territory].[Sales Territory Country].&amp;amp;[United Kingdom]} &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:8pt;font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;on&lt;/span&gt; 0 &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; [Adventure Works])&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3058" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Report Builder 2.0 RTM'ed</title><link>http://prologika.com/CS/blogs/blog/archive/2008/10/17/report-builder-2-0-rtm-ed.aspx</link><pubDate>Sat, 18 Oct 2008 02:59:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3056</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today, Microsoft &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&amp;amp;displaylang=en"&gt;released&lt;/a&gt; Report Builder 2.0 (build&amp;nbsp;10.00.1600.60) , as Robert Bruckner &lt;a href="http://blogs.msdn.com/robertbruckner/archive/2008/10/17/report-builder-20-release.aspx"&gt;announced&lt;/a&gt; in his blog. This is a major milestone in the Reporting Services roadmap. In my opinion, Report Builder 2.0 is one of the most important and exciting features of Reporting Services 2008 as it bridges the gap between standard and end-user (ad hoc) reporting. You should definitely consider Report Builder and Analysis Services for your ad-hoc reporting projects.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3056" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>People Ready BI</title><link>http://prologika.com/CS/blogs/blog/archive/2008/10/07/people-ready-bi.aspx</link><pubDate>Wed, 08 Oct 2008 01:20:36 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3052</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;At the BI Conference in Seattle, Microsoft announced the future roadmap for next BI-oriented SQL Server release, nee Kilimanjaro, that will focus on three major teams:
&lt;/p&gt;&lt;p&gt;• Self Service Analytics 
&lt;/p&gt;&lt;p&gt;• Self Service Reporting 
&lt;/p&gt;&lt;p&gt;• Sharing, Collaboration &amp;amp; Management
&lt;/p&gt;&lt;p&gt;The Self Service Analytics will encompass projects Madison (a share-nothing MPP scale-out version of SQL Server, powered by DATAllegro technology) and Gemini, which I mentioned &lt;a href="http://prologika.com/CS/blogs/blog/archive/2008/10/06/memory-dimensional-model-mdm-on-the-horizon.aspx"&gt;before&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;The Self Service Reporting is where Reporting Services.NEXT will come in, of course. Microsoft announced the acquisition of &lt;a href="http://www.90degreesoftware.com/"&gt;90 Degree Software&lt;/a&gt;. In case you are not familiar with this company, 90 Degree Software has built a very comprehensive report designer that is very similar to Report Builder 2.0. What I expect from this acquisition is more end-user enhancement in Report Builder 2.0 and improved Analysis Services integration. Expect also a shared report library that lets the end user save and share report elements and templates with other users.
&lt;/p&gt;&lt;p&gt;The &lt;a href="http://www.softartisans.com/"&gt;SoftArtisans&lt;/a&gt; acquisition will finally materialize in Kilimindjaro to empower business users to author reports inside Microsoft Office. Expect the preview bits of Kilimanjaro in 1H2009 with release in 1H2010. Watch the keynote presentation &lt;a href="http://wm.istreamplanet.com/customers/ms/750_ms_biconf_081006.asx"&gt;online&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3052" width="1" height="1"&gt;</description></item><item><title>Memory-based Dimensional Model (MDM) on the Horizon</title><link>http://prologika.com/CS/blogs/blog/archive/2008/10/06/memory-dimensional-model-mdm-on-the-horizon.aspx</link><pubDate>Tue, 07 Oct 2008 01:27:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3050</guid><dc:creator>tlachev</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;As the news arrived today (see Mosha Pasumansky &lt;a href="http://sqlblog.com/blogs/mosha/default.aspx"&gt;blog&lt;/a&gt;, Chris Webb &lt;a href="http://cwebbbi.spaces.live.com/default.aspx?wa=wsignin1.0"&gt;blog&lt;/a&gt;, and Marco Russo &lt;a href="http://sqlblog.com/blogs/marco_russo/archive/2008/10/06/microsoft-bi-conference-2008-announcements-on-stage.aspx"&gt;blog&lt;/a&gt;) , the BI Conference revealed what has been brewing for a while in the Microsoft BI nest. Project Gemini, which one may call Memory-based Dimensional Model (MDM) to draw a comparison with the Unified Dimension Model (UDM), will let business users create ad-hoc cubes that are stored in memory. This will let Microsoft compete with other BI players, such as the Cognos TM1 offering which Cognos acquired from Applix. Accidentally, I dare to predict that MDM will be very similar to TM 1 (watch a demo &lt;a href="http://www.cognos.com/products/tm1/tm1-demo/"&gt;here&lt;/a&gt;) but of course better &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;. &lt;/p&gt;
&lt;p&gt;While I need to get my hands on this Gemini thing to say something worthwhile, I really hope that existing UDM cubes could benefit from it as well, especially in terms of performance. Today, folks are pushing SSAS to its limits. A dashboard page, for example, may need to execute many queries and crunch huge volumes of data to present trend graphs within seconds. It will be cool if Gemini lets you cache subcubes in memory to speed up these scenarios. For example, if you need to implement a bunch of customer-related KPIs, it will be nice if you could tell Gemini to cache in memory or materialize to disk the pre-aggregated at the customer level data and which dimensions can be used to slice these KPIs. &lt;/p&gt;
&lt;p&gt;What about giving the business users the option to create ad-hoc cubes? I have to admit I have mixed fillings about this. The term &amp;quot;OLAP&amp;quot; alone is known to cause severe brain crunch to many users. I am a bit skeptical that &amp;quot;off you go, start building your own cubes in Excel&amp;quot; philosophy will really fly. If you package a cool wizard that hides some of the dimensional model complexity, how would verify that the results are indeed correct so you don&amp;#39;t end up with as many versions of the truth as the number of users? How would teach end users MDX to create their own calculations? Not sure how much of your time Gemini will really save if this is its major selling point. But again I may change my point of view as details unfold as life often proves me wrong. Meanwhile, long live MDM and Kilimanjaro, which is the code name for SQL Server.NEXT, scheduled for H1 2010!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3050" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Kilimanjaro/default.aspx">Kilimanjaro</category></item><item><title>Cumulative Update Package 1 for SQL Server 2008</title><link>http://prologika.com/CS/blogs/blog/archive/2008/09/23/cumulative-update-package-1-for-sql-server-2008.aspx</link><pubDate>Tue, 23 Sep 2008 17:20:10 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3047</guid><dc:creator>tlachev</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;span style="font-family:Verdana;font-size:10pt;"&gt;&lt;span style="color:black;"&gt;Microsoft has &lt;a href="http://support.microsoft.com/kb/956717/en-us" /&gt;&lt;/span&gt;released&lt;span style="color:black;"&gt; the first for SQL Server 2008 cumulative update package. Among other issues, it fixes the SSAS bug with requesting measures with mixed aggregation functions which I previously &lt;a href="http://prologika.com/CS/blogs/blog/archive/2008/08/15/nasty-ssas-2008-bug.aspx" /&gt;&lt;/span&gt;reported&lt;span style="color:black;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3047" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Sorting Dates in a PivotTable Report</title><link>http://prologika.com/CS/blogs/blog/archive/2008/09/10/sorting-dates-in-a-pivottable-report.aspx</link><pubDate>Thu, 11 Sep 2008 01:06:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3046</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="color:#1f497d;"&gt;Issue: You use Excel as an OLAP browser connected to an SSAS cube. You&amp;#39;ve defined the name of the Month attribute in the Date hierarchy in the format MMM-YYYY. While months are sorted in an ascending order in Excel, descending sorting doesn&amp;#39;t work; or rather Excel sorts them as strings. That&amp;#39;s because Excel interprets these captions as strings instead of dates even if you set the Value property of the Month attribute to a field of DateTime type. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#1f497d;"&gt;Workaround: You can use the Excel custom sorting feature as a workaround while waiting for Excel to become a better OLAP citizen: &lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="color:#1f497d;"&gt;Connect to the cube and select the Month attribute to get all months displayed in Excel. Select all month cells. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#1f497d;"&gt;Click the Excel Office Ribbon button. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#1f497d;"&gt;In the Popular tab, click the Edit Custom Lists button. &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://www.prologika.com/blog/091108_0106_SortingDate1.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="color:#1f497d;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="color:#1f497d;"&gt;In the Custom Lists dialog box that follows, click Import button to create a new custom list for the dates in the format MMM-YYYY. Click OK&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://www.prologika.com/blog/091108_0106_SortingDate2.png" alt="" /&gt;&lt;span style="color:#1f497d;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#1f497d;"&gt;As you can see, there is a custom sorting list for months in the format MMM, so descending sort will work if the month captions are in MMM format. However, the end user won&amp;#39;t be able to tell the months apart if the user requests only the Month attribute on the report. So, you kind of have to pick up your own poison.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3046" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category></item><item><title>Personalized Cubes</title><link>http://prologika.com/CS/blogs/blog/archive/2008/09/01/personalized-cubes.aspx</link><pubDate>Tue, 02 Sep 2008 01:33:05 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3039</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Scenario: You need to personalize the captions of calculated members or/and KPIs of an SSAS cube. For example, a solution vendor may need to deploy a cube to multiple clients. Instead of maintaining separate cube definitions, the vendor may prefer to change the captions of certain calculated members and KPIs per client. There wasn&amp;#39;t a good story in SSAS 2005 about such requirements. In SSAS 2008, there are at least two techniques to tackle cube personalization.
&lt;/p&gt;&lt;p&gt;First, SSAS 2008 introduces a new Caption property to calculated members and KPIs, which Chris Webb has already &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2000.entry?wa=wsignin1.0"&gt;written&lt;/a&gt; about. Vidas Matelis has &lt;a href="http://www.ssas-info.com/VidasMatelisBlog/30_ssas-2008-katmai-mdx-changes"&gt;provided&lt;/a&gt; great examples of using the Caption property. Thanks to this enhancement, you can keep the names of calculated members and KPIs the same but change only their captions. This is the good news.
&lt;/p&gt;&lt;p&gt;What if you need to make definition changes programmatically, such as to check the type of the client and change captions accordingly? Well, unfortunately the Caption property is not available in the AMO library as it has not been added to the KPI class. What&amp;#39;s worse is that the CREATE KPI statement doesn&amp;#39;t actually add the KPI definition to the KPIs Collection so you cannot programmatically change the caption by enumerate the AMO Kpis collection and update the KPI definition. To make the story short, the only way I&amp;#39;ve found to update the KPI caption is to update the cube MDX script (Cube.MDXScripts AMO collection). This forces you to resort to search and replace text inside the cube script. Sigh… The following code shows how to use AMO to connect to the cube and change the cube MDX script.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; Microsoft.AnalysisServices;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; AMO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:blue;"&gt;class&lt;/span&gt;
			&lt;span style="color:#2b91af;"&gt;Program
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;    {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:blue;"&gt;static&lt;/span&gt;
			&lt;span style="color:blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;        {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;Server&lt;/span&gt; server = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
			&lt;span style="color:#2b91af;"&gt;Server&lt;/span&gt;();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;            server.Connect(&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;lt;server&amp;gt;&amp;quot;&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;Database&lt;/span&gt; database = server.Databases[&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;lt;database name&amp;quot;&lt;/span&gt;];
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;Cube&lt;/span&gt; cube = database.Cubes[&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;lt;cube name&amp;gt;&amp;quot;&lt;/span&gt;];
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;        &lt;span style="color:#00b050;"&gt;// assume KPIs are defined in the cube default script&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;MdxScript&lt;/span&gt; mdxScript = cube.MdxScripts[0]; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;Command&lt;/span&gt; command = mdxScript.Commands[0];
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;
			&lt;span style="color:#00b050;"&gt;// search and replace captions in the command.Text
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#00b050;font-family:Courier New;font-size:9pt;"&gt;        // command.Text = ...
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;            cube.Update(&lt;span style="color:#2b91af;"&gt;UpdateOptions&lt;/span&gt;.ExpandFull);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;        }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:9pt;"&gt;    }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Courier New;"&gt;}&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The second personalization option is the new Personalization Extension mechanism in the SSAS 2008, which I personally haven&amp;#39;t tried out. Microsoft has provided a sample &lt;a href="http://msdn.microsoft.com/en-us/library/bb500163.aspx"&gt;here&lt;/a&gt;. A custom personalization extension is a .NET code that is deployed to the server. It lets you create user-specific session-level calculated members and KPIs without having to change the cube definition. The extension changes are transient and disappear when the user&amp;#39;s session ends.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3039" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Extending Report Builder 2.0</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/31/extending-report-builder-2-0.aspx</link><pubDate>Sun, 31 Aug 2008 18:20:11 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3036</guid><dc:creator>tlachev</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;As I mentioned in my previous &lt;a href="http://prologika.com/CS/blogs/blog/archive/2008/08/25/report-builder-2-0-rc1-is-here.aspx"&gt;blog&lt;/a&gt;, Report Builder 2.0 RC1 has arrived. Although perhaps too early in the game, you may wonder how you can get the most out of Report Builder 2.0 and extend it when the built-in features are not enough. As Report Designer and Report Builder 2.0 share the same design surface, you may believe that they are equally extensible. Unfortunately, this is not quite the case. Specifically, due to time constraints, Report Builder 2.0 supports the following RS extensibility features &lt;strong&gt;only&lt;/strong&gt; in server mode:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Custom Data Processing Extensions
&lt;/li&gt;&lt;li&gt;Custom Security
&lt;/li&gt;&lt;li&gt;Custom Report Items
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Server mode is triggered when you open a report from the server or when the report references a shared data source whose definition must reside on the server. When you preview a report in server mode, the report is processed and rendered on the server. The above extensibility areas are not available in client mode. For example, the user can open a server report that has a custom report item, sets its properties (assuming that the right configuration settings have been made to the Report Builder 2.0 configuration files), and preview the report, as shown in the screenshot. However, the Report Builder 2.0 ribbon will not be extended with the custom report item. Nor the user will be able to author a report from scratch and add the custom report item to the report. 
&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.prologika.com/blog/083108_1819_ExtendingRe1.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;The unfortunately side effect is that if the business user needs to use a CRI on a report, such as the Dundas Map CRI, a developer must author a &amp;quot;shim&amp;quot; report with Report Designer, add the CRI to the report, and deploy the report to the server so the business user can use the report as a starting point.
&lt;/p&gt;&lt;p&gt;The only extensibility mechanism that seems to be working in client mode in RC1 is custom code (embedded and external). More than likely, Report Builder 2.0 will get the entire extensibility support of Reporting Services at some point of time. If you want to expedite the process, log your wish on connect.microsoft.com and vote for extensibility features you need Report Builder 2.0 to provide. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3036" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Report Builder 2.0 RC1 is Here</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/25/report-builder-2-0-rc1-is-here.aspx</link><pubDate>Mon, 25 Aug 2008 23:12:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3032</guid><dc:creator>tlachev</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;"&gt;Thanks to Robert Bruckner&amp;#39;s &lt;a target="_blank" href="http://blogs.msdn.com/robertbruckner/archive/2008/08/25/ReportBuilder-20-RC1-Release.aspx"&gt;blog&lt;/a&gt;, I&amp;#39;ve learned that the Report Builder 2.0 (previously known as Report Designer Preview) Release Candidate 1 is &lt;a target="_self" href="http://blogs.msdn.com/robertbruckner/archive/2008/08/25/ReportBuilder-20-RC1-Release.aspx"&gt;available&lt;/a&gt; for download. This should be a feature-complete build of Report Builder 2.0, which is scheduled for official release in October.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;IMO, Report Builder 2.0 is one of most exciting features of Reporting Services. I expect it to blur the &amp;quot;great divide&amp;quot; between standard and ad-hoc reporting. Based on some preliminary feedback from our business customers, they are very excited about Report Builder 2.0 and they favor it instead of Report Builder 1.0. Despite the unfortunate name, Report Builder 2.0 has very little to do with its predecessor. Instead, it&amp;#39;s very close (almost identical) to the BIDS Report Designer as it supports the full RDL feature set.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;You should definately evaluate Report Builder 2.0 for ad hoc business reporting.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3032" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Where is THE Book?</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/22/where-is-the-book.aspx</link><pubDate>Fri, 22 Aug 2008 19:40:55 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3031</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A few readers are asking about the whereabouts of my book Microsoft SQL Server 2008 Reporting Services, so I felt I need to write a short status report. The book is printed and it&amp;#39;s on stock with the distributor. It&amp;#39;s making its way slowly-y-y to the retail network. It turns out there are lots of things that need to happen before the book is finally listed in-stock with retailers, such as Amazon. I am frustrated by this fact but there is nothing I can do to speed up the process. Hopefully, the book will pop within a few days so you can get it at a discounted price.
&lt;/p&gt;&lt;p&gt;Anyhow, if you need the paper copy as soon as possible, you can &lt;a href="http://www.ipgbook.com/cart/cart.cfm?backPage=http://www.ipgbook.com/showBook.cfm?bookid=0976635313&amp;amp;userid=EBE56DD4-803F-2B7A-702143AF397DD52D"&gt;order&lt;/a&gt; it from the distributor at the full price and you will get it within 2-3 days. Alternatively, you can order the e-book version, which is already available retail, such as on ebooks.com, diesel-ebooks.com, etc.
&lt;/p&gt;&lt;p&gt;Finally, don&amp;#39;t forget that two chapters are freely available on the &lt;a href="http://prologika.com/Books/0976635313/Book.aspx"&gt;book page&lt;/a&gt;, plus video demos, to get you started with RS 2008.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3031" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Writing/default.aspx">Writing</category></item><item><title>Nasty SSAS 2008 Bug</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/15/nasty-ssas-2008-bug.aspx</link><pubDate>Fri, 15 Aug 2008 12:11:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3018</guid><dc:creator>tlachev</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;There is a nasty known bug with SSAS 2008, where if a query that requests two measures with Sum and LastNonEmpty aggregate functions side by side and the query uses NON EMPTY (which all OLAP clients use by default), the server forces the measure with the SUM function to display empty. &lt;/p&gt;
&lt;p&gt;Steps to repro: &lt;/p&gt;
&lt;p&gt;Use the Analysis Services Tutorial cube (Lesson 10) which is included in the SSAS samples. Don&amp;#39;t use the Adventure Works cube because it has measure expressions for certain measures, so changing a measure aggregation function to LastNonEmpty and deploying the cube results gives the error &amp;quot;Errors in the OLAP storage engine: The metadata for the statically linked measure group, with the name of &amp;#39;Internet Sales&amp;#39;, cannot be verified against the source object.&amp;quot; That&amp;#39;s a different issue that has been around since SQL Server 2005 but apparently didn&amp;#39;t get fixed. &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Open the Analysis Services Tutorial project from Lesson 10 &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Open the Analysis Services Tutorial.cube in the Cube Designer. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;In the Cube Structure tab, expand the Internet Sales measure group and select the Internet Sales-Order Quantity measure. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;In the Properties pane, change the AggregateFunction to LastNonEmpty. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Deploy the cube. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Browse the cube with the cube browser or Excel. Create a report that requests Internet Sales Amount and Internet Sales-Order Quantity measures sliced by the Subcategory attribute of the Product dimension. &lt;/p&gt;
&lt;p&gt;Notice that the query forces Internet Sales Amount to empty. While waiting for an official hotfix from Microsoft, you can use one of the following workarounds meanwhile: &lt;/p&gt;
&lt;p&gt;1. Don&amp;#39;t use the NON EMPTY clause in the query&amp;nbsp;&lt;/p&gt;
&lt;p&gt;or &lt;/p&gt;
&lt;p&gt;2. Change the following property in the \Program Files\Microsoft SQL Server\MSAS10.MSSQLSERVER\OLAP\Config\msmdsrv.ini file. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DisableCalcExpressNonEmpty&amp;gt;&lt;strong&gt;1&lt;/strong&gt;&amp;lt;/DisableCalcExpressNonEmpty&amp;gt; &lt;/p&gt;
&lt;p&gt;Not sure what DisableCalcExpressNonEmpty does as it is not documented but appears to work. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 8/18/2008&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DisableCalcExpressNonEmpty is a new property in AS 2008. Severe performance degradation is likely to result when set to 1, but it should be comparable to AS 2005 performance if not a little better. A hotfix better come out quickly &lt;img src="http://prologika.com/CS/emoticons/emotion-6.gif" alt="Sad" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3018" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Where is Report Builder 2.0?</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/13/where-is-report-builder-2-0.aspx</link><pubDate>Thu, 14 Aug 2008 01:32:36 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3010</guid><dc:creator>tlachev</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;With the official release of SQL Server 2008, Microsoft retired the RC0 Feature Pack and added the SQL Server 2008 Feature Pack, August 2008 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&amp;amp;displaylang=en"&gt;page&lt;/a&gt;. Unfortunately, the Report Builder 2.0 link got dropped along the way. Microsoft is aware of this issue and is planning to add a release candidate page for Report Builder 2.0 feature pack available for download toward the end of August. The RTM version of Report Builder 2.0 is expected in Oct&amp;#39;2008 timeframe.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3010" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Static Credentials</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/11/static-credentials.aspx</link><pubDate>Mon, 11 Aug 2008 14:08:56 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3003</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A new week comes with new issues... I ran into an interesting issue today with Windows integrated security and SharePoint. I was troubleshooting an issue on a behalf of a Windows user that connects to an SSAS server. To repro the issue, I used the SharePoint &amp;quot;Sign in as a different user&amp;quot; feature. To facilitate testing, I decided to save the password in the standard Windows authentication dialog that follows (&amp;quot;Remember my password&amp;quot; checkbox).
&lt;/p&gt;&lt;p&gt;After this &amp;quot;convenient&amp;quot; setup, to my surprise all calls to that server went the credentials of that user, including connections to the cube from SQL Server Management Studio and Excel! For example, when I connected to the SSAS database with SSMS and attempted to manage the server, I was greeted with the following message although I have admin rights to the server:
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;The connected user is not an Analysis Services server administrator. Only an administrator can make changes to server properties. (Microsoft.AnalysisServices.ManagementDialogs)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The SQL Server Profiler revealed that indeed the server impersonates any call under that user.  Not sure what exactly happens when you save the password but be careful of this issue with &amp;quot;static&amp;quot; credentials. To correct the issue, use the Sign in as a different user feature again but don&amp;#39;t check the Remember my password option.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3003" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Microsoft SQL Server 2008 Feature Pack, August 2008</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/07/microsoft-sql-server-2008-feature-pack-august-2008.aspx</link><pubDate>Thu, 07 Aug 2008 14:24:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:3001</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;font-family:verdana,geneva;"&gt;Microsoft &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=c6c3e9ef-ba29-4a43-8d69-a2bed18fe73c&amp;amp;displaylang=en&amp;amp;tm"&gt;&lt;span style="font-size:small;font-family:verdana,geneva;"&gt;released&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;font-family:verdana,geneva;"&gt; a Microsoft SQL Server 2008 Feature Pack, August 2008 page which includes a collection of stand-alone install packages that provide additional value for SQL Server 2008. Strangely, Report Builder 2.0 is excluded and nowhere to be found since the RC0 page has been taken offline.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:verdana,geneva;"&gt;Update 8/7/2008:&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;&lt;span style="color:#000000;"&gt;A RC for Report Builder 2.0 feature pack will be available for download toward the end of August&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=3001" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Microsoft Has Released SQL Server 2008</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/06/microsoft-has-released-sql-server-2008.aspx</link><pubDate>Wed, 06 Aug 2008 17:47:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:2999</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today, Microsoft &lt;a href="http://www.microsoft.com/presspass/press/2008/aug08/08-06SQLServer2008PR.mspx"&gt;announced&lt;/a&gt; that&amp;nbsp;official release of SQL Server 2008. Build #10.0.1600.22 has been declared as a SQL Server RTM.&lt;/p&gt;
&lt;p&gt;SQL Server 2008 includes major enhancements to the Microsoft Business Intelligence Stack, some of which I have mentioned in my previous posts. &lt;/p&gt;
&lt;p&gt;Note that if you have Visual Studio 2008 on your machine, you must wait for a few more days to get the official release of Visual Studio 2008 SP1, which is a required prerequisite to integrate the SQL Server 2008 client tools with Visual Studio 2008. &lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=2999" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Rules Have Changed</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/05/rules-have-changed.aspx</link><pubDate>Wed, 06 Aug 2008 02:26:00 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:2997</guid><dc:creator>tlachev</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;(Please visit the site to view this media)(Please visit the site to view this media)(Please visit the site to view this media)An interesting &lt;a href="http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=3710692&amp;amp;SiteID=1&amp;amp;mode=1"&gt;question&lt;/a&gt; has pop up on the Katmai RS 2008 discussion list today about how to implement a &amp;quot;green bar&amp;quot; group-level report that alternates background color for all rows in a group instance instead of doing this for each row. I &lt;a target="_blank" href="http://prologika.com/CS/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/blog/greenbargroup.zip"&gt;attach&lt;/a&gt; the report sample I posted. What makes it interesting is that it demonstrates report &lt;a href="http://prologika.com/CS/blogs/blog/archive/2007/09/09/ssrs-2008-variables.aspx"&gt;variables&lt;/a&gt; &amp;ndash; a new feature in RS 2008. &lt;/p&gt;
&lt;p&gt;Before you start analyzing it, you should know that expression evaluation rules in RS 2008 have changed as a result of the new on-demand processing model. As a result, state in class-level instance variables is discarded as you page through the report which makes maintaining state trickier between page requests. However, RS 2008 introduces report variables that guarantee one-time evaluation semantics. I know this may sound to you like Greek, so let me jump into the implementation details: &lt;/p&gt;
&lt;p&gt;1. The report has a EvenRow code-behind function that toggles each time it&amp;#39;s executed. &lt;/p&gt;
&lt;p&gt;2. In the Category group (double-click it to access its properties), an EvenRow group level variable is defined that invokes the EvenRow function once per each group instance. &lt;/p&gt;
&lt;p&gt;3. The rest is easy. I set the BackgroundColor property for each textbox to use this variable. BTW, the report uses the SSAS Adventure Works cube. (Please visit the site to view this media)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=2997" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Yet Another Post About Analysis Services HTTP Connectivity</title><link>http://prologika.com/CS/blogs/blog/archive/2008/08/01/yet-another-post-about-analysis-services-http-connectivity.aspx</link><pubDate>Sat, 02 Aug 2008 02:30:55 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:2989</guid><dc:creator>tlachev</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;With risk to iterate the obvious, here is a lesson learned from the trenches:
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;: You want to let external users browse an Analysis Services cube over the Internet. 
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Setup&lt;/strong&gt;: You have followed the steps in the Configuring HTTP Access to SQL Server 2005 Analysis Services on Microsoft Windows Server 2003 &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/httpasws.mspx"&gt;article&lt;/a&gt; by Edward Melomed to set up Analysis Services for HTTP connectivity. 
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Issue&lt;/strong&gt;: Windows integrated security doesn&amp;#39;t work.
&lt;/p&gt;&lt;p&gt;After a long battle where countless options have been tried, I have to admit a defeat. In our case, we&amp;#39;ve set up identical Windows local accounts on the SSAS server. This worked fine when connecting Report Builder 2.0 to the cube from our home machines. However, it appeared that the firewalls that our clients use make a minced meat of Windows integrated security. Strangely, Excel connects without a problem to the cube using Windows integrated security. However, Report Builder 2.0 chokes big time. I guess this has to do with differences between OLE DB (which Excel uses) and ADOMD.NET (used by Report Builder 2.0). 
&lt;/p&gt;&lt;p&gt;So, we had to give up on Windows integrated security over Internet. Instead, we went for Basic security with SSL, as follows:
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Configure the msmdpump virtual folder for Basic security (this should be the only available security option). 
&lt;/li&gt;&lt;li&gt;Install the SSL certificate on the IIS server.
&lt;/li&gt;&lt;li&gt;In Report Builder 2.0, set up a new data source that uses the Microsoft SQL Server Analysis Services. Click the Edit button on the Data Source Properties dialog box.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;img src="http://www.prologika.com/blog/080208_0230_YetAnotherP1.png" alt="" /&gt;
	&lt;/p&gt;&lt;ol&gt;&lt;li&gt;In the Connection Properties dialog, enter the URL to the msmdpump.dll, such as &lt;a href="https://adventure-works/olap/msmdpump.dll"&gt;https://adventure-works/olap/msmdpump.dll&lt;/a&gt;.
&lt;/li&gt;&lt;li&gt;Enter the user credentials. Click the Save My Password to avoid being asked to retype the password.
&lt;/li&gt;&lt;li&gt;Here is an important step if you want to populate the Connect to a Database drop-down list. Click the Advanced button and locate the Integrated Security setting. Select and clear the SSPI default setting. Click OK.
&lt;/li&gt;&lt;li&gt;Back to the Connection Properties dialog, expand the Connect to a Database drop-down list. You should see the list of the SSAS databases the user has rights to access. Select a database.
&lt;/li&gt;&lt;li&gt;Click the Test Connection dropdown. The connection should succeed. 
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The data source is set up now. You can proceed with setting up a dataset with the MDX Query Designer.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=2989" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Analysis+Services/default.aspx">Analysis Services</category></item><item><title>A Must-read Reporting Services Blog</title><link>http://prologika.com/CS/blogs/blog/archive/2008/07/21/a-must-read-reporting-services-blog.aspx</link><pubDate>Mon, 21 Jul 2008 19:53:48 GMT</pubDate><guid isPermaLink="false">bb61d221-b363-4d22-8192-4aa25b39c5db:2977</guid><dc:creator>tlachev</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Robert Bruckner on the Reporting Services team has started a &lt;a href="http://blogs.msdn.com/robertbruckner/"&gt;blog&lt;/a&gt;. Robert oversees several key areas of Reporting Services, including Report Definition Language (RDL), data processing, report processing, data visualization, and performance/scalability. Many of you have gotten help from Robert on the Reporting Services discussion lists to which he frequently contributes.  So, this sure it&amp;#39;s going to be a must-read blog as his first posts (report variables and scalability) show.
&lt;/p&gt;&lt;p&gt;RS Blog Roll
&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Bob Meyers&amp;#39; Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/bobmeyers)—Bob Meyer is a Program Manager on the Reporting Services team who is responsible for Report Builder 1.0.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Brian Welcker&amp;#39;s Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/bwelcker)—Brian Welcker is a former Group Program Manager on the Reporting Services team.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Chris Baldwin&amp;#39;s Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/chrisbal)—Chris Baldwin is a Program Manager on the Reporting Services team who oversees the report rendering area.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Chris Hays&amp;#39;s
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/chrishays)—Chris Hays is an architect on the Reporting Services team and oversees the Report Definition Language.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;John Gallardo&amp;#39;s Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/jgalla)—John Gallardo is a Software Development Engineer on the Reporting Services team who is responsible for the report server.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Lukasz Pawlowski&amp;#39;s Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/lukaszp)—Lukasz Pawlowski is a Program Manager on the Reporting Services team who is primarily responsible for the management feature of the product.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Reporting Services Team Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/sqlrsteamblog/)—A collective blog of the Reporting Services team.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Reporting Services User Education Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/rosettaue)—From the user documentation team which is responsible for creating all the documentation that ships with the product.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Robert Bruckner&amp;#39;s Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/robertbruckner)— Robert Bruckner is a Software Development Engineer on the Reporting Services team who oversees Report Definition Language (RDL), data processing, report processing, data visualization, and performance/scalability.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;&lt;em&gt;Russell Christopher&amp;#39;s Blog
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;(http://blogs.msdn.com/bimusings)—Russell Christopher is a Business Intelligence consultant with Microsoft who posts great insights about working with Reporting Services.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:18pt;"&gt;&lt;span style="color:black;font-family:Berkeley Old ITC;"&gt;
		&lt;/span&gt; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://prologika.com/CS/aggbug.aspx?PostID=2977" width="1" height="1"&gt;</description><category domain="http://prologika.com/CS/blogs/blog/archive/tags/Reporting+Services/default.aspx">Reporting Services</category></item></channel></rss>