<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The White Pages</title>
	<atom:link href="http://whitepages.unlimitedviz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://whitepages.unlimitedviz.com</link>
	<description>Random musings and thoughts on SharePoint, Business Intelligence, Microsoft technology, and occasionally even diving from John White</description>
	<lastBuildDate>Tue, 15 May 2012 18:12:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Best Practices for Using Reporting Services With SharePoint</title>
		<link>http://whitepages.unlimitedviz.com/2012/05/best-practices-for-using-reporting-services-with-sharepoint/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/05/best-practices-for-using-reporting-services-with-sharepoint/#comments</comments>
		<pubDate>Tue, 15 May 2012 18:02:21 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1380</guid>
		<description><![CDATA[At this week’s Toronto SharePoint Summit, I delivered a presentation entitled “Reporting for Duty – Best Practices for Reporting Services with SharePoint. The talk was well enough received, that I think that I’m going to do up a series of articles encompassing the topics. I’m not sure I like the term “best practices”, but these <a href='http://whitepages.unlimitedviz.com/2012/05/best-practices-for-using-reporting-services-with-sharepoint/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>At this week’s Toronto SharePoint Summit, I delivered a presentation entitled “Reporting for Duty – Best Practices for Reporting Services with SharePoint. The talk was well enough received, that I think that I’m going to do up a series of articles encompassing the topics. I’m not sure I like the term “best practices”, but these are some of the tips that keep me out of trouble.</p>
<p>You can <a href="http://www.slideshare.net/diverdown1964/reporting-for-duty-best-practices-for-reporting-services-with-sharepoint">download the presentation here</a>, or watch it below.</p>
<div id="__ss_12944395" style="width: 425px;"><strong style="margin: 12px 0px 4px; display: block;"><a title="Reporting For Duty - Best Practices for Reporting Services With Sharepoint" href="http://www.slideshare.net/diverdown1964/reporting-for-duty-best-practices-for-reporting-services-with-sharepoint" target="_blank">Reporting For Duty &#8211; Best Practices for Reporting Services With Sharepoint</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/12944395" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe>
</div>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/05/best-practices-for-using-reporting-services-with-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrate Reporting Services from Native Mode To SharePoint Integrated Mode</title>
		<link>http://whitepages.unlimitedviz.com/2012/04/migrate-reporting-services-from-native-mode-to-sharepoint-integrated-mode/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/04/migrate-reporting-services-from-native-mode-to-sharepoint-integrated-mode/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 15:32:57 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Integrated Mode]]></category>
		<category><![CDATA[Native Mode]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1373</guid>
		<description><![CDATA[I have previously written about upgrading and moving Reporting Services to SSRS/2008 R2/SP2010, and also on upgrading to the new Service application in 2012. Both of these deal with moving prior versions of Reporting Services running in SharePoint mode to more recent versions, also running in integrated mode. What has been lacking from Microsoft until <a href='http://whitepages.unlimitedviz.com/2012/04/migrate-reporting-services-from-native-mode-to-sharepoint-integrated-mode/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I have previously written about <a href="http://whitepages.unlimitedviz.com/2011/12/upgrading-and-moving-integrated-mode-reporting-services-with-sharepoint/">upgrading and moving Reporting Services</a> to SSRS/2008 R2/SP2010, and also on <a href="http://whitepages.unlimitedviz.com/2012/03/upgrading-sql-server-reporting-services-to-2012-in-sharepoint-integrated-mode/">upgrading to the new Service application in 2012</a>. Both of these deal with moving prior versions of Reporting Services running in SharePoint mode to more recent versions, also running in integrated mode. What has been lacking from Microsoft until now was a mechanism to help move an organization from Reporting Services in Native mode to Reporting Services in integrated mode. </p>
<p>The solution to date has been to go back to the source projects in BIDS and redeploy them to the Integrated Mode server. This of course assumes that BIDS was used for report design (not Report Builder), and that the projects are available. You also lose all server side configurations (like subscriptions) with this approach.</p>
<p>On Friday, April 20 2012 Microsoft released Version 1.0 of&nbsp; the <a href="http://www.microsoft.com/download/en/details.aspx?id=29560">Reporting Services Migration Tool</a>, which allows you to do just that. It’s a high level tool that brings all of the artifacts out of the Native mode instance, and at a later point in time, import them into the Integrated Mode instance. Ultimately, the stated aim of the tool is to allow a file system level backup of your Reporting Services Instances, be they Native or Integrated mode. </p>
<p>It can be run either by command line, or through a GUI. A snapshot of the GUI screen can be seen below.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image25.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb25.png" width="899" height="575"></a></p>
<p>The tool is definitely version 1, and has several limitations which I’ll outline below, but it does work. It does so by connecting to either the WMI provider, or the Reporting Services web services, then extracting all of the available content, and then building a PowerShell script which can be run to place the backed up content in a SharePoint document library that has been properly configured to support the Reporting Services content types. </p>
<p>Operation of the tool is relatively straightforward, and is adequately documented on the download page, so I won’t go through a step by step, but I do want to share a few observations. </p>
<p>Firstly, <strong>migration is from Native Mode to Integrated Mode only</strong>. The stated objective of this tool is to support both modes on either end of the migration path, but for now it’s a one way trip. For the moment, it does limit its ability to perform as a backup tool. However, if you examine your output folder, you’ll find all of your report files, connection files (etc), so if you’ve built your reports with BIDS, and lost the original source project, it’s a great way to get them out of the Reporting Services database.</p>
<p><strike>I have also been unable to get the WMI provider to work at all. I’ve tested with both SSRS 2008R2 and SSRS 2012 Native mode sources, but the tool can’t seem to find the WMI instance. The tool still works in this configuration, but it will not back up passwords or history snapshots. I’ll update this post if/when a solution to this can be found.</strike></p>
<p><strong>UPDATE</strong> – Thanks to Tristan in <a href="http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/a03fd3b2-e75b-4868-af8e-eb2c87338b38">this MSDN forum thread</a> – The WMI provider is working. I have added the paragraph and image below.</p>
<p>The Instance Name field is mislabelled. It should be SERVER\Instance for non default instances, or just SERVER for default instances. Unfortunately the nowhere in the help is the requirement for SERVERNAME mentioned. Essentially, you should treat this field the same as you would the Server field when connecting via Management Studio. The image above has been updated to show the correct value for Instance Name (In this case, although not necessary, I have included the name of the default instance).</p>
<p>As outlined on the download page, the tool does not back up Reporting Services security information, or role information – which makes sense when moving to a new security model. Also, linked reports aren’t supported in Integrated mode, so they’re not backed up at all. </p>
<p>For a complete list of constraints and instructions, visit the <a href="http://www.microsoft.com/download/en/details.aspx?id=29560#overview">download page</a>. </p>
<p>For it’s limitations, this tool is a very welcome addition to the toolkit. Migrating from Native Mode to SharePoint Integrated mode Reporting Services no longer&nbsp; needs to be painful.</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/04/migrate-reporting-services-from-native-mode-to-sharepoint-integrated-mode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fixing Access Errors When Creating a BISM Connection for PowerView</title>
		<link>http://whitepages.unlimitedviz.com/2012/04/fixing-access-errors-when-creating-a-bism-connection-for-powerview/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/04/fixing-access-errors-when-creating-a-bism-connection-for-powerview/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 18:00:25 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Excel Services]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[PowerView]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[VertiPaq]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1368</guid>
		<description><![CDATA[PowerView is one of the shiny new features that are available to SharePoint users with the implementation od SQL Server 2012. To be sure, you don’t need to convert your database engine over to SQL Server 2012, but you do need to install PowerPivot for SharePoint, and/or the new Reporting Services service application for SharePoint, <a href='http://whitepages.unlimitedviz.com/2012/04/fixing-access-errors-when-creating-a-bism-connection-for-powerview/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>PowerView is one of the shiny new features that are available to SharePoint users with the implementation od SQL Server 2012. To be sure, you don’t need to convert your database engine over to SQL Server 2012, but you do need to install PowerPivot for SharePoint, and/or the new Reporting Services service application for SharePoint, both only available in SQL Server 2012. </p>
<p>PowerView requires a connection to an xVelocity Analysis Services engine (formerly known as tabular mode or VertiPaq), or to an Excel spreadsheet with an embedded PowerPivot model in order to function. When connecting to the Analysis Services engine, there are a couple of permissions that need to be set on that engine that you should be aware of. </p>
<p>If you wish to connect to the Analysis Services engine, you have two choices. Firstly, you can use a Reporting Services connection (.rds) and select “Microsoft BI Semantic Model for PowerView” as the Data Source type. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image19.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb19.png" width="703" height="526"></a></p>
<p>Once this is done, it can be used to create PowerView reports. This approach works without any additional configuration. The reason that this is so is that Reporting Services takes advantage of the EFFECTIVEUSERNAME connection property for user impersonation. This is something that BISM does as well. When using an RS connection, the stored credential (in this case) is used to establish a connection with the data source, and then all queries are executed with the identity of the requesting end user (provided that the “Set execution context…” option is not selected. </p>
<p>For further reading on how Reporting Services uses the EFFECTIVEUSERNAME property, check <a href="http://www.artisconsulting.com/blogs/greggalloway/Lists/Posts/Post.aspx?ID=18">this article</a>. Since BISM uses the same property, it’s highly relevant to PowerView.</p>
<p>However, the problem arises if we choose the second option, and want to work with a BISM file directly. If we want to use a basic BISM file, we first add it by creating a document with the the BI Semantic Model content type.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image20.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb20.png" width="244" height="215"></a></p>
<p>However, the connection form is far simpler than the one used to configure the Reporting Services connection. You’ll notice immediately that there is no option for storing credentials. For a server connection, all that is necessary is a name for the connection, the name of the server, and the name of the database.</p>
<p>Unfortunately, if you haven’t gotten everything configured just so and you click ok, you’ll receive the error “Cannot connect to the server or database”.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image21.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb21.png" width="723" height="565"></a></p>
<p>This is due to the fact that when the server performs the validation check against the Analysis Services server, it uses a system account to first connect to the AS server. This is documented in <a href="http://connect.microsoft.com/SQLServer/feedback/details/709682/unable-to-verifty-bi-semantic-model-connection-to-tabular-model">this Connect forum entry</a>. The corrective action is to add the account to the Analysis Services Server Administrator role:</p>
<p>&nbsp;<a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image22.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb22.png" width="703" height="633"></a></p>
<p>What account needs to be added? The forum article I referenced above indicates the PowerPivot service account, which is now listed in SharePoint as the “SQL Server Analysis Services” account. However, my testing has indicated that the farm account is the one that is used to verify connections with Analysis Services, so that’s what I’m recommending here. This is only used for validation purposes, and to get around this problem without adding the account to the administrators role, you can simply select the “Save the link file without connection validation” option. This may however be unsettling to users. </p>
<p>Once you’ve created your BISM connection, you should then be able to use it to launch Excel, or create a PowerView report. When you launch Excel, the BISM is referenced by an Excel connection, which then connects directly to the data source with the credentials of the end user. No problem. However, if you attempt to create a PowerView&nbsp; report, you may find yourself faced with “An error occurred while loading the model for the item or data source”.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image23.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb23.png" width="458" height="414"></a></p>
<p>In the body, it misleadingly leads you to believe that it’s the end user (btidwell in this case) that doesn’t have access. What should happen is that, as explained above, the Reporting Services service makes a connection with the AS server, and then uses the EffectiveUserName property to impersonate the user. For more detail on how BISM authenticates to back end data sources, see <a href="http://msdn.microsoft.com/en-us/library/gg471575.aspx">this MSDN article</a>.</p>
<p>If you’re seeing this error, the chances are that the service account that is being used for Reporting Services doesn’t have access to the Analysis Services database. </p>
<p>As in the verification step above – granting the account access to the specific database doesn’t do it, you need to add the service account that is used by Reporting services to the Server Administrators role. Once you’ve done that, PowerView should behave smoothly. </p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/04/fixing-access-errors-when-creating-a-bism-connection-for-powerview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How To Automate SharePoint Report Creation With SSIS and SSRS</title>
		<link>http://whitepages.unlimitedviz.com/2012/04/how-to-automate-sharepoint-report-creation-with-ssis-and-ssrs/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/04/how-to-automate-sharepoint-report-creation-with-ssis-and-ssrs/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:55:55 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Integration Services]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1353</guid>
		<description><![CDATA[If you’ve used SQL Server Reporting Services to any great extent, you’ve likely encountered the need to generate reports automatically. This requirement may be for for delivery purposes, archival purposes, or simply to reduce report rendering wait times for the end users. SSRS supports this requirement out of the box &#8211; a report administrator can <a href='http://whitepages.unlimitedviz.com/2012/04/how-to-automate-sharepoint-report-creation-with-ssis-and-ssrs/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>If you’ve used SQL Server Reporting Services to any great extent, you’ve likely encountered the need to generate reports automatically. This requirement may be for for delivery purposes, archival purposes, or simply to reduce report rendering wait times for the end users. SSRS supports this requirement out of the box &#8211; a report administrator can set up a subscription, enter the required parameters, and the report will be generated and delivered on that schedule. </p>
<p>This approach is highly declarative, and puts the onus of subscription creation on the report administrator. To this end SSRS also supports data driven subscriptions, which allow the subscriptions to be looked up from a SQL table. How that table is maintained is up to the individual organization, but it does allow a measure of dynamism. With SQL Server Reporting Services 2012, this feature is made much more user friendly through the use of User Driven Subscriptions. </p>
<p>The down side to any of this dynamic behaviour is that in every case, it requires the Enterprise version of SQL Server (with SQL Server 2012, the BI SKU also has this capability). In addition, with SQL Server versions prior to 2012, the capability is somewhat less than user friendly. </p>
<p>In this post, I will outline a methodology that will allow you to provide SharePoint list based report subscriptions that will allow users to subscribe to published reports, and have them published to a SharePoint document library. The approach is not restricted to SharePoint – indeed it could be used with native mode to read through a list of possible parameter values, and email the resulting reports, or store them in a file system, but the SharePoint example is the one that I will be using below. </p>
<p>I should also point out that although the examples below use SQL Server 2012, the approach should work with versions back to SQL Server 2005. </p>
<p>The primary components of this solution are a SharePoint list that will be read to determine what reports to render (the subscription list), a SQL Server Integration Services (SSIS) package that will read through the subscription list and use the values therein to render the report, and finally, a SharePoint document library that will house the reports. Of course, we also need a report to be rendered, and in our case, this report is also stored in a SharePoint document library, as Reporting Services is running in SharePoint Integrated mode. </p>
<p>The good news, is that all of the constituent portions of this solution are either downloadable for free, or come with SQL server in any other edition besides Express. Therefore, the chances are that if you have SharePoint, then you already have all of the tools that you need.</p>
<h6>Step 1 – Obtain the SharePoint List Source and Destination Project</h6>
<p>Out of the box, SSIS doesn’t know how to talk to SharePoint data. Fortunately, there’s an excellent Codeplex project that adds the required capability. If you haven’t already done so, download the <a href="http://sqlsrvintegrationsrv.codeplex.com/releases/view/17652">SharePoint List Source and Destination</a> project from Codeplex. You will find a <a href="http://dataqueen.unlimitedviz.com/2011/06/how-to-use-a-sharepoint-list-as-a-data-source-in-your-ssis-package/">good blog post on working with this tool here</a>. Once installed, you will be ready to build the solution. Of course, this step is only necessary if you want to use a SharePoint list as a subscription source.</p>
<h6>Step 2 – Create your subscription and report library</h6>
<p>In this solution, we will allow a user to enter a subscription request in our subscription list. The user can specify the URL of the report to be run, the parameters for the report, the file type that is to be produced, and the library where the report is to be stored. In order to support this, we’ll need at least one document library where the produced reports will be stored, and one custom list. </p>
<p>Create your document library, and note its URL. In our case below, our report library will be at <a title="http://home.nautilusinc.local/sites/nmarine/IT/Sandbox/ExpenseReportOutput" href="http://home.nautilusinc.local/sites/nmarine/IT/Sandbox/ExpenseReportOutput">http://home.nautilusinc.local/sites/nmarine/IT/Sandbox/ExpenseReportOutput</a>. This URL will be used below. In this library, we don’t need to add any custom metadata properties, but you certainly may, should you wish to do so. </p>
<p>Next, create a custom list. In our case, the list will be named “Subscriptions” and will be created in the&nbsp; “<a title="http://home.nautilusinc.local/sites/nmarine/IT/Sandbox" href="http://home.nautilusinc.local/sites/nmarine/IT/Sandbox">http://home.nautilusinc.local/sites/nmarine/IT/Sandbox</a>” site. Where you create this list is not important, but what is important is the <strong><em>display</em></strong> name of the list, and the URL of its parent site.</p>
<p>For our use case, we want the user to be able to specify the Report to be rendered, the destination to place the rendered reports, the parameters to use for the rendered report, and the file type of the rendered report. To that end, we will add 4 additional columns to the list, as shown below.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb.png" width="687" height="271"></a></p>
<p>You will also note that the “Title:” field has been renamed to &#8220;Subscription” on this list. This is purely for cosmetic purposes. Three of the new fields are simply single line text fields, while the Format field is choice. In our example, the options available for the choice field are WORDOPENXML, PDF, EXCELOPENXML, IMAGE, and NULL. You can allow any of the possible output types that Reporting services supports. I have outlined these types previously in <a href="http://whitepages.unlimitedviz.com/2011/11/file-formats-for-the-sql-server-2012-denali-reporting-services-web-services-renderer/">another post here</a>. </p>
<p>While it is outside the scope of this article, you will likely want to modify the form to display more user friendly names for the options than “WORDOPENXML”, etc, and automatically calculate the value for the subscription field. InfoPath would be an excellent tool to do this with, and there are other alternatives as well. For our purposes, we will work with the form as is. </p>
<p>Once done, you will want to add a couple of subscriptions. In our case, we’re working on a very simple report as shown below:<br /><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb1.png" width="930" height="454"></a></p>
<p>The report takes a single parameter, employee name, and renders the report filtered by that parameter. The subscription list item that we’ll create will look something like below:</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb2.png" width="650" height="238"></a></p>
<p>The value for ReportURL is the full URL path to the report definition, in our case it is <a title="http://home.nautilusinc.local/sites/nmarine/finance/ExpenseReports/Expenses.rdl" href="http://home.nautilusinc.local/sites/nmarine/finance/ReportsMarch22/ExpenseReports.rdl">http://home.nautilusinc.local/sites/nmarine/finance/ReportsMarch22/ExpenseReports.rdl</a> (you should be able to enter the URL into a browser and see the report), and the destination library is the full URL path to the destination library, in our case <a title="http://home.nautilusinc.local/sites/nmarine/IT/Sandbox/ExpenseReportOutput" href="http://home.nautilusinc.local/sites/nmarine/IT/Sandbox/ExpenseReportOutput">http://home.nautilusinc.local/sites/nmarine/IT/Sandbox/ExpenseReportOutput</a>. </p>
<p>After adding two subscriptions, our subscription list appears as follows:</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb3.png" width="608" height="179"></a></p>
<p>When our job runs (defined below) it will iterate through this list and create a corresponding PDF file and Word file in the destination library. Next, we create the SSIS package that will actually do the work. </p>
<h6>Step 3 – Create a Reporting Services Web Service Proxy Class</h6>
<p>In order to render the Reporting Services reports, we will need to call the Reporting Services web service from a SSIS Script task. In order to do that, we’ll need to use a proxy class. Luckily, we can just generate one using the WSDL.EXE generation tool available from <a href="http://www.microsoft.com/download/en/details.aspx?id=3138">the .Net 3.5 SDK</a>. You run the tool with the following options:</p>
<p>wsdl.exe /language:[language choice] /out:ReportService.[language choice] <a href="http://[SPSiteURL]/_vti_bin/ReportServer/ReportService.asmx?WSDL">http://[<em>SPSiteURL</em>]/_vti_bin/ReportServer/ReportService.asmx?WSDL</a></p>
<p>where:</p>
<ul>
<li>[language choice] = VB or CS
<li>[SPSiteURL] = URL of the SharePoint Site Collection</li>
</ul>
<p>In our case, the precise command is:</p>
<p><font size="1">wsdl.exe /language:VB /out:ReportService.vb </font><a href="http://home.nautilusinc.local/sites/nmarine/_vti_bin/ReportServer/ReportExecution2005.asmx?WSDL"><font size="1">http://home.nautilusinc.local/sites/nmarine/_vti_bin/ReportServer/ReportExecution2005.asmx?WSDL</font></a></p>
<p>If you don’t want to build your own, you can <a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/ReportService.zip">download the one that I created for this project</a> (it’s Visual Basic). It was built using SSRS 2012, but should be backward compatible. Also, don’t forget to change the embedded server URLs.</p>
<p>Once you have the output file, make note of its location – we’ll use it below when creating the script task in SSIS.</p>
<h6>Step 4 – Build the SSIS Package</h6>
<p>I’m going to assume that most people reading this have little or no exposure to SSIS, so I’ll try to be as detailed as possible. You’ll need to start SQL Server Data Tools (if you’re using SQL Server 2012) or Business Intelligence Development Studio (for SQL versions prior to 2012). </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb4.png" width="255" height="366"></a></p>
<p>You may notice that is has a striking resemblance to Visual Studio 2010. That’s because it is VS2010.&nbsp; Select “New Project” then in the “Business Intelligence” section, select “integration Services Project”. Give the new project a name and location and click OK.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb5.png" width="1055" height="833"></a></p>
<p>Once created, we’ll need to create a SharePoint List connection manager. From the Solution explorer, right click on “Connection Managers” and select “New Connection Manager”. Scroll down on the window, select “SPCRED” and click Add.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image6.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb6.png" width="964" height="634"></a></p>
<p>You will only see SPCRED if you completed Step 1 above. The Connection Manager will then prompt for a name and a set of credentials. Provide the name, and also provide it with an account that has access to the subscription list. If the SSIS service account has access, you can select “Use Credentials of Executing Process”, otherwise provide a service account with access. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image7.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb7.png" width="449" height="343"></a></p>
<p>We’ll be working within a Data flow task, so drag a Data Flow Task onto the design canvas.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb8.png" width="703" height="429"></a></p>
<p>Next, double click on the data flow task, or click on the Data Flow tab to bring up the Data Flow Task Editor. From there, drag a “SharePoint List Source” action onto the canvas. (Note: if the SharePoint List Source does not appear, there may have been a problem installing it. Consult the <a href="http://sqlsrvintegrationsrv.codeplex.com/wikipage?title=SharePoint%20List%20Adapters&amp;referringTitle=Documentation">documentation for the SharePoint List Source and Destination project</a> for troubleshooting steps.) Double Click on the List Source action to configure it. The first item to configure is the Connection Manager. Simply select it from the (hidden!!! ) drop down list. Click on the area beside “SharePoint Credential Conn…” to reveal the dropdown.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image9.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb9.png" width="1095" height="490"></a></p>
<p>Next, click on the “ Component Properties” tab. Here, you perform the bulk of the action configuration. There are many options to choose from, but the ones that we’re concerned with here are SiteUrl and SiteListName. SiteURL is the absolute URL of the site that will contain our list, and SiteListName is the <em><strong>display</strong></em> name of the list. I stress display name as this is different than working with most other APIs for SharePoint, which tend to use the internal name. Also – it’s relatively easy for users to change the display name of the list. Doing so will break the package until it is reconfigured.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image10.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb10.png" width="798" height="722"></a></p>
<p>Next, drag a Script Component onto the canvas, below the data source. If prompted, choose “Transformation” for the script type. Next, connect the two actions by dragging the arrow from the&nbsp; SharePoint List Source to the Script Component.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image11.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb11.png" width="631" height="368"></a></p>
<p>Next, double click on the script component to bring up the script component editor. From the left, select Input Columns and select all of the columns to use in this script. In our case, we’ll be working with the columns shown below:</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image12.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb12.png" width="827" height="716"></a></p>
<p>Next, click on the Script section, choose the language that you want to work with, then click the “Edit Script” button.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image13.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb13.png" width="833" height="722"></a></p>
<p>Without getting into too much detail of how the script action works, what we are going to do is to add code that will run for each row of data that flows through the transformation. In our case, that will be for each configuration item. We’re going to use the values of the columns of each configuration item to render the reports. Therefore, the code that we will write will go into the “Input0_ProcessInputRow” sub. </p>
<p>Before we can do that however, we need to add some supporting items. Firstly, since we’ll be working with web services, we’ll need to reference the .Net System.Web.Services library. Right click on the project name in solution explorer, and select Add Reference. From the .Net tab, select System.Web.Services, and click OK.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image14.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb14.png" width="924" height="560"></a></p>
<p>Next, expand the “Imports” section and import the System.IO and the System.Net&nbsp; namespace.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image15.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb15.png" width="447" height="171"></a></p>
<p>We now need to add our Reporting Services proxy class. The best way to do this is to first create a new class. Right click on the project in solution explorer, and select Add – Class.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image16.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb16.png" width="811" height="415"></a></p>
<p>Next, give the class a name. I like to match the name to the main class embedded, so the new name is ReportExecutionService.vb. Next, using Notepad, open the file that you created or downloaded in Step 3 above. Select all text, copy it into the clipboard, and then paste it into the newly created class, overwriting anything already there. Once done, save and close the class.</p>
<p>Next, I add a helper function to the script that helps to deal with URLs missing an ending slash. You can add it immediately above the “Input0_ProcessInputRow” sub. The code is below:</p>
<pre class="csharpcode"> <span class="kwrd">Private</span> <span class="kwrd">Function</span> CheckSlash(<span class="kwrd">ByVal</span> input <span class="kwrd">As</span> <span class="kwrd">String</span>) <span class="kwrd">As</span> <span class="kwrd">String</span>
        <span class="kwrd">If</span> input.EndsWith(Path.DirectorySeparatorChar) <span class="kwrd">Then</span>
            <span class="kwrd">Return</span> input
        <span class="kwrd">Else</span>
            <span class="kwrd">Return</span> input &amp; Path.DirectorySeparatorChar
        <span class="kwrd">End</span> <span class="kwrd">If</span>
    <span class="kwrd">End</span> Function</pre>
<p>As we saw below, the output format parameters aren’t the friendliest, and we will need to specify the extension for the output file. To allow this, I also wrote a small helper function to turn output format values into file extensions, and include it below. This also needs to be added to the script.</p>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:af2cf516-09d8-4578-9fa5-b81aeb4bb792" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background-color: #ffffff; overflow: auto; padding: 2px 5px; white-space: nowrap"><span style="color:#0000ff">Private</span> <span style="color:#0000ff">Function</span> GetExt(format <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span>) <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span><br />
        <span style="color:#0000ff">Select</span> <span style="color:#0000ff">Case</span> format<br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;XML&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;xml&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;Null&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#0000ff">Nothing</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;CSV&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;csv&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;ATOM&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;atom&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;PDF&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;pdf&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;HTML4.0&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;htm&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;RGDI&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;gdi&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;MHTML&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;mhtml&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;EXCEL&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;xls&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;EXCELOPENXML&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;xlsx&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;RPL&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;rpl&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;IMAGE&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;tiff&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;WORD&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;doc&quot;</span><br />
            <span style="color:#0000ff">Case</span> <span style="color:#0000ff">Is</span> = <span style="color:#a31515">&quot;WORDOPENXML&quot;</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#a31515">&quot;docx&quot;</span><br />
            <span style="color:#0000ff">Case Else</span><br />
                <span style="color:#0000ff">Return</span> <span style="color:#0000ff">Nothing</span><br />
        <span style="color:#0000ff">End</span> <span style="color:#0000ff">Select</span><br />
    <span style="color:#0000ff">End</span> <span style="color:#0000ff">Function</span></div>
</div>
</div>
<p>&nbsp;</p>
<p>Finally, we’re ready to add code to the “Input0_ProcessInputRow” sub. The complete code listing is below:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3d7bc3b6-b0d6-4e4a-94a5-b5a2ecb704eb" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">Public</span> <span style="color:#0000ff">Overrides</span> <span style="color:#0000ff">Sub</span> Input0_ProcessInputRow(<span style="color:#0000ff">ByVal</span> Row <span style="color:#0000ff">As</span> <span style="color:#2b91af">Input0Buffer</span>)</li>
<li>      <span style="color:#008000">&#39;</span></li>
<li>      <span style="color:#0000ff">Dim</span> rs <span style="color:#0000ff">As</span> <span style="color:#0000ff">New</span> <span style="color:#2b91af">ReportExecutionService</span></li>
<li>      rs.Url = <span style="color:#a31515">&quot;http://home.nautilusinc.local/sites/nmarine/_vti_bin/ReportServer/ReportExecution2005.asmx&quot;</span></li>
<li>      rs.Credentials = System.Net.<span style="color:#2b91af">CredentialCache</span>.DefaultCredentials</li>
<li>      <span style="color:#0000ff">Dim</span> report <span style="color:#0000ff">As</span> <span style="color:#0000ff">Byte</span>() = <span style="color:#0000ff">Nothing</span></li>
<li>      <span style="color:#0000ff">Dim</span> deviceinfo <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span> = <span style="color:#0000ff">Nothing</span></li>
<li>&nbsp;</li>
<li>      <span style="color:#0000ff">Dim</span> ParameterPairs <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span>() = Row.Parameters.Split(<span style="color:#a31515">&quot;;&quot;</span>)</li>
<li>      <span style="color:#0000ff">Dim</span> parameters <span style="color:#0000ff">As</span> <span style="color:#2b91af">ParameterValue</span>() = <span style="color:#0000ff">New</span> <span style="color:#2b91af">ParameterValue</span>(ParameterPairs.Length &#8211; 1) {}</li>
<li>      <span style="color:#0000ff">Dim</span> CurrentPair <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span>()</li>
<li>      <span style="color:#0000ff">For</span> i <span style="color:#0000ff">As</span> <span style="color:#0000ff">Integer</span> = 0 <span style="color:#0000ff">To</span> ParameterPairs.Length &#8211; 1</li>
<li>          CurrentPair = ParameterPairs(i).Split(<span style="color:#a31515">&quot;=&quot;</span>)</li>
<li>          parameters(i) = <span style="color:#0000ff">New</span> <span style="color:#2b91af">ParameterValue</span></li>
<li>          parameters(i).Name = CurrentPair(0)</li>
<li>          parameters(i).Value = CurrentPair(1)</li>
<li>      <span style="color:#0000ff">Next</span></li>
<li>&nbsp;</li>
<li>      <span style="color:#0000ff">Dim</span> historyID <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span> = <span style="color:#0000ff">Nothing</span></li>
<li>      <span style="color:#0000ff">Dim</span> credentials <span style="color:#0000ff">As</span> <span style="color:#2b91af">DataSourceCredentials</span>() = <span style="color:#0000ff">Nothing</span></li>
<li>      <span style="color:#0000ff">Dim</span> showHideToggle <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span> = <span style="color:#0000ff">Nothing</span></li>
<li>      <span style="color:#0000ff">Dim</span> extension <span style="color:#0000ff">As</span> <span style="color:#2b91af">[String]</span> = <span style="color:#0000ff">String</span>.Empty</li>
<li>      <span style="color:#0000ff">Dim</span> encoding <span style="color:#0000ff">As</span> <span style="color:#2b91af">[String]</span> = <span style="color:#0000ff">String</span>.Empty</li>
<li>      <span style="color:#0000ff">Dim</span> mimeType <span style="color:#0000ff">As</span> <span style="color:#2b91af">[String]</span> = <span style="color:#0000ff">String</span>.Empty</li>
<li>      <span style="color:#0000ff">Dim</span> warnings <span style="color:#0000ff">As</span> <span style="color:#2b91af">Warning</span>() = <span style="color:#0000ff">Nothing</span></li>
<li>      <span style="color:#0000ff">Dim</span> reportHistoryParameters <span style="color:#0000ff">As</span> <span style="color:#2b91af">ParameterValue</span>() = <span style="color:#0000ff">Nothing</span></li>
<li>&nbsp;</li>
<li>      <span style="color:#0000ff">Dim</span> streamIDs <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span>() = <span style="color:#0000ff">Nothing</span></li>
<li>      <span style="color:#0000ff">Dim</span> execInfo <span style="color:#0000ff">As</span> <span style="color:#0000ff">New</span> <span style="color:#2b91af">ExecutionInfo</span>()</li>
<li>      <span style="color:#0000ff">Dim</span> execHeader <span style="color:#0000ff">As</span> <span style="color:#0000ff">New</span> <span style="color:#2b91af">ExecutionHeader</span>()</li>
<li>&nbsp;</li>
<li>      rs.ExecutionHeaderValue = execHeader</li>
<li>      execInfo = rs.LoadReport(Row.ReportURL, historyID)</li>
<li>      rs.SetExecutionParameters(parameters, <span style="color:#a31515">&quot;en-us&quot;</span>)</li>
<li>      <span style="color:#0000ff">Dim</span> destUrl <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span> = Row.DestinationLibrary</li>
<li>      <span style="color:#0000ff">Dim</span> destinationUrl <span style="color:#0000ff">As</span> <span style="color:#0000ff">String</span> = CheckSlash(destUrl) + Row.SubscriptionTitle + <span style="color:#a31515">&quot;.&quot;</span> + GetExt(Row.Format)</li>
<li>      <span style="color:#0000ff">Dim</span> r <span style="color:#0000ff">As</span> <span style="color:#0000ff">Byte</span>()</li>
<li>&nbsp;</li>
<li>      <span style="color:#0000ff">Try</span></li>
<li>          report = rs.Render(Row.Format, deviceinfo, extension, mimeType, encoding, warnings, streamIDs)</li>
<li>          <span style="color:#0000ff">Dim</span> m_WC <span style="color:#0000ff">As</span> <span style="color:#2b91af">WebClient</span> = <span style="color:#0000ff">New</span> <span style="color:#2b91af">WebClient</span></li>
<li>          m_WC.Credentials = System.Net.<span style="color:#2b91af">CredentialCache</span>.DefaultCredentials</li>
<li>          r = m_WC.UploadData(destinationUrl, <span style="color:#a31515">&quot;PUT&quot;</span>, report)</li>
<li>      <span style="color:#0000ff">Catch</span> ex <span style="color:#0000ff">As</span> <span style="color:#2b91af">Exception</span></li>
<li>&nbsp;</li>
<li>      <span style="color:#0000ff">End</span> <span style="color:#0000ff">Try</span></li>
<li>  <span style="color:#0000ff">End</span> <span style="color:#0000ff">Sub</span></li>
</ol>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>Again, without getting into too much detail, some explanation of the above code is in order. </p>
<p>Lines 3-5 initialize the web service, assign it a URL (Don’t forget to change this for your environment!!) and assign it the credentials to use when calling the web service. </p>
<p>When this&nbsp; sub is called by SSIS, it is passed a row object. The row object contains column objects for each column that is used by the script (this was configured above). Therefore, to get the value for any given column, you simply need to refer to it as row.ColumnName. In our case, to get the value of the Parameters column, you use row.Parameters. Lines 9 through 17 get the value of the parameters column, split the value into an array of string objects using a semicolon as a value delimiter, then for each of these objects, separates them into name/value pairs using the equals sign as a delimiter, and them finally assigns them to a Reporting Services parameter collection. </p>
<p>Using this approach, we can use a single field to store all of the parameters for a report, and any report can have any number of parameters.</p>
<p>Lines 19-32 are&nbsp; primarily used for initialization. Line 33 loads the report specified in the subscription (by calling row.ReportURL). Line 34, sets the parameters, and lines 35-36 set the destination variables. </p>
<p>Finally, Line 40 calls the web service to actually render the report into a byte stream, and line 43 uses the .Net WebClient object to upload the file directly into SharePoint. In this example, we don’t actually add any metadata to the SharePoint library, but if this was required, you could use the techniques outlined in <a href="http://www.codeproject.com/Articles/19717/Uploading-files-to-the-SharePoint-Document-Library">this post</a>. We are now ready to test the process.</p>
<h6>Step 5 – Run the Package</h6>
<p>Close the Script editor window and click the OK button. If all is well, your Script Component action should show no errors. When ready, click the run button to test your package. If all is well, after a short compilation period, you should see that 2 records were successfully read from the subscription list, an both steps should show green. If things don’t go well, the error messages are pretty good….</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image17.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb17.png" width="760" height="391"></a></p>
<p>Navigating to the destination library, we see the two requested reports. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image18.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/04/image_thumb18.png" width="785" height="452"></a></p>
<h6>Next Steps</h6>
<p>Obviously, every time that this package runs, the reports will be overwritten with the new report. This may be desired behaviour, but if not, you may want to turn on version control (each version will be stored as a version) or modify the script to change the file name on each run (date stamping is a common technique).</p>
<p>In addition, you will want the package to be run automatically without human intervention. To do this, you’ll want to deploy it to a SQL Server running SSIS , and to schedule it to run as an agent job. There is a wealth of information online for how to do that.</p>
<h6>Conclusion</h6>
<p>The example provided above covers a single use case, but with minor adjustment could be used to automate all sorts of reporting tasks. A common one would be to use the NULL renderer to refresh report caches on a server. If you find any unique uses of this approach, I would love to hear about it. Please post a comment!</p>
<h6>Credits</h6>
<p>In preparing this post, I found the following articles to be useful:</p>
<p><a href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2009/04/27/ssis-and-reporting-services-web-services.aspx">SSIS and Reporting Services Web Services</a></p>
<p><a href="http://weblogs.sqlteam.com/randyp/archive/2010/02/16/61102.aspx">Uploading documents to WSS (Windows Sharepoint Services) using SSIS</a></p>
<p><a href="http://social.msdn.microsoft.com/Forums/en-US/sqldenreportingservices/thread/05ea6525-dc32-408a-9b46-d2330e8ad4ad">SharePoint reporting services SOAP endpoint in CTP3</a></p>
<p><a href="http://ktskumar.wordpress.com/2009/03/03/upload-document-from-local-machine-to-sharepoint-library/">Upload document from Local Machine to SharePoint Library using WebService</a></p>
<p><a href="http://www.codeproject.com/Articles/19717/Uploading-files-to-the-SharePoint-Document-Library">Uploading files to the SharePoint Document Library and updating any metadata columns</a></p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/04/how-to-automate-sharepoint-report-creation-with-ssis-and-ssrs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Get A Comprehensive List of all E-Mail Enabled Libraries in SharePoint</title>
		<link>http://whitepages.unlimitedviz.com/2012/03/how-to-get-a-comprehensive-list-of-all-e-mail-enabled-libraries-in-sharepoint/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/03/how-to-get-a-comprehensive-list-of-all-e-mail-enabled-libraries-in-sharepoint/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 14:58:18 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[DBAttach]]></category>
		<category><![CDATA[E-Mail Enabled]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Upgrade]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1309</guid>
		<description><![CDATA[I recently completed a multi-farm consolidation and upgrade from SharePoint 2007 to 2010 for a customer, collapsing three farms into one. The approach was to create a new farm, and to individually do dbattach upgrades of each of the 2007 databases into separate SharePoint applications. Everything went well, including Reporting Services subscriptions, but we ran <a href='http://whitepages.unlimitedviz.com/2012/03/how-to-get-a-comprehensive-list-of-all-e-mail-enabled-libraries-in-sharepoint/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I recently completed a multi-farm consolidation and upgrade from SharePoint 2007 to 2010 for a customer, collapsing three farms into one. The approach was to create a new farm, and to individually do dbattach upgrades of each of the 2007 databases into separate SharePoint applications. Everything went well, including Reporting Services subscriptions, but we ran into a problem with incoming email. </p>
<p>The problem is that while all of the incoming email settings for a library are properly migrated when doing a dbattach upgrade, all of the aliases are stored in the Farm Database (in the EmailEnabledLists table, if you’re interested in looking), and it remains empty. The resultant effect is that you inspect the library properties, and all looks good, and email is properly being delivered to the drop folder. Unfortunately, the incoming email service timer job is looking for emails that correspond to the entries in the EMailEnabledLists table, and there are none. </p>
<p>The solution is to simply turn off incoming email for the affected lists, and then turn it back on. A bit cumbersome maybe, but it does work. However, in our case, our customer had over 100 libraries and wasn’t sure where they all were. A bit of hunting around found a couple of ways to get a list of email enabled libraries through code (<a href="http://salaudeen.blogspot.ca/2011/06/find-all-incoming-e-mail-enabled.html">here</a> and <a href="http://social.technet.microsoft.com/Forums/da-DK/sharepointgeneral/thread/457387e3-05af-425c-9de4-5aa15d673a19">here</a>).</p>
<p>However, I don’t like writing code if I don’t have to, and decided to have a look in the content databases. Don’t forget the first rule of playing around in the SharePoint content databases, which is <strong>don’t</strong>. However, reading from them isn’t so bad, and ultimately solves our problem. Enough information is in fact in there to construct a simple query:</p>
<pre class="csharpcode"><span class="kwrd">SELECT</span>
     Webs.FullUrl <span class="kwrd">As</span> LibraryURL,
     AllLists.tp_Title <span class="kwrd">As</span> LibraryTitle,
     AllLists.tp_EmailAlias <span class="kwrd">As</span> emailAlias
<span class="kwrd">FROM</span>
     AllLists
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span>
     webs <span class="kwrd">on</span> AllLists.tp_WebID = Webs.Id
<span class="kwrd">WHERE</span>
    AllLists.tp_EmailAlias <span class="kwrd">IS</span> <span class="kwrd">NOT</span> NULL</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<div>Opening up SQL Server Management Studio, and running this query on each content database will give you a comprehensive list of all e-mail enabled document libraries. </div>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/03/how-to-get-a-comprehensive-list-of-all-e-mail-enabled-libraries-in-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading SQL Server Reporting Services to 2012 In SharePoint Integrated Mode</title>
		<link>http://whitepages.unlimitedviz.com/2012/03/upgrading-sql-server-reporting-services-to-2012-in-sharepoint-integrated-mode/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/03/upgrading-sql-server-reporting-services-to-2012-in-sharepoint-integrated-mode/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 15:09:37 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[SSRS]]></category>
		<category><![CDATA[Upgrade]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1303</guid>
		<description><![CDATA[That title could actually be longer…. SQL Server 2012 brings with it a number of key Business Intelligence features that apply directly to SharePoint environments. One of the major improvements is the way that Reporting Services installs. Prior to version 2012, when running in SharePoint integrated mode, it installed along side of SharePoint, and connected <a href='http://whitepages.unlimitedviz.com/2012/03/upgrading-sql-server-reporting-services-to-2012-in-sharepoint-integrated-mode/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>That title could actually be longer….</p>
<p>SQL Server 2012 brings with it a number of key Business Intelligence features that apply directly to SharePoint environments. One of the major improvements is the way that Reporting Services installs. Prior to version 2012, when running in SharePoint integrated mode, it installed along side of SharePoint, and connected through an add-in. With 2012, it is now a full SharePoint Service application, with all of the associated benefits that brings. </p>
<p>It is simple enough to set this up on a new farm, but what about organizations that are already using SSRS in integrated mode? Since I was unable to find any prescriptive guidance on the upgrade process, I ran through it on a test farm, and below are my findings. This describes the process of upgrading from SSRS 2008 R2 to the RTM version of SSRS 2012.</p>
<p>SQL Server 2012 has some relatively strict operating system requirements. First and foremost, you need to be running at least Windows 7 or Windows Server 2008 R2 Service Pack 1, or Windows Vista or Windows Server 2008 Service Pack 2. If not, you’ll get the following message immediately.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb3.png" width="625" height="172"></a></p>
<p>In addition, depending on what you’re upgrading, it’s pretty fussy about your source environment as well. For example, if you’re upgrading management tools or BIDS, and you already have Visual Studio 2010 installed, it will need to be at least at the Service Pack 1 level. Your source SQL Server also has specific service pack requirements. <a href="http://msdn.microsoft.com/en-us/library/ms143393(v=sql.110).aspx">The complete supported upgrade matrix can be found here</a>. Unfortunately, if these requirements are not met, the installation will fail much further along in the process, and you’ll need to repeat several steps after correcting. </p>
<p>Once the SQL Server Installation Center launches, you’ll want to pick the Installation tab, and then the Upgrade option.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb4.png" width="797" height="339"></a></p>
<p>After a few steps, you’ll encounter one of the new screens pertaining to Reporting Services. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image5.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb5.png" width="820" height="617"></a></p>
<p>Previously, the installer was totally unaware of Integrated Mode Reporting Services.&nbsp; You would use SSRS configuration to set it up, but now the upgrade wizard, as well as the full product installer, is fully aware of Integrated Mode. </p>
<p>When performing the upgrade, the installer will go ahead and create the SharePoint service application for you. This is different than when you perform a fresh install &#8211; in&nbsp; that case you manually create the service application after installation. However, in order to do so, it needs to create an application pool for the service application, and you will be prompted for the credentials of that pool.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb6.png" width="821" height="617"></a></p>
<p>After several more standard screens, the upgrade rules will be run. This is where you will find out if you are missing a prerequisite, or it is not at the required patch level. However, if all is good, all of the rules should show as Passed, with the exception of “Direct Browsing to Report Server”, which will show a warning.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image7.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb7.png" width="819" height="613"></a></p>
<p>Previously, if you knew the correct URL, you could navigate directly to Reporting Services and the reports stored within SharePoint through a very rudimentary interface. This warning is simply alerting you to the fact that this is no longer an option with 2012.</p>
<p>The remainder of the installation is straightforward. When done (and if successful), you can navigate to the Service Applications section of Central Administration. There, you should see the new SSRS application.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image8.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb8.png" width="1009" height="597"></a></p>
<p>I’m not a big fan of the name that the default upgrade uses for the application, but that’s simple enough to change. The important thing to note is that all of your subscriptions, snapshots, etc, will have migrated over. The upgrade upgrades the two Reporting Services databases (ReportServer, and ReportServerTempDB by default), and adds a new one, ReportServer_Alerting, which are all used by the service application. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image9.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb9.png" width="282" height="290"></a></p>
<p>In order to enable data alerts and subscriptions, a number of security modifications need to be made to the SQL Server. In addition, the SQL Server Agent must be running to use these features. Editing the Service Application shows a screen that has a link to Provision Subscriptions an alerts. Clicking through it reveals the following screen:</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image10.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb10.png" width="1007" height="592"></a></p>
<p>The View Status section simply gives you an indication of whether or not the Agent is running on the server, but clicking the “Download Script” button will give you a SQL script that will set up the required roles and permissions on your SQL Server. This script must be run on the SQL Server that holds the Reporting Services databases. In order to run it, simply open up SQL Server Management Studio, connect to the server, and click the New Query button. Once the query window opens, paste the query in, and run it (the Execute button).</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image11.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb11.png" width="1015" height="695"></a></p>
<p>Finally, enter the credentials for SharePoint to connect to your SQL Server Agent, and click OK. Once done, you’ll be in a position to use the new features available in Reporting Services, and all of your existing investments in reports should continue to operate as before. </p>
<p>For a major architectural change, this is actually a pretty smooth transition. </p>
<p>As I post this, it’s quite early in the life of 2012, so I would be quite interested to hear of any other experiences or gotchas. If there’s something that I should add to this post, please post a comment, I’d love to hear about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/03/upgrading-sql-server-reporting-services-to-2012-in-sharepoint-integrated-mode/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How To Upgrade SQL Server 2012 RC0 to Release (RTW or RTM)</title>
		<link>http://whitepages.unlimitedviz.com/2012/03/how-to-upgrade-sql-server-2012-rc0-to-release-rtw-or-rtm/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/03/how-to-upgrade-sql-server-2012-rc0-to-release-rtw-or-rtm/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 01:02:13 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Editions]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[Upgrade]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1283</guid>
		<description><![CDATA[If you’ve been working with the RC0 version of SQL Server 2012 (formerly code named “Denali”), you are likely aware that the final release is now available as an evaluation download here, or from MSDN with in the Standard, Business Intelligence, and Enterprise editions. If you want to a straight upgrade from the evaluation edition, <a href='http://whitepages.unlimitedviz.com/2012/03/how-to-upgrade-sql-server-2012-rc0-to-release-rtw-or-rtm/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>If you’ve been working with the RC0 version of SQL Server 2012 (formerly code named “Denali”), you are likely aware that the final release is now available as an <a href="http://www.microsoft.com/download/en/details.aspx?id=29066">evaluation download here</a>, or from MSDN with in the Standard, Business Intelligence, and Enterprise editions. </p>
<p>If you want to a straight upgrade from the evaluation edition, it’s a relatively simple process. From the installation screen, select the Upgrade from a previous version of SQL Server option (it doesn’t list RC0, but it is the same process).</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb.png" width="801" height="601"></a></p>
<p>Select all of the appropriate options, and your server will be upgrade. However, if you want to move from the RC0 to one of the licensed editions, you could run into trouble. In my testing, what has happened is that parts of the installation will upgrade properly,, but others will fail. This can be seen from the instances screen when upgrade is run for a second time.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb1.png" width="819" height="615"></a></p>
<p>Unfortunately, the “left behind” instance can not be upgraded further, and now that this has been run, the Edition upgrade function will fail to work. In one case, I needed to do a complete SQL uninstall and then a reinstall. I’ve had more fun. The good news is that the reinstall did work. </p>
<p>The way to avoid this is to do the Edition upgrade first. If you’re unfamiliar with this, you can find it on the Maintenance tab of the SQL Server installation Center</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/03/image_thumb2.png" width="801" height="601"></a>&nbsp;</p>
<p>Once you complete the edition upgrade, go ahead and perform the standard upgrade as you would with the evaluation version. </p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/03/how-to-upgrade-sql-server-2012-rc0-to-release-rtw-or-rtm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using SharePoint Filters with Reporting Services Parameters for Personalized Reports</title>
		<link>http://whitepages.unlimitedviz.com/2012/02/using-sharepoint-filters-with-reporting-services-parameters-for-personalized-reports/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/02/using-sharepoint-filters-with-reporting-services-parameters-for-personalized-reports/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 17:31:36 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Filters]]></category>
		<category><![CDATA[Parameters]]></category>
		<category><![CDATA[Profiles]]></category>
		<category><![CDATA[Reporting Services]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1275</guid>
		<description><![CDATA[Using Reporting Services integrated with SharePoint has some tremendous advantages for report re-use. In many cases, a single report can be designed, and then placed on contextual pages for customized display by setting the report parameters through the Reporting Services web part. Filter web parts can also be used to drive the Reporting Services parameters, <a href='http://whitepages.unlimitedviz.com/2012/02/using-sharepoint-filters-with-reporting-services-parameters-for-personalized-reports/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Using Reporting Services integrated with SharePoint has some tremendous advantages for report re-use. In many cases, a single report can be designed, and then placed on contextual pages for customized display by setting the report parameters through the Reporting Services web part. Filter web parts can also be used to drive the Reporting Services parameters, and finally, users can set the parameters directly if allowed. </p>
<p>However, what happens when we want users to be able to set some of&nbsp; the parameters, but not all of them? This can be achieved through a combination of filters and web part settings. </p>
<p>Consider the following report:</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb3.png" width="594" height="400"></a></p>
<p>Our requirement is to place a Reporting Services web part on a page that will display the report for the currently logged in user. In addition, the user should be able to select the time period to display, but the default for the time period should be the current year. Finally, users should not be able to use this&nbsp; report to view the submissions of other employees.</p>
<p>We can accomplish this firstly by adding three parameters to the above report – Start Date, End Date, and Employee. We will then restrict the results returned to the report to those meeting our parameters. Our main dataset query is as follows: </p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode">

<span class="kwrd">SELECT</span>  ExpenseTotal,Employee,ExpenseType,SubmittedDate<span class="kwrd">FROM</span>  Expenses<span class="kwrd">WHERE</span> SubmittedDate <span class="kwrd">BETWEEN</span> @StartDate <span class="kwrd">AND</span> @EndDate 

   <span class="kwrd">AND</span> Employee= @Employee
</pre>
</div>
<p>Ideally, we could use SharePoint filters to set the value of all three parameters (details on this below…), and then completely hide the Reporting Services parameter pane from the users. Unfortunately, the date filter in SharePoint doesn’t quite meet our requirement.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb4.png" width="270" height="354"></a></p>
<p>We can explicitly set the default value, or make it a function of the current date, but what we can’t do is to set it to the first day of the current year, last day of the current year, etc. True, on Jan 1 we could go to the page and edit the parameters of the filter, but we’re looking for something a little more elegant than that. </p>
<p>We can get these sorts of values through SQL Queries, so what we’re going to do is to set the default values of the parameters with a Reporting Services Dataset. The dataset query is:</p>
<div class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">SELECT</span>   DATENAME(<span class="kwrd">Year</span>,GETDATE())+<span class="str">'0101'</span> <span class="kwrd">as</span> StartDate,   DATENAME(<span class="kwrd">Year</span>,GETDATE())+<span class="str">'1231'</span> <span class="kwrd">as</span> EndDate</pre>
</div>
<div class="csharpcode-wrapper">This basically retrieves the current year and then appends Jan 01, and Dec 31 respectively to return the values in YYYMMDD format. These values are then set as the defaults for the start and end date parameters respectively:</div>
<div class="csharpcode-wrapper">&nbsp;</div>
<div class="csharpcode-wrapper"><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb5.png" width="846" height="678"></a></div>
<div class="csharpcode-wrapper">We will be setting the value for employee with a filter, so we don’t need to set its available or default values. </div>
<div class="csharpcode-wrapper">&nbsp;</div>
<div class="csharpcode-wrapper">Once this is done, and the report is saved, we’re ready to add the report to a SharePoint page. To do this, simply navigate to the destination page and edit it, then insert a Reporting Services Web Part on the page. Open the web part tool pane, select the report, and set all of the View/Display options that you want to use. You will need to make sure that the prompt are is displayed, as you will need it for your users to change the date ranges. However, you can start it collapsed.</div>
<div class="csharpcode-wrapper">&nbsp;</div>
<div class="csharpcode-wrapper"><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image6.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb6.png" width="353" height="182"></a></div>
<div class="csharpcode-wrapper">&nbsp;</div>
<div class="csharpcode-wrapper">Finally, you’ll want to load up the report parameters section</div>
<div class="csharpcode-wrapper">&nbsp;</div>
<div class="csharpcode-wrapper"><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image7.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb7.png" width="359" height="294"></a></div>
<p>You should not that all of the parameters need a value for the report to render – hence the “Enter A User” value, which will return no records. At this point, we can save the web part and test the form by entering an employee name in the Employee parameter field.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb8.png" width="898" height="407"></a></p>
<p>The next step is to add the Current User Filter Web Part to the page (in the Filters section of the web parts list), and configure it. It’s a context filter, and it won’t display to the end user, so you can put it anywhere on the page that you wish. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image9.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb9.png" width="277" height="530"></a></p>
<p>You can send either the user’s Active Directory account name, or the value of any of the User Profile fields (as an aside, this is one reason that the user profile is really important…). In our case, the back end data is in a “First Name Last Name” format, and this corresponds with the Name property of the User Profile, and is therefore what we’ll use. </p>
<p>Once configured, we save the web part, and then we need to connect it to the report. We do this by accessing the Web Part Edit Menu, hovering over Connections, and selecting “Send Filter Values To”</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image10.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb10.png" width="716" height="474"></a></p>
<p>We then select the report, and the parameter to set:</p>
<p>​<a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image11.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb11.png" width="479" height="250"></a> </p>
<p>​Once connected, the report should be using the name of the currently logged in user, in our case, Olaf Franz. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image12.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb12.png" width="1047" height="598"></a> </p>
<p>In the above screen I have opened the parameters pane (I have it closed by default) to show that users can change the dates, but by navigating to this single page, a user will see their own entries for the current year. However the important thing to note here is that although “Employee” is a parameter, it no longer appears in the parameters pane. This is due to the fact that its value is being set by a SharePoint filter, and it has the added benefit of allowing us to prevent users from seeing other users’ reports. </p>
<p>This is a perfect example of where the personalization capabilities of SharePoint can be combined with the analytic power of Reporting Services for a result that’s truly greater than the sum of the parts.</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/02/using-sharepoint-filters-with-reporting-services-parameters-for-personalized-reports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TechNet Radio Community Corner Interview</title>
		<link>http://whitepages.unlimitedviz.com/2012/02/technet-radio-community-corner-interview/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/02/technet-radio-community-corner-interview/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 19:51:25 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Lync]]></category>
		<category><![CDATA[MVP]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1247</guid>
		<description><![CDATA[Last November, I was interviewed by Sr. Technical Evangelist John Weston on the MVP program, Office 365, Cloud Computing, Business Intelligence, and how these things all tie together. The entire interview was conducted online using Lync online, available in Office365. It’s now online, and can be seen below. You can see other Technet Radio episodes <a href='http://whitepages.unlimitedviz.com/2012/02/technet-radio-community-corner-interview/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Last November, I was interviewed by Sr. Technical Evangelist <a href="http://social.technet.microsoft.com/profile/jweston/">John Weston</a> on the MVP program, Office 365, Cloud Computing, Business Intelligence, and how these things all tie together. The entire interview was conducted online using Lync online, available in Office365. It’s now online, and can be seen below.<br />
<script src="http://technet.microsoft.com/en-us/videoembed/technet-radio-community-corner-microsoft-sharepoint-mvp-john-white-on-office-365-and-sharepoint-online" type="text/javascript"></script><br />
You can see other Technet Radio episodes by <a href="http://technet.microsoft.com/en-us/edge/ff832960">visiting the Edge site here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/02/technet-radio-community-corner-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using SQL Server Report Builder with Internet Explorer 9</title>
		<link>http://whitepages.unlimitedviz.com/2012/02/using-sql-server-report-builder-with-internet-explorer-9/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/02/using-sql-server-report-builder-with-internet-explorer-9/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 18:35:59 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Report Builder]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1242</guid>
		<description><![CDATA[One of the unsung heroes of the Microsoft Business Intelligence stack is Report Builder. Report Designer has been part of Business Intelligence Development Studio (BIDS) for quite some time, but BIDS is more of a designer tool. In order to get report design into the hands of power users, Microsoft provided Report Builder initially with <a href='http://whitepages.unlimitedviz.com/2012/02/using-sql-server-report-builder-with-internet-explorer-9/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>One of the unsung heroes of the Microsoft Business Intelligence stack is Report Builder. Report Designer has been part of Business Intelligence Development Studio (BIDS) for quite some time, but BIDS is more of a designer tool. In order to get report design into the hands of power users, Microsoft provided Report Builder initially with a reduced set of functionality SQL Server 2005, but with Report Builder 3.0 which ships with SQL Server 2008 R2, it’s just as capable as BIDS. When running in SharePoint Integrated mode, you can design reports as if they were any other type of Office document.</p>
<p>Unfortunately, if you edit a report, you may be greeted with the message: “To use Report Builder, you must install .Net Framework 3.5 on this computer.”</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb.png" width="654" height="235"></a></p>
<p>Report Builder does require .Net Framework 3.5, but you’ll see this message even when you have it installed. Clicking on the “Install .Net 3.5” will reinstall it, but won’t help. </p>
<p>This only happens when using Internet Explorer 9, and is due to the fact that it doesn’t correctly detect the Framework’s presence. This doesn’t happen with any other browser, including previous versions of IE. It can be worked around by setting the browser’s compatibility mode. </p>
<p>To do that, either press the F12 key, or turn on developer tools from IE’s Tools menu:</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb1.png" width="624" height="477"></a></p>
<p>Doing so will bring up the developer tools window, where you can set the broswer mode. Setting it to anything other than IE9 will work.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2012/02/image_thumb2.png" width="373" height="303"></a></p>
<p>Just the act of setting it should start the Report Builder download process. The setting will persist for the life of the browser window, so you’ll need to do it again the next time that you edit the report. </p>
<p>I’d love to hear of any better fixes to the problem, but for now, this lets you get the job done.</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/02/using-sql-server-report-builder-with-internet-explorer-9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upcoming Speaking Engagements &#8211; Spring 2012</title>
		<link>http://whitepages.unlimitedviz.com/2012/02/upcoming-speaking-engagements-spring-2012/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/02/upcoming-speaking-engagements-spring-2012/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 02:40:40 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[HSPUG]]></category>
		<category><![CDATA[Ontario]]></category>
		<category><![CDATA[PowerView]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[TSPUG]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1234</guid>
		<description><![CDATA[While the blog has been quieter than usual for the past couple of months, owing to a hectic schedule, I do have a number of speaking engagements coming up that I wanted to promote. All of them are related to SharePoint Business Intelligence in one way or another, and all are in the Toronto/South Western <a href='http://whitepages.unlimitedviz.com/2012/02/upcoming-speaking-engagements-spring-2012/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>While the blog has been quieter than usual for the past couple of months, owing to a hectic schedule, I do have a number of speaking engagements coming up that I wanted to promote. All of them are related to SharePoint Business Intelligence in one way or another, and all are in the Toronto/South Western Ontario area. If you’d like to come out and talk SharePoint, Business Intelligence, or just indulge in a SharePint or two, I would love to see you there. </p>
<p><font size="1"><br />
<table border="0" cellspacing="0" cellpadding="2" width="450">
<tbody>
<tr>
<td valign="top" width="450"><font size="1"><strong>Hamilton SharePoint User Group</strong></font></td>
</tr>
<tr>
<td valign="top" width="450"><font size="1">Thursday, Feb 16 2012</font></td>
</tr>
<tr>
<td valign="top" width="450"><a href="http://www.meetup.com/HamiltonSPUG/events/47115442/"><strong>SQL Server Reporting Services with SharePoint</strong></a><br />SQL Server Reporting Services provides a rich reporting environment, and integration with SharePoint makes it seem seamless to end users. How does Reporting Services impact the SharePoint environment? This presentation will walk through the basic features of Reporting Services, and architectural considerations when installing in a SharePoint farm. In addition, some of the differences included in the upcoming SQL Server 2012 version of Reporting Services will be discussed.</td>
</tr>
<tr>
<td valign="top" width="450">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="450"><strong>Toronto SharePoint User Group</strong></td>
</tr>
<tr>
<td valign="top" width="450">Wednesday, April 18, 2012</td>
</tr>
<tr>
<td valign="top" width="450"><a href="http://www.meetup.com/TorontoSPUG/events/42177662/"><strong>What’s new in SQL Server 2012 for SharePoint</strong></a><br />SQL Server 2012 brings a wealth of new features to the core database used by SharePoint. However, it also brings a number of exciting new Business Intelligence features right to your SharePoint users. </p>
<p>This session will walk through a number of the new features that have a direct impact on SharePoint administrators, designers and end users, with in depth demonstrations of how to configure and use them. These features include significant architectural changes to Reporting services, the new BISM or tabular engine for Analysis Services and PowerPivot, and the new end user focused reporting tool, PowerView.</td>
</tr>
<tr>
<td valign="top" width="450"><strong>SharePoint Summit</strong></td>
</tr>
<tr>
<td valign="top" width="450">May 15, 2012</td>
</tr>
<tr>
<td valign="top" width="450"><a href="http://www.sharepointsummit.org/Toronto/index.htm"><strong>Reporting for Duty &#8211; Best Practices for Reporting Services with SharePoint</strong></a><br /> 
<p>&nbsp;
<p>Reporting Services and SharePoint have been working together since SharePoint 2003. SQL Server 2005 SP1 brought the ability to use Reporting Services in Integrated Mode through a SharePoint Add in, and with SQL Server 2012, Reporting Services is a fully fledged SharePoint Service Application, and some features, the new PowerView in particular, are only available through SharePoint Integrated Mode.
<p>Reporting Services bring a wealth of benefits to your SharePoint farm, but can also have a significant impact on it. This session will discuss the do&#8217;s and don’ts for a successful Reporting Services implementation. It will cover architectural considerations through to Report design, for both the Reporting Services Add In (SQL Server 2005-2008) and the new Reporting Services Service Application (SQL Server 2012).</p>
</td>
</tr>
</tbody>
</table>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/02/upcoming-speaking-engagements-spring-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playa Del Carmen &#8211; Dive Report</title>
		<link>http://whitepages.unlimitedviz.com/2012/01/playa-del-carmen-dive-report/</link>
		<comments>http://whitepages.unlimitedviz.com/2012/01/playa-del-carmen-dive-report/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 19:48:47 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Diving]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Abyss Dive Center]]></category>
		<category><![CDATA[Bull Shark]]></category>
		<category><![CDATA[Cenote]]></category>
		<category><![CDATA[Mexico]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[Playa Del Carmen]]></category>
		<category><![CDATA[Shark]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/2012/01/playa-del-carmen-dive-report/</guid>
		<description><![CDATA[It’s been quite some time since I blogged anything substantial, so why not start the New Year off with a dive report? Two days after New Years, we packed up the family and headed back to the Mayan Riviera. We stayed at the same resort that we did last year, the Azul Sensatori just outside <a href='http://whitepages.unlimitedviz.com/2012/01/playa-del-carmen-dive-report/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>It’s been quite some time since I blogged anything substantial, so why not start the New Year off with a dive report? Two days after New Years, we packed up the family and headed back to the Mayan Riviera. We stayed at the same resort that we did last year, the <a href="http://www.karismahotels.com/resort/azul-sensatori-hotel-karisma">Azul Sensatori</a> just outside of Puerto Morelos. If you have children (or even if you don’t) it’s a fantastic place. I have to make a shout out to Miguel, who worked at the bell stand, and went out of his way to make our stay a good one. </p>
<p>My only complaint about the resort was that it was a bit far from Playa Del Carmen, and when in the area, I always dive with the <a href="http://www.abyssdiveshop.com/">Abyss Dive Center</a> – I originally certified there, and have done all of my certifications there since. Also diving with me this time was my son John, and our good friends Allyson and Rich. </p>
<p>Around December-March every year, bull sharks can be found right off the beach in Playa Del Carmen, and last year, I had hoped to see a few of them. Alas, at the time, they had left the area for some inexplicable reason, only to return after I had come home. This year it was different. This time I got to dive with them twice, and each time there were between 10-20 checking us out. One morning we saw 5 at one of the regular dive sites. All of my diving pictures for the trip <a href="http://www.flickr.com/photos/wpages/sets/72157628868664209/">can be found here</a> but just to highlight a few…</p>
<p>To celebrate my reconfirmation as MVP on Jan 1, I had my son take the shot of me below</p>
<p><a title="Swimming with the sharks - literally" href="http://www.flickr.com/photos/90281098@N00/6696458267/"><img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="Swimming with the sharks - literally" src="http://farm8.static.flickr.com/7009/6696458267_7285b06b80.jpg" width="550" height="352"></a></p>
<p>A few other shots of the attractions in question:</p>
<p><a title="Bull Shark" href="http://www.flickr.com/photos/90281098@N00/6696461187/"><img border="0" alt="Bull Shark" src="http://farm8.static.flickr.com/7148/6696461187_a48faafbc7.jpg" width="545" height="329"></a></p>
<p><a title="Bull Shark" href="http://www.flickr.com/photos/90281098@N00/6696481917/"><img border="0" alt="Bull Shark" src="http://farm8.static.flickr.com/7020/6696481917_94c6d20493.jpg" width="544" height="362"></a></p>
<p><a title="Bull Shark" href="http://www.flickr.com/photos/90281098@N00/6696493359/"><img border="0" alt="Bull Shark" src="http://farm8.static.flickr.com/7015/6696493359_78485ac3fb.jpg" width="547" height="364"></a></p>
<p>In addition to the photos, I wanted to try out the video capabilities of my Canon T2i. From the footage, I was able to put this video together:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6ed1189b-b576-459b-bd80-b658d56e0654" class="wlWriterEditableSmartContent">
<div><object width="539" height="303"><param name="movie" value="http://www.youtube.com/v/iNn4-YSxzH8?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/iNn4-YSxzH8?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="539" height="303"></embed></object></div>
<div style="width:539px;clear:both;font-size:.8em">Swimming with the sharks</div>
</div>
<p>&nbsp;</p>
<p>In addition to the sharks, on our last diving day, we headed inland to the cenotes. For those of you that don’t know, cenotes are underground rivers that only exist in the Yucatan peninsula, and you can dive in them. Since there are frequent openings into air, it’s not quite cave diving, but it’s close, and on a nice sunny day, like the one we had, the light show can be spectacular.</p>
<p><a title="Ally and Rich - Ponderosa Cenote" href="http://www.flickr.com/photos/90281098@N00/6696527377/"><img border="0" alt="Ally and Rich - Ponderosa Cenote" src="http://farm8.static.flickr.com/7013/6696527377_cc2450e8fd.jpg" width="579" height="386"></a></p>
<p><a title="Ponderosa Cenote - Looking Up" href="http://www.flickr.com/photos/90281098@N00/6696534243/"><img border="0" alt="Ponderosa Cenote - Looking Up" src="http://farm8.static.flickr.com/7031/6696534243_39db10aa92.jpg" width="617" height="411"></a></p>
<p><a title="Ponderosa Cenote" href="http://www.flickr.com/photos/90281098@N00/6696532159/"><img border="0" alt="Ponderosa Cenote" src="http://farm8.static.flickr.com/7034/6696532159_60aa5bfbec.jpg" width="593" height="395"></a></p>
<p><a title="Ponderosa Cenote" href="http://www.flickr.com/photos/90281098@N00/6696536141/"><img border="0" alt="Ponderosa Cenote" src="http://farm8.static.flickr.com/7152/6696536141_6786ca415e.jpg" width="553" height="368"></a></p>
<p><a title="Guardian of the Ponderosa Cenote (driftwood)" href="http://www.flickr.com/photos/90281098@N00/6696537687/"><img border="0" alt="Guardian of the Ponderosa Cenote (driftwood)" src="http://farm8.static.flickr.com/7029/6696537687_32eb98fede.jpg" width="550" height="366"></a></p>
<p><a title="Tajma Ha Cenote" href="http://www.flickr.com/photos/90281098@N00/6696566875/"><img border="0" alt="Tajma Ha Cenote" src="http://farm8.static.flickr.com/7171/6696566875_baab81a0db.jpg" width="569" height="379"></a></p>
<p>That pretty much wraps up the fun for this year – now it’s back to work. I have a mountain in front of me and a lot of writing to do to!</p>
<p>Happy New Year</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2012/01/playa-del-carmen-dive-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upgrading and Moving Integrated Mode Reporting Services With SharePoint</title>
		<link>http://whitepages.unlimitedviz.com/2011/12/upgrading-and-moving-integrated-mode-reporting-services-with-sharepoint/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/12/upgrading-and-moving-integrated-mode-reporting-services-with-sharepoint/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 21:31:12 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Integrated Mode]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[Upgrade]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/2011/12/upgrading-and-moving-integrated-mode-reporting-services-with-sharepoint/</guid>
		<description><![CDATA[There is a plethora of instructions out there on upgrading from SharePoint 2007 to SharePoint 2010, but relatively little on doing the upgrade where Reporting Services has been set up in SharePoint integrated mode. Given that there are a few gotchas that you can run into when doing this, I decided to put together this <a href='http://whitepages.unlimitedviz.com/2011/12/upgrading-and-moving-integrated-mode-reporting-services-with-sharepoint/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>There is a plethora of instructions out there on upgrading from SharePoint 2007 to SharePoint 2010, but relatively little on doing the upgrade where Reporting Services has been set up in SharePoint integrated mode. Given that there are a few gotchas that you can run into when doing this, I decided to put together this step-by-step, complete with the gotchas. </p>
<p>The most common scenario that will be encountered, given the vintages of the products will be an RS upgrade from SQL Server 2005 to 2008 R2. In addition, the in place upgrade is relatively painless (in the short term….) so I’ll be walking through a DB attach upgrade, which is just as applicable to RS as it is to SharePoint. Finally as <a href="http://whitepages.unlimitedviz.com/2010/05/installation-considerations-for-reporting-services-in-sharepoint-integrated-mode/">I’ve written about previously</a>, in a small farm, it’s likely a better idea to add the Reporting Services bits to a SharePoint front end server, than to add the SQL server to the SharePoint farm, and that will also be a part of our scenario. </p>
<p>The first question to answer is “why bother”? One of the advantages to using RS in SharePoint Integrated mode is that unlike Native mode, the reports, data connections and models are stored directly in SharePoint. It is therefore possible to just create a new RS database, and move forward. However, since subscriptions, schedules, and cache profiles are still in the database, it’s likely worth it to do the upgrade.</p>
<h6>Step 1 &#8211; Back Up The Asymmetric Key</h6>
<p>Reporting Services itself uses 2 SQL databases. One of the databases is for temporary operations, but the other database stores a number of important, and sensitive items for this reason, all sensitive items in the database are encrypted with a key. If we want to get access to these items, we need the key. To do so, we need to back it up from the source server before we move ahead. </p>
<p>Run the Reporting Services Configuration Manager on the source RS server, and select “Encryption Keys”. Click the Backup button, select (and remember) a password, and then save the key to the file system.&nbsp; </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image5.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb5.png" width="939" height="697"></a></p>
<p>Once saved, copy the key file to the destination RS server (likely your SharePoint 2010 front end server).</p>
<h6>Step 2 &#8211; Back Up the Reporting Services Databases</h6>
<p>Run SQL Server Management Studio on the Server where the Reporting Services databases are located. Run full backups of the two RS databases. When complete, copy the backups to the destination SQL server (likely the server that will host the SharePoint 2010 databases).</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb6.png" width="799" height="422"></a></p>
<h6>Step 3 &#8211; Restore the Reporting Services Databases</h6>
<p>Using SSMS, restore the two databases to the host SQL server. Once restored, it’s likely a good idea to set the recovery model to Simple, and the Compatibility level to SQL Server 2008. These steps aren’t required, but are recommended, unless you have a reason for not doing so.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image7.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb7.png" width="929" height="653"></a></p>
<h6>Step 4 &#8211; Run the RS Configuration </h6>
<p>If Reporting Services hasn’t yet been installed on the SharePoint server, do so, otherwise, proceed to configuration by running the Reporting Services Configuration Wizard on the destination RS Server. Configure the basic steps, and then when it comes to Database configuration, select the option to choose an existing database.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image8.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb8.png" width="677" height="488"></a></p>
<p>Select the server where you restored the files in step 3, and select the primary RS database (the one without the word “Temp” in it&#8221;). </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image9.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb9.png" width="685" height="493"></a></p>
<p>Complete the configuration wizard.</p>
<h6>Step 5 &#8211; Connect SharePoint to Reporting Services</h6>
<p>From SharePoint Central Administration, select General Application Settings, and then Reporting Services Integration. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image10.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb10.png" width="958" height="529"></a></p>
<p>Complete&nbsp; the integration configuration, and then select OK</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image11.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb11.png" width="1075" height="577"></a></p>
<p>So far so good – now we’re ready for some gotchas. If you now click on the “Set Server Defaults” link in the Reporting Services section, you likely get a rather nasty looking error. You’ll also experience this error if you access ewither of the two RS URLs defined in the RS configuration wizard. The error is:</p>
<p>The report server installation is not initialized. (rsReportServerNotActivated)</p>
<p>This error happens when the server can’t access configuration information, and the most common cause of that is that it can’t decrypt the content. In our case, it can’t because we haven’t yet restored our key. </p>
<h6>Step 6 &#8211; Restore the Asymmetric Key</h6>
<p>On our new RS server, we need to run the RS Configuration Manager, Select Encryption Keys, and then click the Restore button. You will be prompted for the file that you created and copied in Step 1, and this is where remembering the password comes in very handy. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image12.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb12.png" width="943" height="661"></a></p>
<p>Once this is done, we can close the configuration manager and return to Central Administration. However, now when we try to access access any aspect of RS we get a new error:</p>
<p>The feature: “Scale-out deployment” is not supported in this edition of Reporting Services. (rsOperationNotSupported)</p>
<p>The reason for this error is that when we restored the key, it added an entry in the Keys table in the Reporting Services database, causing RS to think that we’re using multiple Reporting Services servers. This is what’s known as a scale-out deployment, and is only supported in the Enterprise version of Reporting Services. Obviously this isn’t a problem for anyone running Enterprise, but if not, it’s a showstopper. </p>
<p>The way to fix this is to remove the old server entry in the Keys table. Using SQL Server Management Studio, connect to the Reporting Services database, and open the dbo.Keys table. The old entry should be easy to spot as it will have the old server name. Simple delete the row.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image13.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb13.png" width="999" height="390"></a></p>
<p>Once the offending entry is deleted, RS should be good to go. </p>
<h6>7. Fix up the content type names</h6>
<p>I have posted about this already, but often, an upgrade will break the Content Type names for the Reporting Services content types. Just <a href="http://whitepages.unlimitedviz.com/2011/12/how-to-fix-broken-reporting-services-content-type-names/">follow the steps in this post</a> to clean them up.</p>
<h6>8. Reconnect Reports with Data Sources And/Or Republish</h6>
<p>In addition, moving connection files and reports around in SharePoint can cause them to be disconnected from each other, or for the connection files to be disabled. It’s a good idea to navigate to all of your reports to make sure that they are connected, or better yet, to republish from the source if you had previously used BIDS to publish reports.</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/12/upgrading-and-moving-integrated-mode-reporting-services-with-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lync For Windows Phone 7: Unable to sign in. Can&#8217;t connect to the server</title>
		<link>http://whitepages.unlimitedviz.com/2011/12/lync-for-windows-phone-7-unable-to-sign-in-cant-connect-to-the-server/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/12/lync-for-windows-phone-7-unable-to-sign-in-cant-connect-to-the-server/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 18:17:10 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Office 365]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Lync]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/2011/12/lync-for-windows-phone-7-unable-to-sign-in-cant-connect-to-the-server/</guid>
		<description><![CDATA[The Lync 2010 client for Windows Phone was released in the Windows Phone marketplace today. Being a big fan of Lync, I eagerly downloaded and ran it, only to be presented by the error :Unable to sign in. Can&#8217;t connect to the server”. I went into the manual configuration on the phone and tried to <a href='http://whitepages.unlimitedviz.com/2011/12/lync-for-windows-phone-7-unable-to-sign-in-cant-connect-to-the-server/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>The Lync 2010 client for Windows Phone was released in the Windows Phone marketplace today. Being a big fan of Lync, I eagerly downloaded and ran it, only to be presented by the error :Unable to sign in. Can&#8217;t connect to the server”. I went into the manual configuration on the phone and tried to connect and still no dice. </p>
<p>Given that we are using Office 365, I checked in the community hub and found <a href="http://community.office365.com/en-us/f/167/p/17320/80465.aspx">this post</a> that indicated that there were were other users experiencing the same problem, but in their case, it was related to the fact that they were using the default “onmicrosoft.com” domain. However, there were some DNS instructions in the post that gave me a clue. Unfortunately, once I added the indicated DNS entry, I still had the same problem. </p>
<p>I decided to check the DNS settings for my domain in the Administration panel. and as it turns out, the DNS instructions have been updated since I had originally set up our Office 365. There are two CNAME entries that are required for the WP7 Lync application to work with Office 365:</p>
<table border="0" cellspacing="0" cellpadding="2" width="542">
<tbody>
<tr>
<td valign="top" width="105"><strong>Type</strong></td>
<td valign="top" width="199"><strong>Host Name</strong></td>
<td valign="top" width="158"><strong>Points To</strong></td>
<td valign="top" width="78"><strong>TTL</strong></td>
</tr>
<tr>
<td valign="top" width="105">
<p>CNAME</p>
</td>
<td valign="top" width="199">
<p>sip.<em>yourdomain.com</em></p>
</td>
<td valign="top" width="158">
<p>sipdir.online.lync.com</p>
</td>
<td valign="top" width="78">1 Hour </td>
</tr>
<tr>
<td valign="top" width="105">
<p>CNAME</p>
</td>
<td valign="top" width="199">
<p>lyncdiscover.<em>yourdomain.com</em></p>
</td>
<td valign="top" width="158">
<p>webdir.online.lync.com</p>
</td>
<td valign="top" width="78">
<p>1 Hour</p>
</td>
</tr>
</tbody>
</table>
<p>Obviously,<em> yourname.com</em> should be replaced with your actual domain name. </p>
<p>Once I set these up, I was off to the races with my mobile Lync client. </p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/12/lync-for-windows-phone-7-unable-to-sign-in-cant-connect-to-the-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Fix Broken Reporting Services Content Type Names</title>
		<link>http://whitepages.unlimitedviz.com/2011/12/how-to-fix-broken-reporting-services-content-type-names/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/12/how-to-fix-broken-reporting-services-content-type-names/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 18:27:04 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Content Types]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/2011/12/how-to-fix-broken-reporting-services-content-type-names/</guid>
		<description><![CDATA[Recently, after helping to upgrade a customer from SharePoint 2007 to 2010, we noticed some oddities around the Reporting Services content types. The RS content types are deployed into a&#160; farm when the RS add-in is installed. The observed problem was that the names of the content types, and the content type group was all <a href='http://whitepages.unlimitedviz.com/2011/12/how-to-fix-broken-reporting-services-content-type-names/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Recently, after helping to upgrade a customer from SharePoint 2007 to 2010, we noticed some oddities around the Reporting Services content types. The RS content types are deployed into a&nbsp; farm when the RS add-in is installed. The observed problem was that the names of the content types, and the content type group was all messed up.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb.png" width="598" height="122"></a>&nbsp;</p>
<p>The names displayed were the internal names that are used to support multilingual installations. What I believe caused this problem was the the content database had been upgraded to 2010 prior to the add in being installed on the farm, so the English names could not be resolved. </p>
<p>All existing items using the types continued to work, and reports could still be deployed using Business Intelligence Development Studio (BIDS). However some UI dependent functions, like Report Builder could not be used without the proper names. Luckily, the fix is relatively straightforward. All that we need to do is to set the correct names manually. To get the correct farm, all that is necessary is to inspect an unaffected farm to see the section below.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb1.png" width="672" height="98"></a></p>
<p>In order to fix this, you need to first navigate to the root of your site collection, and then select Site Actions – Site Settings, and then click on Site content types in the Galleries section. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb2.png" width="530" height="272"></a></p>
<p>At this point, you should see the affected section, it will be right at the top. We need to fix the content types one at a time, so click on one of the affected content types. The Content type editor window will appear.&nbsp; From that Window, simply select Name, description, and group.</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb3.png" width="603" height="450"></a></p>
<p>You will then be able to edit the values for Name, Description, and Group. </p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/12/image_thumb4.png" width="645" height="373"></a></p>
<p>For the first one that you edit, you’ll need to select the New Group option, and enter the correct name of the group, as indicated above. For the other two content types, you’ll be able to select the correct group from the existing group list.</p>
<p>Once you’ve edited all three content types, that’s it! You’re done. </p>
<p>Well, sort of… </p>
<p>Unfortunately the name change will only affect new libraries , or newly configured libraries. For libraries that already have these content types attached to them, you’ll need to repeat the process for each library that has been affected. I imagine that it’s quite possible to write a PowerShell script that will do this for all libraries, but so far, the remediation effort hasn’t warranted it. </p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/12/how-to-fix-broken-reporting-services-content-type-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reporting Services Reports With Sparklines Running Very Slow</title>
		<link>http://whitepages.unlimitedviz.com/2011/11/reporting-services-reports-with-sparklines-running-very-slow/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/11/reporting-services-reports-with-sparklines-running-very-slow/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 02:38:42 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Reporting]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[Sparklines]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/2011/11/reporting-services-reports-with-sparklines-running-very-slow/</guid>
		<description><![CDATA[I recently encountered a fairly significant performance issue with SQL Server Reporting Services 2008 R2 and Reporting Services Azure. After having built out an electoral report that broke down election results poll by poll, I used what I think is a fantastic new feature in Reporting Services 2008 R2, sparklines. A sparkline is essentially a <a href='http://whitepages.unlimitedviz.com/2011/11/reporting-services-reports-with-sparklines-running-very-slow/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I recently encountered a fairly significant performance issue with SQL Server Reporting Services 2008 R2 and Reporting Services Azure. After having built out an electoral report that broke down election results poll by poll, I used what I think is a fantastic new feature in Reporting Services 2008 R2, sparklines. </p>
<p>A sparkline is essentially a mini-graph – a visual representation of a single row of data. In my case, it is the results, by party (as indicated by colour) for a given poll. It looks like this:</p>
<p><a href="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/11/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://whitepages.unlimitedviz.com/wp-content/uploads/2011/11/image_thumb.png" width="874" height="122"></a></p>
<p>Once I got this report looking the way that I wanted it to, I deployed it to Azure Reporting Services. However, when I ran the report, it took an incredibly long time to load (3 minutes and 30 seconds). I immediately blamed Azure RS for this, as it’s still a preview edition. However, further testing revealed the same behaviour on an on-premise deployment. The puzzling thing was that it rendered very quickly using the preview in BIDS or in Report Builder. </p>
<p>Adding to the mystery is the fact that the report renders fairly quickly when called from the Reporting Service web service to create a PDF file, or even an HTML file. I managed to discover this when I decided to pre-create a number of these reports in PDF format to reducre the load time for users (more on how I did this in an upcoming post). </p>
<p>The oddest part is precisely where the performance problem shows up. When the report is run using a browser, the browser thread’s CPU utilization goes up to 100% of available resources (a 2 core machine CPU runs up to 50%). This is happening on the client side.</p>
<p>On a hunch, I tried removing the sparklines. Presto, the load time dropped to 20 seconds. So I don’t get to use my sparklines in the live report which is unfortunate, but at least I found the culprit. What I wish I knew was why this was happening, or if there’s something I’m simply doing wrong. </p>
<p>If anyone has any ideas, I’m all ears.</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/11/reporting-services-reports-with-sparklines-running-very-slow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>File Formats for the SQL Server 2012 (Denali) Reporting Services Web Services Renderer</title>
		<link>http://whitepages.unlimitedviz.com/2011/11/file-formats-for-the-sql-server-2012-denali-reporting-services-web-services-renderer/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/11/file-formats-for-the-sql-server-2012-denali-reporting-services-web-services-renderer/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 18:19:06 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1192</guid>
		<description><![CDATA[One of the major new features in SQL Server Reporting Services (SSRS) 2012 is the ability to render Excel files and Word files in the XML based 2007 file format (.xlsx and .docx). Previous versions of SSRS rendered Excel and Word files into the old 2003 formats (.xls and .doc) Creating one of these output <a href='http://whitepages.unlimitedviz.com/2011/11/file-formats-for-the-sql-server-2012-denali-reporting-services-web-services-renderer/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>One of the major new features in SQL Server Reporting Services (SSRS) 2012 is the ability to render Excel files and Word files in the XML based 2007 file format (.xlsx and .docx). Previous versions of SSRS rendered Excel and Word files into the old 2003 formats (.xls and .doc) Creating one of these output files can be done through the reporting UI by using the Export button. The new formats are used automatically, and you need to perform server configuration in order to use the older formats.&nbsp; </p>
<p>However, if you are using the Reporting Services web service, nothing changes. The Render method of the ReportExecution2005 web service would appear something like below:</p>
<pre><code>report = rs.Render("EXCEL", deviceinfo, _  extension, mimeType, encoding, warnings, streamIDs)
</code></pre>
<p>The first argument is the file format to render into. With SSRS, the above code will render into the 2003 file format (.xls). The web service defaults to the old format.</p>
<p>I was unable to find any documentation at all on the correct argument to get the new file formats, so I poked around a little with my debugger and the ListRenderingExtensions method. As a result, I thought I&#8217;d share what I think is the comprehensive list of rendering formats for Reporting Services in SQL Server 2012. These are taken straight from the code.</p>
<div>
<table style="border-collapse: collapse" border="0">
<colgroup>
<col style="width: 147px">
<col style="width: 232px"></colgroup>
<tbody valign="top">
<tr style="background: #4f81bd; height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top: #4f81bd 1pt solid">
<p><span style="color: black"><strong>Name</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top: #4f81bd 1pt solid; border-right: #4f81bd 1pt solid">
<p><span style="color: black"><strong>Description</strong></span></p>
</td>
</tr>
<tr style="height: 20px" height="20">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none">
<p><span style="color: black"><strong>XML</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #4f81bd 1pt solid">
<p><span style="color: black">XML file with report data</span></p>
</td>
</tr>
<tr style="height: 20px" height="20">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px">
<p><span style="color: black"><strong>NULL</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-right: #4f81bd 1pt solid">
<p><span style="color: black">Null Renderer</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none">
<p><span style="color: black"><strong>CSV</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #4f81bd 1pt solid">
<p><span style="color: black">CSV (comma delimited)</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px">
<p><span style="color: black"><strong>ATOM</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-right: #4f81bd 1pt solid">
<p><span style="color: black">Data Feed</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none">
<p><span style="color: black"><strong>PDF</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #4f81bd 1pt solid">
<p><span style="color: black">PDF</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px">
<p><span style="color: black"><strong>RGDI</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-right: #4f81bd 1pt solid">
<p><span style="color: black">Remote GDI+ file</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none">
<p><span style="color: black"><strong>HTML4.0</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #4f81bd 1pt solid">
<p><span style="color: black">HTML 4.0</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px">
<p><span style="color: black"><strong>MHTML</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-right: #4f81bd 1pt solid">
<p><span style="color: black">MHTML (web archive)</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none">
<p><span style="color: black"><strong>EXCEL</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #4f81bd 1pt solid">
<p><span style="color: black">Excel 2003</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px">
<p><span style="color: black"><strong>EXCELOPENXML</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-right: #4f81bd 1pt solid">
<p><span style="color: black">Excel</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none">
<p><span style="color: black"><strong>RPL</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #4f81bd 1pt solid">
<p><span style="color: black">RPL Renderer</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px">
<p><span style="color: black"><strong>IMAGE</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-right: #4f81bd 1pt solid">
<p><span style="color: black">TIFF file</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none">
<p><span style="color: black"><strong>WORD</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #4f81bd 1pt solid">
<p><span style="color: black">Word 2003</span></p>
</td>
</tr>
<tr style="height: 20px">
<td style="border-bottom: #4f81bd 1pt solid; border-left: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px">
<p><span style="color: black"><strong>WORDOPENXML</strong></span></p>
</td>
<td style="border-bottom: #4f81bd 1pt solid; padding-left: 7px; padding-right: 7px; border-right: #4f81bd 1pt solid">
<p><span style="color: black">Word</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Therefore, if I want to render to the description &#8220;Excel&#8221; the argument needs to be &#8220;EXCELOPENXML&#8221;, and to render to the description &#8220;Excel 2003&#8243; the argument is &#8220;EXCEL&#8221;. That&#8217;s not at all confusing.</p>
<p>In any event, hopefully this helps someone (likely me in the future..)</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/11/file-formats-for-the-sql-server-2012-denali-reporting-services-web-services-renderer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Get SharePoint Data Into a Data Warehouse (And Back Again)</title>
		<link>http://whitepages.unlimitedviz.com/2011/10/how-to-get-sharepoint-data-into-a-data-warehouse-and-back-again/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/10/how-to-get-sharepoint-data-into-a-data-warehouse-and-back-again/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 16:22:07 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BCS]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/2011/10/how-to-get-sharepoint-data-into-a-data-warehouse-and-back-again/</guid>
		<description><![CDATA[With apologies to J.R.R. Tolkien…… Yesterday, as part of the ongoing Panellist Spotlight series for SharePoint Shoptalk, I presented a session on how to move your data from SharePoint, and in to a data warehouse, and then consume the warehoused data directly within SharePoint. These presentations are recorded, and posted online, and if you’re interested, <a href='http://whitepages.unlimitedviz.com/2011/10/how-to-get-sharepoint-data-into-a-data-warehouse-and-back-again/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>With apologies to J.R.R. Tolkien……</p>
<p>Yesterday, as part of the ongoing Panellist Spotlight series for <a href="http://www.linkedin.com/groups?home=&amp;gid=3100222">SharePoint Shoptalk</a>, I presented a session on how to move your data from SharePoint, and in to a data warehouse, and then consume the warehoused data directly within SharePoint. These presentations are recorded, and posted online, and if you’re interested, you can view the entire presentation below:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:331fc175-4969-4816-bd97-634a864c8606" class="wlWriterEditableSmartContent">
<div><object width="554" height="311"><param name="movie" value="http://www.youtube.com/v/O0OjT_VEObI?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/O0OjT_VEObI?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="554" height="311"></embed></object></div>
</div>
<p>In it, I demonstrate how SQL Server Integration Services (SSIS) can be used to extract the data from SharePoint, and to store it in a SQL Server data warehouse. Then I walk through the creation of an external content type, and an external list using SharePoint Designer and SharePoint Business Connectivity Services (BCS). Finally, I create a report using SQL Server Reporting Services (SSRS) in SharePoint Integrated mode. </p>
<p>Thanks to <a href="http://www.linkedin.com/in/jamees">Jamees Wright</a> for organizing the session, and to my fellow panellist, <a href="http://www.sharepoint911.com/blogs/laura/default.aspx">Laura Rogers.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/10/how-to-get-sharepoint-data-into-a-data-warehouse-and-back-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I Love Office 365</title>
		<link>http://whitepages.unlimitedviz.com/2011/10/why-i-love-office-365/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/10/why-i-love-office-365/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 16:40:35 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Office Web Applications]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/2011/10/why-i-love-office-365/</guid>
		<description><![CDATA[OK, so my company is a Microsoft partner, and we’re supposed to like everything that they throw our way right? That’s actually not true. I’ll certainly give most things that they do a fair shot. It’s also true that I’m willing to sacrifice a certain amount of capability for either ease of use, or for <a href='http://whitepages.unlimitedviz.com/2011/10/why-i-love-office-365/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>OK, so my company is a Microsoft partner, and we’re supposed to like everything that they throw our way right? That’s actually not true. I’ll certainly give most things that they do a fair shot. It’s also true that I’m willing to sacrifice a certain amount of capability for either ease of use, or for the way that Microsoft products work well together, but as I noted in a <a href="http://whitepages.unlimitedviz.com/2010/11/bye-bye-blackberry/">previous post</a>, I only gave up my BlackBerry when Microsoft came out with a product that was worth using.</p>
<p>My company is small (currently 6 people) and widely distributed. Cloud solutions make perfect sense to us,and we have been using Exchange Online for over 2 years now. Our requirements for SharePoint went beyond what was possible in BPOS’ offering, but since migrating to Office 365 6 months ago, the&nbsp; new SharePoint online fits the bill, and more and more of our corporate assets live there now. </p>
<p>UnlimitedViz is currently primarily a SharePoint services company focused on Business Intelligence, and a significant portion of those services involve architecting SharePoint environments at a lower level, which involves sizing servers, making resource decisions, etc. I personally love designing solutions and watching them come to life. We are certainly more than capable to maintain our own SharePoint infrastructure, so why would we want to use an admittedly more limited version of the product that is maintained by someone else? </p>
<p>Pretty much because it’s maintained by someone else. </p>
<p>As mentioned above we’re small, and we need to be focused on what we do best, which is providing services to our customers, and building product. Maintaining internal systems, no matter how good we are at it, is a distraction, and a significant cost, both capital and operational. The per user cost of Office 365 is pretty simple to justify from just a cost standpoint, but there are many more benefits that are brought to the table. </p>
<p>No matter what the location of a team member, they can easily access what they need to. Lync brings that down to the voice and IM communication level. No need to mess around with access methods, VPNs, Firewalls, Reverse Proxy servers and the like. We can get to our content easily on site, at home via whatever device we happen to need. Granted, I could set that stuff up on-premise, but <em>now I don’t have to</em>! I also know that my data is safe, and the performance is going to be good. Two months ago, Exchange online suffered an outage for about two hours (the only hiccup I’ve experienced so far). My initial reaction was “what can I do to fix this”, but that was quickly superseded by&nbsp; “It’s not my problem to fix”, so I just sat back and got other work done.</p>
<p>As we bring more customers onto Office 365, supporting them just gets simpler. A simple client request can be acted upon immediately by launching a browser window, and connecting to their site, seamlessly. With most onsite installations, I need to start a virtual machine, connect through a VPN client, and then hope that the correct tools are installed on the VM, or the client site, depending on the access mechanism. I try to keep a VM image available for every type of VPN client used, which is a hopeless and necessary task due to the incompatibilities between clients. In my opinion, the world will be a better place when VPN clients are eliminated (or at least consolidated&#8221;). </p>
<p>Customers using Office 365 don’t need VPN clients, and it makes it that much easier (and cheaper for them) for us to support them. </p>
<p>There a a whole bunch of great features about Office 365 (Shared OneNote files accessed via Windows Phone, browser and client is a good one, not to mention Lync), but the reason that I really like it is that it’s solid, it works, and it lets my business focus on using its tools, not maintaining them.</p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/10/why-i-love-office-365/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Online Fall 2011 Service Update Starts Oct 20</title>
		<link>http://whitepages.unlimitedviz.com/2011/10/sharepoint-online-fall-2011-service-update-starts-oct-20/</link>
		<comments>http://whitepages.unlimitedviz.com/2011/10/sharepoint-online-fall-2011-service-update-starts-oct-20/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 20:09:11 +0000</pubDate>
		<dc:creator>John White</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[SharePoint Conference 2011]]></category>

		<guid isPermaLink="false">http://whitepages.unlimitedviz.com/?p=1183</guid>
		<description><![CDATA[Today, Microsoft sent out a bulletin to SharePoint Online users notifying them that they would begin rolling out the Fall 2011 Service Update. This is the much vaunted update announced at the SharePoint Conference 2011 that includes BCS services. For those that don&#8217;t already subscribe, the list of new features can be found below (copied <a href='http://whitepages.unlimitedviz.com/2011/10/sharepoint-online-fall-2011-service-update-starts-oct-20/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: arial; color: black; font-size: 10pt">Today, Microsoft sent out a bulletin to SharePoint Online users notifying them that they would begin rolling out the Fall 2011 Service Update. This is the much vaunted update announced at the SharePoint Conference 2011 that includes BCS services. For those that don&#8217;t already subscribe, the list of new features can be found below (copied from the official email).</span><span style="font-family: arial; color: black; font-size: 10pt"></p>
<p></span>
<div>
<table style="border-collapse: collapse" border="0">
<colgroup>
<col style="width: 315px">
<col style="width: 315px"></colgroup>
<tbody valign="top">
<tr style="background: #4f81bd">
<td style="border-bottom: #7ba0cd 0.75pt solid; border-left: #7ba0cd 0.75pt solid; padding-bottom: 2px; padding-left: 5px; border-right-style: none; border-top: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: white; font-size: 10pt"><strong>Feature</strong></span></p>
</td>
<td style="border-bottom: #7ba0cd 0.75pt solid; padding-bottom: 2px; border-left-style: none; padding-left: 5px; border-top: #7ba0cd 0.75pt solid; border-right: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: white; font-size: 10pt"><strong>Description</strong></span></p>
</td>
</tr>
<tr style="background: #d3dfee">
<td style="border-bottom: #7ba0cd 0.75pt solid; border-left: #7ba0cd 0.75pt solid; padding-bottom: 2px; padding-left: 5px; border-top-style: none; border-right-style: none; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt"><strong>Business Connectivity Services (BCS) &lt;WCF Connector&gt; *Enterprise plans only</strong></span></p>
</td>
<td style="border-bottom: #7ba0cd 0.75pt solid; padding-bottom: 2px; border-left-style: none; padding-left: 5px; border-top-style: none; border-right: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt">Enables connecting to external systems via web service based endpoints</span></p>
</td>
</tr>
<tr>
<td style="border-bottom: #7ba0cd 0.75pt solid; border-left: #7ba0cd 0.75pt solid; padding-bottom: 2px; padding-left: 5px; border-top-style: none; border-right-style: none; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt"><strong>External Sharing: Windows LiveID support</strong></span></p>
</td>
<td style="border-bottom: #7ba0cd 0.75pt solid; padding-bottom: 2px; border-left-style: none; padding-left: 5px; border-top-style: none; border-right: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt">Allows Office 365 tenant administrators to invite external users to a site collection. They sign in with a Windows Live ID-based user name and password.</span></p>
</td>
</tr>
<tr style="background: #d3dfee">
<td style="border-bottom: #7ba0cd 0.75pt solid; border-left: #7ba0cd 0.75pt solid; padding-bottom: 2px; padding-left: 5px; border-top-style: none; border-right-style: none; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt"><strong>Windows Phone 7 &#8220;Mango&#8221; (official support and http:// connectivity)</strong></span></p>
</td>
<td style="border-bottom: #7ba0cd 0.75pt solid; padding-bottom: 2px; border-left-style: none; padding-left: 5px; border-top-style: none; border-right: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt">Windows Phone 7.5, codenamed &#8220;Mango,&#8221; now enables both small business and enterprise Office 365 customers to access SharePoint Online lists and document libraries from their Windows Phone.</span></p>
</td>
</tr>
<tr>
<td style="border-bottom: #7ba0cd 0.75pt solid; border-left: #7ba0cd 0.75pt solid; padding-bottom: 2px; padding-left: 5px; border-top-style: none; border-right-style: none; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt"><strong>Recycle Bin: deleted site self-recovery</strong></span></p>
</td>
<td style="border-bottom: #7ba0cd 0.75pt solid; padding-bottom: 2px; border-left-style: none; padding-left: 5px; border-top-style: none; border-right: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt">Self-service ability to recover sites from a site collection&#8217;s recycle bin</span></p>
</td>
</tr>
<tr style="background: #d3dfee">
<td style="border-bottom: #7ba0cd 0.75pt solid; border-left: #7ba0cd 0.75pt solid; padding-bottom: 2px; padding-left: 5px; border-top-style: none; border-right-style: none; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt"><strong>Browser support: Internet Explorer 9</strong></span></p>
</td>
<td style="border-bottom: #7ba0cd 0.75pt solid; padding-bottom: 2px; border-left-style: none; padding-left: 5px; border-top-style: none; border-right: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt">Adds official support for the Internet Explorer 9 (IE9) browser</span></p>
</td>
</tr>
<tr>
<td style="border-bottom: #7ba0cd 0.75pt solid; border-left: #7ba0cd 0.75pt solid; padding-bottom: 2px; padding-left: 5px; border-top-style: none; border-right-style: none; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt"><strong>Browser support: Chrome</strong></span></p>
</td>
<td style="border-bottom: #7ba0cd 0.75pt solid; padding-bottom: 2px; border-left-style: none; padding-left: 5px; border-top-style: none; border-right: #7ba0cd 0.75pt solid; padding-top: 2px">
<p><span style="font-family: segoe ui; color: #666666; font-size: 10pt">Adds official support for the Chrome browser</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p><span style="font-family: arial; color: black; font-size: 10pt"><br /></span></p>
]]></content:encoded>
			<wfw:commentRss>http://whitepages.unlimitedviz.com/2011/10/sharepoint-online-fall-2011-service-update-starts-oct-20/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

