<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Blog</title><link>http://www.sidatkinson.com:80/</link><description>Blog</description><item><title>BI Conference 2010: PowerPivot</title><link>http://www.sidatkinson.com:80/BI-Conference-2010-PowerPivot</link><description>&lt;p&gt;I have attended a couple of &lt;strong&gt;PowerPivot&lt;/strong&gt; sessions at this conference 1) because it’s so damn cool and 2) very practically, it is one of the only real new product releases prior to this conference (yes , SQL 2008 R2 is out, and SSRS enhancements are nice and MDS is, well, we can cover that later….).&lt;/p&gt;  &lt;p&gt;The sessions that I attended were all very well thought out, the speakers were enthusiastic and very knowledgeable – thought there were a couple I couldn’t get into (unfortunately, an all to common problem at this BI conference).&lt;/p&gt;  &lt;p&gt;The big value for me out of these PowerPivot sessions were some of the links and resources that I gleaned out of the presentations, shared here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2010/04/23/powerpivot-technical-diagram-powerpivot-client-server-architecture.aspx" target="_blank"&gt;PowerPivot Technical Diagram: PowerPivot Client/Server&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2010/05/31/powerpivot-for-sharepoint-transitioning-from-a-single-server-to-sharepoint-farm.aspx" target="_blank"&gt;PowerPivot for SharePoint – Transitioning from a Single Server to SharePoint Farm&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sqlblog.com/blogs/marco_russo/archive/2010/04/29/microsoft-powerpivot-for-excel-2010-book-coming-in-september.aspx" target="_blank"&gt;Upcoming PowerPivot Book&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Also, for any Twitter late bloomers out there like me, utilize &lt;a href="http://www.tweetdeck.com/beta/" target="_blank"&gt;TweetDeck&lt;/a&gt; to follow keep up with PowerPivot conversations using the #PowerPivot hashtag – it is a great way to find all the knowledgeable people out there working with, developing and using PowerPivot.&lt;/p&gt;</description><pubDate>Thu, 10 Jun 2010 13:51:43 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/BI-Conference-2010-PowerPivot</guid></item><item><title>You may call him Master</title><link>http://www.sidatkinson.com:80/You-may-call-him-Master</link><description>&lt;p align="left"&gt;Congratulations to my friend and colleague &lt;a href="http://blogs.catapultsystems.com/gleclair/default.aspx" target="_blank"&gt;Greg LeClair&lt;/a&gt; for officially becoming a &lt;a href="http://www.microsoft.com/learning/en/us/certification/master.aspx#meet" target="_blank"&gt;SQL Server Master&lt;/a&gt;! It became official today.&lt;/p&gt;  &lt;p align="left"&gt;For anyone unfamiliar with the Master’s program, check out the link above – grueling program. Greg joins a select few – if you filter out all of the Microsoft guys, there currently are thirteen SQL Master’s (2005 and 2008) and four Architects in the world – nice crowd to be associated with.&lt;/p&gt;  &lt;p align="left"&gt;Congrats Greg!&lt;/p&gt;</description><pubDate>Tue, 08 Jun 2010 18:37:53 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/You-may-call-him-Master</guid></item><item><title>Extracting SharePoint Data using SSIS</title><link>http://www.sidatkinson.com:80/Extracting-SharePoint-Data-using-SSIS</link><description>&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="color: #444444; font-weight: bold"&gt;&lt;a style="font-size: 100.01%; color: orange; text-decoration: underline; padding: 0px; margin: 0px" href="/post/2008/09/19/SSIS-Adapter-for-SharePoint.aspx" class="postheader taggedlink"&gt;!!!! &amp;nbsp; Follow-up to this posted September 19, 2008: SQL 2008 SSIS Adapter for SharePoint from Microsoft Dev team posted to Codeplex !!!!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="color: #444444; font-weight: bold"&gt;&lt;a style="font-size: 100.01%; color: orange; text-decoration: underline; padding: 0px; margin: 0px" href="/post/2008/09/19/SSIS-Adapter-for-SharePoint.aspx" class="postheader taggedlink"&gt;&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;SharePoint and WSS are fantastic in that almost everything is driven by Web Services. For the data and reporting gurus, our job is a lot easier when it comes to extracting data from the mini-applications and workflows that the business community creates inside a WSS or SharePoint Portal framework &amp;ndash; though not completely straight forward, so that is what we&amp;rsquo;ll discuss today: using SSIS to extract data from WSS lists using the out of the box WSS web services. &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;In this example, we have a user community that has data in a WSS list that needs to be extracted so it can be reported on. The data in this list represents a collection of information about a business process. &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;One of our major limitations in using out of the box SSIS features is the Web Service Task. If you look at Books Online, article: &lt;a href="http://msdn2.microsoft.com/en-us/library/ms140114.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms140114.aspx&lt;/a&gt;, the first note indicates that the Web Service task supports primitive types only. If you look at the WSDL for our particular method we&amp;rsquo;ll be using, GetListItems, you can see from the WSDL below that we will have a problem: &lt;/p&gt;&lt;p&gt;&lt;img src="/image.axd?picture=wsdl.jpg" alt="" width="608" height="505" /&gt; &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;To get around this we&amp;rsquo;ll use a proxy since the Web Service task is the only item currently that can use a web reference. For our first step, we will use the same tool the VS 2005 uses when you add a web reference to a web or windows project: wsdl.exe. We&amp;rsquo;ll create our class by executing the following from the command line (wsdl.exe should be located in your C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin directory): &lt;/p&gt;&amp;nbsp;&lt;span style="font-size: 10pt"&gt;Wsdl.exe /language:VB /out:SharePointListService.vb &lt;a href="http://sharepointurl/TargetSite/_vti_bin/lists.asmx?wsdl"&gt;http://SharePointURL/TargetSite/_vti_bin/lists.asmx?wsdl&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;&amp;nbsp;&lt;/span&gt; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Note that you will need to do this again for any sub-site that you are targeting for your import as part of the WSDL description is the location of the service. &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Our SSIS package will have three simple control flow steps: &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0.5in; text-indent: -0.25in" class="MsoNormal"&gt;&lt;span&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Script Task &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0.5in; text-indent: -0.25in" class="MsoNormal"&gt;&lt;span&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;XML Task &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0.5in; text-indent: -0.25in" class="MsoNormal"&gt;&lt;span&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Data Flow Task &lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;Script Task&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;After you run this command, open your newly created vb file (I normally code C#, but the SSIS script task only uses VB). In your script task, we are going to make a new class reference. Right click on the solution, go to Add &amp;gt; Add Class. You can use the same name as newly created file from wsdl.exe or something that will more appropriately fit given your project. Once you create the new class file, erase any text/code automatically generated and then paste the content of your wsdl.exe outputted file into this code file in your project. Add references to the System.XML and System.Web.Services. &lt;/p&gt;&lt;p&gt;&lt;img src="/image.axd?picture=menu.jpg" alt="" width="322" height="151" /&gt; &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;After you have completed this step, you are ready to consume your new class and mimic the Web Service SSIS task. &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Here is sample code from the default ScriptMain file. My code in this sample uses the proxy class Lists (generated by wsdl.exe) to call the service, pass the necessary parameters and then save the output to an xml file. Note that for the view name for a list, you have to pass the GUID. It seems that the method was not set to return values using the common view name. &lt;/p&gt;&lt;p&gt;&lt;img src="/image.axd?picture=code1.jpg" alt="" width="639" height="599" /&gt;&lt;/p&gt;&lt;p&gt;One of the easiest ways to grab the GUID is to go to modify the view you want to use to pull the data from and look in the URL, the portion of the query string after View= has the GUID for this view. &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Another way to do this is to use the Web Service Task against the Views web service in WSS/SharePoint, call the method GetViewCollection, pass the List name as a parameter and you can get an XML output with all the views and GUIDs associated with a list item. &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;After implementing the code above, your Script Task is complete and your output will be an XML file of all the data from the list given the view you hit. An important point to note is to set your rowLimit parameter. The others can be blank or null, but if the rowLimit is not set, then by default you will only get the data that displays in the default view paging size, which is usually 100 records. By setting it to a figure larger than the collection, you will get the entire collection of records. &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&lt;strong&gt;&lt;font size="2"&gt;XML Task&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;The SSIS XML Source in the Data Flow section of your project does not like XML files that have multiple namespaces, which is almost a guarantee when you are retrieving data from a SharePoint List. &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;The XML Task is pretty basic in that it strips the extraneous namespaces from the XML file. I got this from Ashvini Sharma&amp;rsquo;s blog when trying to solve the same problem in hitting RSS feeds for a real estate project. Here is the link to his post: &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&lt;a href="http://sqljunkies.com/WebLog/ashvinis/archive/2005/05/25/15654.aspx"&gt;http://sqljunkies.com/WebLog/ashvinis/archive/2005/05/25/15654.aspx&lt;/a&gt; &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Right click on the XML Task, choose edit, and then we will set the properties on the task as such: &lt;/p&gt;&lt;p&gt;&lt;img src="/image.axd?picture=xmltask.jpg" alt="" width="567" height="304" /&gt; &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Under the SecondOperand property, paste the following XSLT: &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;/p&gt;&lt;blockquote&gt;			&lt;p&gt;		&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt; 		&lt;/p&gt;			&lt;p&gt;		&amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;no&amp;quot; /&amp;gt; 		&lt;/p&gt;			&lt;p&gt;		&amp;lt;xsl:template match=&amp;quot;/|comment()|processing-instruction()&amp;quot;&amp;gt; 		&lt;/p&gt;			&lt;p&gt;		&amp;lt;xsl:copy&amp;gt; 		&lt;/p&gt;			&lt;p&gt;		&amp;lt;xsl:apply-templates /&amp;gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;/xsl:copy&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;/xsl:template&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;xsl:template match=&amp;quot;*&amp;quot;&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;xsl:element name=&amp;quot;{local-name()}&amp;quot;&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;xsl:apply-templates select=&amp;quot;@*|node()&amp;quot; /&amp;gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;/xsl:element&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;/xsl:template&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;xsl:template match=&amp;quot;@*&amp;quot;&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;xsl:attribute name=&amp;quot;{local-name()}&amp;quot;&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;/xsl:attribute&amp;gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;		&lt;/p&gt;			&lt;p&gt;		&lt;span&gt;&lt;/span&gt;&amp;lt;/xsl:template&amp;gt; 		&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&amp;lt;/xsl:stylesheet&amp;gt; &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;I have the FileConnection set to the file that my first task outputted, and the operation saves the results so that I end up with a clean version of my outputted WSS/SharePoint list data. &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&lt;strong&gt;&lt;font size="2"&gt;Data Flow Task&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Setting up the import can be one of the more painful tasks, depending on the number of columns you have on the view and list your are hitting. The XML that you will have after pulling the data will have GUIDs for all of the user defined columns in your list, which probably is where most of your data is. &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;To know exactly how the GUIDs in your XML export map up to columns on your list, you can export the schema for SharePoint. In the Lists web service, hit the method GetList and pass it the name of the List you are using. Your output will have the schema of the list. Here is a sample for one column: &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;span class="m1"&gt;&lt;span style="font-size: 10pt; font-family: Verdana"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="t1"&gt;&lt;span style="font-size: 10pt; font-family: Verdana"&gt;Field&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana"&gt; &lt;span class="t1"&gt;ReadOnly&lt;/span&gt;&lt;span class="m1"&gt;=&amp;quot;&lt;/span&gt;TRUE&lt;span class="m1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="t1"&gt; DisplayName&lt;/span&gt;&lt;span class="m1"&gt;=&amp;quot;&lt;/span&gt;TestColumn&lt;span class="m1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="t1"&gt; Name&lt;/span&gt;&lt;span class="m1"&gt;=&amp;quot;&lt;/span&gt;xd__x007b_8CEEC711_x002d_0B7C_x002d_4C6A_x002d_9F82_x002d_5584303A997F_x007d_&lt;span class="m1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="t1"&gt; XName&lt;/span&gt;&lt;span class="m1"&gt;=&amp;quot;&lt;/span&gt;{8CEEC711-0B7C-4C6A-9F82-5584303A997F}&lt;span class="m1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="t1"&gt; Node&lt;/span&gt;&lt;span class="m1"&gt;=&amp;quot;&lt;/span&gt;/my:myFields/my:TestList/my:TestColumn&lt;span class="m1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="t1"&gt; Type&lt;/span&gt;&lt;span class="m1"&gt;=&amp;quot;&lt;/span&gt;Text&lt;span class="m1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="t1"&gt; ColName&lt;/span&gt;&lt;span class="m1"&gt;=&amp;quot;&lt;/span&gt;nvarchar18&lt;span class="m1"&gt;&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="m1"&gt;&lt;span style="font-size: 10pt; font-family: Verdana"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;The XName element has the GUID for the column that will show up in the data export. You can use the output from the GetList method to build mappings for your export. &lt;/p&gt;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;Your Data Flow Task at a minimum will have two objects: an XML Source and your OLE DB Destination. I would recommend putting a Data Conversion object between the two &amp;ndash; that way you can save on space on the insert into the database and have a way to redirect failed rows for analysis should you get something really strange in your incoming dataset. &lt;/p&gt;&amp;nbsp;&amp;nbsp; &lt;p style="margin-top: 0in; margin-right: 0in; margin-bottom: 0pt; margin-left: 0in" class="MsoNormal"&gt;That rounds it out; please feel free to post any questions. &lt;/p&gt;</description><pubDate>Tue, 08 Jun 2010 18:10:13 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Extracting-SharePoint-Data-using-SSIS</guid></item><item><title>BI Conference 2010: Keynote now online</title><link>http://www.sidatkinson.com:80/BI-Conference-2010-Keynote-now-online</link><description>&lt;p&gt;Just posted earlier this afternoon, Ted Kummert’s keynote speech for the 2010 BI conference can be viewed &lt;a href="http://www.msteched.com/2010/NorthAmerica/Keynote02" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Other notable speakers during this keynote:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Donald Farmer, Microsoft Principal Program Manager for Microsoft SQL Server&lt;/li&gt;    &lt;li&gt;Amir Netz, Microsoft Senior Architect for SQL Server BI&lt;/li&gt;    &lt;li&gt;&lt;/li&gt; &lt;/ol&gt;</description><pubDate>Tue, 08 Jun 2010 15:33:48 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/BI-Conference-2010-Keynote-now-online</guid></item><item><title>BI conference 2010: PowerPivot and Visual Studio 2010</title><link>http://www.sidatkinson.com:80/BI-conference-2010-PowerPivot-and-Visual-Studio-2010</link><description>&lt;p&gt;One of the great topics in today&amp;rsquo;s keynote session centered around shortly? coming features for PowerPivot &amp;ndash; namely:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Integration with Visual Studio 2010 &lt;/li&gt;
&lt;li&gt;Ability to utilize SSAS 2008 R2 as point of storage for billions of rows, not just hundreds of millions &lt;/li&gt;
&lt;li&gt;Pivot Reporter extension for PowerPivot and SharePoint integration &lt;/li&gt;
&lt;li&gt;Record Viewer view to help manage wide tables in PowerPivot data source &lt;/li&gt;
&lt;li&gt;Lineage and Dependency Tracking and visualizations &lt;/li&gt;
&lt;li&gt;KPIs!! &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Unfortunately, no committed dates to when we will have these features available, but hopefully we will see the previews soon.&lt;/p&gt;</description><pubDate>Tue, 08 Jun 2010 15:14:10 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/BI-conference-2010-PowerPivot-and-Visual-Studio-2010</guid></item><item><title>BI conference 2010: a few good sessions</title><link>http://www.sidatkinson.com:80/BI-conference-2010-a-few-good-sessions</link><description>&lt;p&gt;And this was one of them: &amp;ldquo;Microsoft SQL Server Analysis Services Consolidation Best Practices Considerations&amp;rdquo;.&amp;nbsp; The SQL CAT team continues to deliver &amp;ndash; every conference I have been to, this group at Microsoft always delivers great content.&lt;/p&gt;
&lt;p&gt;Now, before I start to rave too much, I will say the title of the session fails a bit; rather, it should have read: &amp;ldquo;Really cool things we did with Analysis Services and we are SO excited to share&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;The consolidation best practices slide presentation was rather perfunctory and mundane.&amp;nbsp; There were some starts to good thoughts, but none of which we really explored in depth.&lt;/p&gt;
&lt;p&gt;The pattern for the slides was all to lead up to the &amp;ldquo;really cool things&amp;rdquo; that this team did with Analysis Services and fortunately enough, is available to the public.&lt;/p&gt;
&lt;p&gt;Ah, so what is this really cool thing? Simply put, it allows for load balancing of individual SSAS databases across multiple SSAS instances &amp;ndash; load balancing at database level, really cool.&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href="http://sqlcat.com/toolbox/archive/2010/02/08/aslb.aspx" target="_blank"&gt;ASLB Toolkit post here&lt;/a&gt; on the SQL Cat blog; it contains links to the source and other reference documentation.&lt;/p&gt;</description><pubDate>Tue, 08 Jun 2010 08:58:45 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/BI-conference-2010-a-few-good-sessions</guid></item><item><title>ssas processing problems</title><link>http://www.sidatkinson.com:80/ssas-processing-problems</link><description>&lt;p align="left"&gt;By now, some of you may have come across this error when processing your dimensions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="left"&gt;&lt;strong&gt;File system error: a FileStore error from WriteFile occurred. Physical file: &lt;/strong&gt;&lt;a href="file://\\?\some"&gt;&lt;strong&gt;\\?\&lt;em&gt;some&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt; path to a file. &lt;/em&gt;Logical file:&amp;hellip;.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p align="left"&gt;At the core of this error is the fact that the asstore, bstore, kstore and string.data files for your dimension is hitting the 4GB limit and it cannot no longer be written to by SSAS.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://sidatkinson.com/image.axd?picture=image.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://sidatkinson.com/image.axd?picture=image_thumb.png" border="0" alt="image" width="409" height="65" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;This is a limit that has to be worked with and there are several ways to manage to that limit.&amp;nbsp; To understand how to work with this limit, it is important to know how you may be running into this limit, and it happens in one of two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;1. Exceeding the limit via one of your temporary string stores during processing of your dimension object&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;2. Exceeding the limit via one of the final string stores of the dimension object&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/blockquote&gt;
&lt;p align="left"&gt;It is important to understand which of these two scenarios is causing your issue as the resolutions for each are different.&amp;nbsp; In the first scenario where it is a temporary store problem, there are several options to streamline the processing of your dimension and get around the this error.&lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;First Option:&lt;/strong&gt; Check your the value on your dimension for the attribute ProcessingGroup (as show in the image below).&amp;nbsp; By table loads the entire dimension table into memory via a table scan query &amp;ndash; if you have a large table then this could be your issue. Changing to ByAttribute will allow the dimension processor to issue distinct queries by attribute and, so long as you do not have an attribute that goes over 4GB (large string values, etc), then you this is your potential resolution.&lt;/p&gt;
&lt;p align="left"&gt;&lt;a href="http://sidatkinson.com/image.axd?picture=image_1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://sidatkinson.com/image.axd?picture=image_thumb_1.png" border="0" alt="image" width="244" height="128" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;Third Option:&lt;/strong&gt; There are a couple of threads out there and one or two posts that mention modifying the PropertyBufferRecordLimitEnabled in the msmdsrv.ini file.&amp;nbsp; This is one potential way of resolving your issue, particularly if, either due to string keys or ways in which your attribute hierarchies are built (or, for shame, not built), then changing this setting to &lt;strong&gt;1&lt;/strong&gt; will push down the size of the temporary records buffer, making it less likely that you will hit the 4GB limit for temporary files during processing.&lt;/p&gt;
&lt;p align="left"&gt;&lt;a href="http://sidatkinson.com/image.axd?picture=image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://sidatkinson.com/image.axd?picture=image_thumb_2.png" border="0" alt="image" width="437" height="96" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;Fourth Option: &lt;/strong&gt;Check your hierarchies &amp;ndash; this is probably the most important!&amp;nbsp; Processing time and memory usage during processing of dimensions depends on the number of numbers and the number of attribute relationships.&amp;nbsp; During processing of a particular attribute, all dependent attributes are held in memory &amp;ndash; if you no attribute relationships, then all members must be kept in memory.&amp;nbsp; If you can build cascading relationships, then the dependent pair is processed and can keep therefore keep moving incrementally and efficiently.&lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;Now,&lt;/strong&gt; if you are facing the second scenario where it is a physical limit of the final output, not the temp processing object, your options are, unfortunately, few.&lt;/p&gt;
&lt;p align="left"&gt;In this case, only one comes to mind (for an easy resolution):&lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;Your One Option: &lt;/strong&gt;If you have been processing your dimension using &lt;strong&gt;Process Update&lt;/strong&gt; Occasionally process your dimension by using &lt;strong&gt;Process Full&lt;/strong&gt; to clear out old data in any of the offending files. In a process update, the string data files are appended to versus being overwritten to improve processing time and thus can grow out of hand if frequently processed this way.&amp;nbsp; You can also handle this by doing a Process Clear and forcing a new slate for the dimension files.&lt;/p&gt;
&lt;p&gt;If that is not your issue, the unfortunately you will have to look at several things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;1. Your chosen data type for the offending member &amp;ndash; unicode types are easy targets, and, in some cases, may have easy resolutions&amp;nbsp; &lt;/li&gt;
&lt;li&gt;2. Is this a necessary member?&amp;nbsp; You may find that you do have the option to remove this member from the cube and make it available via drillthrough or report actions on the cube that pull the data from the relational source&lt;/li&gt;
&lt;li&gt;3. ROLAP &amp;ndash; not the most appealing, but until the 4GB limit is removed, and if that member is necessary, this may be your only choice&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Some useful references:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;- Denny Lee&amp;rsquo;s post on the &lt;a href="http://blogs.msdn.com/b/sqlcat/archive/2007/10/19/using-byattribute-or-bytable-processing-group-property-with-analysis-services-2005.aspx" target="_blank"&gt;SQL Cat Blog covering ByAttribute or ByTable scenario&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;- &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=3BE0488D-E7AA-4078-A050-AE39912D2E43&amp;amp;displaylang=en" target="_blank"&gt;SQL Server 2008 Analysis Services Performance Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Mon, 07 Jun 2010 23:20:50 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/ssas-processing-problems</guid></item><item><title>SSAS tools: mdx studio</title><link>http://www.sidatkinson.com:80/SSAS-tools-mdx-studio</link><description>&lt;p&gt;So many good tools out there, and yet not all of them get noticed&amp;hellip;..&lt;/p&gt;
&lt;p&gt;At the SQL Pass conference the week before, I attended one of the classes by the Microsoft CSS groups on common Analysis Services support issues.&amp;nbsp; While not the best presentation format or speaking, the information and thought processes were very relevant and thought out, so all in all &amp;ndash; good session.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What surprised me was how few of the attendees were familiar with Mosha&amp;rsquo;s &lt;strong&gt;MDX Studio&lt;/strong&gt; that the Microsoft speaker presented as a resource &amp;ndash; so in the nature of spreading the good word, here is the link:&lt;a title="http://www.mdxstudio.com/" href="http://www.mdxstudio.com/"&gt;http://www.mdxstudio.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is it?&lt;/strong&gt; From Mosha&amp;rsquo;s site:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;MDX Studio is tool which helps users of Microsoft Analysis Services to analyze complex MDX expressions, monitor performance characteristics of MDX queries and get insight into how MDX interacts with other UDM features such as attribute relationships. MDX Studio provides unique visualization representation of MDX expression and allows the user to interact with different stages of MDX execution.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><pubDate>Tue, 17 Nov 2009 16:42:46 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/SSAS-tools-mdx-studio</guid></item><item><title>Sharepoint server 2010 Insights</title><link>http://www.sidatkinson.com:80/Sharepoint-server-2010-Insights</link><description>&lt;p&gt;
You may or may not have heard by now that the business intelligence capability in SharePoint 2010 now has a platform branding called &lt;strong&gt;INSIGHTS&lt;/strong&gt;. 
&lt;/p&gt;
&lt;p&gt;
I will blog more about the features in my &amp;ldquo;down time&amp;rdquo; at the &lt;strong&gt;SQL PASS&lt;/strong&gt; conference next week, but I wanted to put the links out to everyone so you can start ramping up on what is coming inside SharePoint 2010 with respect to business intelligence. 
&lt;/p&gt;
&lt;p&gt;
First and foremost, the official Insights link: &lt;a href="http://sharepoint2010.microsoft.com/product/capabilities/Insights/Pages/default.aspx" title="http://sharepoint2010.microsoft.com/product/capabilities/Insights/Pages/default.aspx"&gt;http://sharepoint2010.microsoft.com/product/capabilities/Insights/Pages/default.aspx&lt;/a&gt;. Lots of information and resource links posted here - -a great way to take a top down look at what the Insights platform is all about. 
&lt;/p&gt;
&lt;p&gt;
If you have completely been ignoring the news and the gossip, then you probably have missed the two biggest architectural features in the Insights platform will be &lt;strong&gt;PerformancePoint Services&lt;/strong&gt; and &lt;strong&gt;Excel Services&lt;/strong&gt; support of &lt;strong&gt;PowerPivot&lt;/strong&gt; (formerly Project Gemini).&amp;nbsp; PerformancePoint Services will utilize the new application services architecture that is now part of SharePoint - -this allows for far greater flexibility in deployment and most importantly, security.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
PerformancePoint Services links: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee661741(office.14).aspx"&gt;http://technet.microsoft.com/en-us/library/ee661741(office.14).aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
	&lt;li&gt;&amp;nbsp; 
	&lt;ul&gt;
		&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee424392(office.14).aspx"&gt;http://technet.microsoft.com/en-us/library/ee424392(office.14).aspx&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Excel Services: &lt;a href="http://technet.microsoft.com/en-us/library/ee424401(office.14).aspx" title="http://technet.microsoft.com/en-us/library/ee424401(office.14).aspx"&gt;http://technet.microsoft.com/en-us/library/ee424401(office.14).aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Report Builder 3.0: &lt;a href="http://technet.microsoft.com/en-us/library/bb418434(SQL.10).aspx" title="http://technet.microsoft.com/en-us/library/bb418434(SQL.10).aspx"&gt;http://technet.microsoft.com/en-us/library/bb418434(SQL.10).aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Technical Diagrams: &lt;a href="http://technet.microsoft.com/en-us/library/cc263199(office.14).aspx" title="http://technet.microsoft.com/en-us/library/cc263199(office.14).aspx"&gt;http://technet.microsoft.com/en-us/library/cc263199(office.14).aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So, keep reading and don&amp;rsquo;t get left behind.&amp;nbsp; If you landed here and you are more interested in the other features of SharePoint and not business intelligence, visit my fellow &lt;a href="http://blogs.catapultsystems.com/matthew/archive/2009/10/26/life-after-sharepoint-conference-2009.aspx" target="_blank"&gt;Catapultian Matt&amp;rsquo;s post here&lt;/a&gt;. I will, of course, encourage you to stay here and become more interested in BI, but I&amp;rsquo;m not into forcing my opinion in anyone, I&amp;rsquo;ll leave that to the media. 
&lt;/p&gt;
</description><pubDate>Wed, 28 Oct 2009 16:02:29 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Sharepoint-server-2010-Insights</guid></item><item><title>SSIS Adapter for SharePoint</title><link>http://www.sidatkinson.com:80/SSIS-Adapter-for-SharePoint</link><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Kevin Idzi of Microsoft was kind enough to leave a comment on my &lt;a href="/post/2007/10/25/Extracting-SharePoint-Data-using-SSIS.aspx"&gt;&lt;strong&gt;Extracting SharePoint Data using SSIS&lt;/strong&gt;&lt;/a&gt; post informing me of Integration Services enhancements posted on CodePlex.&lt;/p&gt;&lt;p&gt;I had been delaying posting as I wanted to have a full sample showing it in use, but between work and buying a new house recently, I have not had the time to put together my virtual machine images for a complete demo.&lt;/p&gt;&lt;p&gt;The community sample has the following components available to download (in separate install packages):&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;XML Destination Pipeline component	&lt;/li&gt;	&lt;li&gt;Regular Expression Flat File for regular expression based flat file parsing	&lt;/li&gt;	&lt;li&gt;Delimited Flat File Parser, for files with rows that are missing column fields	&lt;/li&gt;	&lt;li&gt;Package Generation Sample	&lt;/li&gt;	&lt;li&gt;Hello World Sample for demonstrating using the UI API	&lt;/li&gt;	&lt;li&gt;&lt;span style="text-decoration: underline"&gt;&lt;strong&gt;SharePoint List Source and Destination&lt;/strong&gt;&lt;/span&gt; &amp;ndash; this component was written by Kevin	&lt;/li&gt;	&lt;li&gt;WMI Source Component	&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All of these components are available for download &lt;a href="http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=15424"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The base requirements for installing these components are .NET 3.5 and SQL 2008 Integration Services.&lt;/p&gt;&lt;p&gt;Once you run the MSI, you will be able to select the two new adapters from the &amp;quot;Choose Toolbox Items&amp;quot; dialogue:&lt;/p&gt;&lt;p&gt;&lt;img src="/image.axd?picture=091908_1804_SSISAdapter1.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;One of the nice features that Kevin included in this adapter is the ability to execute CAML queries against the SharePoint List:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="/image.axd?picture=091908_1804_SSISAdapter2.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you do not know how to write CAML or are not good at it like I am, then use the U2U CAML Query Builder written by Patrick Tisseghem; I&amp;#39;ve got a quick tutorial here: &lt;a href="/post/2007/12/07/CAML-Query-Builder.aspx"&gt;&lt;strong&gt;CAML Query Builder&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;If you have any feedback about using this SharePoint List Adapter with SSIS, please be sure to leave comments or suggestions on the CodePlex site for Kevin and his team.&lt;/p&gt;</description><pubDate>Mon, 26 Oct 2009 15:41:01 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/SSIS-Adapter-for-SharePoint</guid></item><item><title>SSIS on a cluster</title><link>http://www.sidatkinson.com:80/SSIS-on-a-cluster</link><description>&lt;p&gt;
I figured this was worth a quick post: while many of SQL Server&amp;rsquo;s aspects are cluster aware, SSIS is not. Why? My guess is that there is not a pressing business need for this to be a cluster aware service &amp;ndash; while many companies have vital ETL processes to help run company business, the need for failover in this scenario is not as pressing as in transactional systems. 
&lt;/p&gt;
&lt;p&gt;
With that said, I had a customer that was testing the failover of one of their main SQL clusters and suddenly noticed that a more than several jobs failed to run.&amp;nbsp; In helping on the issues, I noticed that they had SSIS steps in the job pointing to the cluster name for pulling out the packages form MSDB, and that, more importantly, someone had forgotten to install the SSIS service on the failover node. 
&lt;/p&gt;
&lt;p&gt;
Someone had configured SSIS to point to the cluster on the primary node, but must have forgotten to install the service and do the same config change on the failover node &amp;ndash; easy enough fix; but also a good education opportunity for the client as they were not familiar with SSIS at all (transitioning to a new environment for them this past year, so most of this is new for them). 
&lt;/p&gt;
&lt;p&gt;
SSIS is not recommend to be configured as a cluster resource, but that does not mean it cannot be used on a SQL Server that is clustered &amp;ndash; you just have to be aware of what you are doing and the consequences.&amp;nbsp; In my current scenario, we have SSIS configured to work on the cluster environment, but not as a cluster resource (the second link below will show you how). 
&lt;/p&gt;
&lt;p&gt;
Here are the references: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ms345193.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms345193.aspx&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ms137789.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms137789.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Just be sure to weigh the pros and cons as even the simple config change has its own consequences, in particular the section in the first link on disadvantages of SSIS as a cluster resource. 
&lt;/p&gt;
</description><pubDate>Thu, 15 Oct 2009 15:30:02 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/SSIS-on-a-cluster</guid></item><item><title>Awesome speaker for our next BI User group!!</title><link>http://www.sidatkinson.com:80/Awesome-speaker-for-our-next-BI-User-group!!</link><description>&lt;p&gt;
I am excited to announce that we have secured a great speaker for our next &lt;a href="http://www.linkedin.com/groups?home=&amp;amp;gid=1912918" target="_blank"&gt;Central Texas Business Intelligence User Group&lt;/a&gt; meeting on October 21st at the Microsoft office in Austin.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://search.barnesandnoble.com/booksearch/results.asp?ATH=Bryan+C%2E+Smith" target="_blank"&gt;Bryan C. Smith&lt;/a&gt;, prolific SSAS author and now of Microsoft fame, will be coming down to speak on a yet to be disclosed topic on SQL Server Analysis Services.
&lt;/p&gt;
&lt;p&gt;
If you have not done so, and you live/work in the area, be sure to join our group on &lt;a href="http://www.linkedin.com/groups?home=&amp;amp;gid=1912918" target="_blank"&gt;LinkedIn&lt;/a&gt; or send me an e-mail and I will add you to our distribution list &amp;ndash; this is a speaker you do not want to miss (if you love all things SSAS).
&lt;/p&gt;
&lt;p&gt;
On a broader note, we will be upping the frequency of the meetings to monthly after the October meeting.
&lt;/p&gt;
&lt;p&gt;
In that vein, we are looking for some more presenters (Larry Clark (MS) and I love presenting, but I think the group would like to see some new faces). Please e-mail me or post to the LinkedIn group board if you are interested.
&lt;/p&gt;
&lt;p&gt;
Hope to see some new faces there!
&lt;/p&gt;
</description><pubDate>Mon, 14 Sep 2009 16:47:42 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Awesome-speaker-for-our-next-BI-User-group!!</guid></item><item><title>Design Tip - Analysis Services Aggregations</title><link>http://www.sidatkinson.com:80/Design-Tip-Analysis-Services-Aggregations-</link><description>&lt;p&gt;I was cleaning up a cube design for a customer, primarily working with the current implementation to resolve some performance issues and make some minor alterations to the dimensions, when I ran across an aggravation in designing aggregations for the partitions I implemented ( there were none before, part of the issue).&lt;/p&gt;&lt;p&gt;I had just finished designing my partitions when I started to design the aggregations for my partitions &amp;ndash; when the designer returned this obnoxious message:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0 aggregations have been designed. The optimization level is 0% (0 bytes).&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I will mention again that this cube was not my design, and when given the opportunity, everything from the dimensional model to the entire cube will be redesigned, however, this message was a nuisance. Fortunately, I kept my cool and figured out what I was doing wrong.  The Aggregation Design Wizard will not allow a resulting aggregation set to exceed a certain percentage of the fact table (I hear it is 30%, but I can&amp;#39;t find this documented anywhere).&lt;/p&gt;&lt;p&gt;Here are a few general rules with aggregations that will help avoid this message:&lt;/p&gt;&lt;ol&gt;	&lt;li&gt;Make sure the partitions you are trying to assign an aggregation design are evenly distributed. In other words, do they have a similar number of facts/rows in them or are they varied?  One aggregation design can work for multiple partitions so long as those partitions are similar or close in overall row counts	&lt;/li&gt;	&lt;li&gt;If you have a large number of attributes in your dimensions related to a particular partition set you are designing for, you may consider changing some of the options on the &lt;strong&gt;Review Aggregation Usage&lt;/strong&gt; screen in the wizard.  Attributes that are rarely used can potentially be set to &lt;strong&gt;None&lt;/strong&gt;	&lt;/li&gt;	&lt;li&gt;On the &lt;strong&gt;Specify Object Counts&lt;/strong&gt; page, check the counts tabulated for each dimension as well as the measure group.  On the dimensions, the wizard does not calculate the partition count.  This number is the count of that member distinctly appearing inside the specific partition.  For example, if your partition broken by year, then the count of dates on your Calendar dimension would be 365, months would be 12 and so on.	&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In addition to the above, take a look at your individual partitions -- are the individual partitions too large? BIDS Helper suggests a 20 million plus row count per partition is probably not partition with enough detail.&lt;/p&gt;&lt;p&gt;As for my specific problem &amp;ndash; due to the &amp;quot;funky&amp;quot; (lack of a better word) design of the fact tables, I did not have reasonable splits in both my row counts and related member counts for my initial partition designs as I had initially suspected, and being in a hurry that evening, I did not update the counts inside the partition design screen before moving over to designing aggregations.  I simply assumed I had picked a good way of doing it on the first try!&lt;/p&gt;&lt;p&gt;So, a lesson in patience reiterated yet again, and after getting some sleep, I looked at the issue the next morning with some fresh eyes and found my solution.&lt;/p&gt;&lt;p&gt;Hopefully this little explanation will save some time for someone out there &amp;ndash; feel free to let me know if any further explanations are necessary, or feel free to share your aggregation design issue!&lt;/p&gt;</description><pubDate>Mon, 17 Aug 2009 12:21:15 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Design-Tip-Analysis-Services-Aggregations-</guid></item><item><title>Reminder: BI User Group meeting August 13th!</title><link>http://www.sidatkinson.com:80/Reminder-BI-User-Group-meeting-August-13th!</link><description>&lt;p&gt;Reminder, we are having our next Central Texas Microsoft Business Intelligence User Group meeting a week from today, August 13&lt;sup&gt;th&lt;/sup&gt;, 2009 from 6:00pm to 8:00pm at the Microsoft Austin office.&lt;/p&gt;&lt;p&gt;Session Topic: &amp;quot;PerformancePoint Monitoring and Analytics 101&amp;quot;&lt;/p&gt;&lt;p&gt;Description: &lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;In this session we will cover the basics of PerformancePoint: what it is, how it is deployed and sample architecture patterns. We will also cover the basic elements of Dashboard Designer and how developers and business analysts will use this tool to develop charts, grids, scorecards and KPIs for their business to consume.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you haven&amp;#39;t joined the group on LinkedIn yet, then please feel free to do so &amp;ndash; it is an easy way to keep up with any updates, meeting announcements and meet others in our profession in the central Texas area. Logo below will take you to the group home page:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.linkedin.com/groups?home=&amp;amp;gid=1912918"&gt;&lt;img src="/image.axd?picture=080609_2153_ReminderBIU1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Be sure to RSVP if you are coming!&lt;/p&gt;</description><pubDate>Thu, 06 Aug 2009 16:55:06 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Reminder-BI-User-Group-meeting-August-13th!</guid></item><item><title>WhitePaper: PerformancePoint in an extranet environment</title><link>http://www.sidatkinson.com:80/WhitePaper-PerformancePoint-in-an-extranet-environment</link><description>&lt;p&gt;Great read for when you are stuck in the airport: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4ecf351d-1827-4aee-b28a-a491e8e52cf3&amp;amp;displaylang=en"&gt;Publishing PerformancePoint Server in Extranet Scenarios.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is actually a very detailed document outlining many of the aspects around establishing an extranet deployment, particularly a secure one.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Important Note:&lt;/strong&gt; We have run across a bug in Server 2008&amp;#39;s implementation of Kerberos.  This issue will cause a fatal flaw to your implementation with SSAS in the scenario&amp;ndash; Dan English provides a greater level of &lt;a href="http://denglishbi.spaces.live.com/blog/cns!CD3E77E793DF6178!1214.entry?sa=662041904"&gt;detail in his post earlier this year&lt;/a&gt;.  Just as a recap, you will run into errors in accessing SSAS where the MDX will get truncated in the Kerberos ticket that gets passed to the SSAS service.  The only way around this at the moment is to have the front end servers be Server 2003, or CTP versions of Server 2008 R2.&lt;/p&gt;&lt;p&gt;Note that there is no &amp;quot;official&amp;quot; fix for this at the moment, though one is expected as a cumulative update in August.&lt;/p&gt;</description><pubDate>Thu, 30 Jul 2009 15:09:28 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/WhitePaper-PerformancePoint-in-an-extranet-environment</guid></item><item><title>Gather stats from SharePoint</title><link>http://www.sidatkinson.com:80/Gather-stats-from-SharePoint</link><description>&lt;p&gt;
I was not actually looking for this, but that does not mean it is not incredibly useful. 
&lt;/p&gt;
&lt;p&gt;
I was actually looking for what was available from the &lt;a href="http://blogs.msdn.com/performancepoint/default.aspx"&gt;PerformancePoint Team blog&lt;/a&gt; in the way of updates to the SDK documentation, or heck, an SDK versus just a single page in the MSDN canon, when I came across this code sample posted on code.msdn.microsoft.com (what the real difference between this site and codeplex.com is, I do not know, but it gets confusing having both). 
&lt;/p&gt;
&lt;p&gt;
This code sample, titled &lt;a href="http://code.msdn.microsoft.com/spstats"&gt;&amp;quot;Gather information from SharePoint to a database for reporting&amp;quot;&lt;/a&gt;, does not come with a lot of documentation or instruction, but by odd coincidence, it seems I found this on its publishing day &amp;ndash; today, May 11. The code sample consists of two parts, the C# console app project and the database. 
&lt;/p&gt;
&lt;p&gt;
To get this tool up and running: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Download the project file for the app and the database &lt;/li&gt;
	&lt;li&gt;Unless you are in France or have French collation set up on your server or personal machine, I would recommend hand editing the script to remove that language collation&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;Or just do what I did and create a database called Stats and used the BAK file included to restore to (the DDL does not have any table create scripts?) &lt;/li&gt;
	&lt;li&gt;Start up VS 2008 and open the unzipped project. From here you can either compile so you have an executable or debug through it and watch it run &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;One important note: &lt;/strong&gt;This app is not yet configured for remote execution, so it has a dependency on being run directly on the SharePoint server in order to gather stats. SQL Server configuration is just a connection string in the app.config, so that can be a different box/remote server. 
&lt;/p&gt;
&lt;p&gt;
This handy little app produces quite a few usage statistics on a SharePoint farm, with the most rich being at the site level. Be interesting to see where this goes next, I have no immediate need for it, but I figured it is interesting enough of a find to post and share!
&lt;/p&gt;
</description><pubDate>Fri, 24 Jul 2009 09:25:20 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Gather-stats-from-SharePoint</guid></item><item><title>PerformancePoint, Security and Account Access</title><link>http://www.sidatkinson.com:80/PerformancePoint-Security-and-Account-Access</link><description>&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;I was assisting a client clean up an installation of PerformancePoint.  They thought they had followed all of the steps, but were perplexed by an error they were getting after deploying the dashboards to SharePoint.  Given what was at the bottom of the error, and how few people realized this slight difference in authenticating accounts, I figured it was worth a quick post.
&lt;/p&gt;&lt;p&gt;To start, the error received was: 
&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;strong&gt;"You do not have permission to see this data. (&lt;em&gt;Domain\UserAccount)&lt;/em&gt;. Contact the administrator for more details."
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;My client was perplexed.  They had developed the dashboard in Dashboard Designer and previewed it with success on the Monitoring server preview site.  This person was an admin of Monitoring server and a site collection admin in SharePoint.  The question to me then was – what was going on?
&lt;/p&gt;&lt;p&gt;To help explain, below is a diagram of a sample diagram of a PerformancePoint deployment on a farm, which is exactly what this client has in their environment:
&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.sidatkinson.com/image.axd?picture=072109_1702_Performance1.png" alt=""/&gt;
	&lt;/p&gt;&lt;p&gt;The big "gotcha" here for him is based on the usage of NTLM as the authentication method and a lack of understanding on where deployed dashboards actually render and load.  
&lt;/p&gt;&lt;p&gt;In a non-Kerberos implementation, deployed dashboards will connect to data sources under the identity of the SharePoint service, which was the bit of understanding this user was missing – his perception was that SharePoint rendered output from the Monitoring web service, and thus authentication still happened from the Monitoring Web Service – once this perception was corrected, we added the SharePoint account as a reader on the cube for his dashboards and life went back to normal.&lt;/p&gt;</description><pubDate>Tue, 21 Jul 2009 12:04:09 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/PerformancePoint-Security-and-Account-Access</guid></item><item><title>SQL 2008 Intellisense</title><link>http://www.sidatkinson.com:80/SQL-2008-Intellisense</link><description>&lt;p&gt;
In my post, &lt;a href="/post/2008/08/17/Why-use-aliases-SSMS-2008-gives-you-good-reason.aspx"&gt;Why use aliases?,&lt;/a&gt; I spoke in favor of using a certain syntax in your SQL programming, particularly because SQL Server 2008 gives you almost no reason not to with integrated Intellisense. 
&lt;/p&gt;
&lt;p&gt;
One little note for those who may have run into a frustration while developing &amp;ndash; Intellisense in SQL 2008 does not always refresh timely. This can be particularly annoying if you are in the middle of developing, make some schema changes and then try to write a script &amp;ndash; intelllisense will not prompt you with the correct values, or tell you that objects and schemas do not exist. 
&lt;/p&gt;
&lt;p&gt;
Only two known ways to resolve this for now: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Main Menu: Edit &amp;gt; Intellisense &amp;gt; Refresh Local Cache &lt;/li&gt;
	&lt;li&gt;Or, shortcut keys: CTRL + Shift + R &lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Sat, 18 Jul 2009 13:26:00 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/SQL-2008-Intellisense</guid></item><item><title>Extending the Data Profiling Task</title><link>http://www.sidatkinson.com:80/Extending-the-Data-Profiling-Task</link><description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
SQL Server 2008 RTM has been out a while now and yet, I am just now making my way to using the Data Profiling Task, new to SSIS in this release. Time and client demands are always a factor governing when and what I get to look at, however I had read up on the features and was hoping that what I had read was not all the new task could do. 
&lt;/p&gt;
&lt;p&gt;
The new task is a good start, but unfortunately, it is a little more limited than I would have hoped. Fortunately though, with the SSIS APIs open to us, we can use the class object as we please. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;So first -- what did I find limiting about the Data Profiling Task? &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
It appears that its intended design was to serve as a checkpoint during loads/transforms and that conditional logic can be applied based upon results; this is incredibly useful. My major concern is with activities that happen before the design phase &amp;ndash; and quite directly, before any development begins at all. 
&lt;/p&gt;
&lt;p&gt;
Reference &lt;a href="http://www.kimballgroup.com/html/designtipsPDF/KimballDT59SurprisingValue.pdf"&gt;this great little tip from Kimball here on data profiling&lt;/a&gt; and its necessity according to his framework &amp;ndash; profiling is tantamount to understanding the system that you are getting ready to work with in the course of a project. 
&lt;/p&gt;
&lt;p&gt;
To get to the heart of what I wanted to see the Data Profiling task do: I want to use it to generate an aggregate view of a given system so that I can view the results and learn more about the data within the database. Many of us have been given a database, custom built or extended far from the original software vendor&amp;#39;s spec, with little documentation. 
&lt;/p&gt;
&lt;p&gt;
Even for those who are not preparing to move this data for warehousing or reporting, anything that provides a reference to what the data is, how it is stored, how unique, etc. is a boon for developers. 
&lt;/p&gt;
&lt;p&gt;
The Data Profiling task can deliver this data -- but only &lt;strong&gt;one&lt;/strong&gt; table at a time? 
&lt;/p&gt;
&lt;p&gt;
There are no expression settings or variables that you can use to set which table and where the output goes. For two of the profiling tasks, I can see this as a bit of a problem &amp;ndash; both the Candidate Key and Value Inclusion profile do not lend themselves to being easily generated dynamically via iterating over all the tables and views in a database. 
&lt;/p&gt;
&lt;p&gt;
But all the others are useful in this aggregated manner, so why, if I am looking at a client database that has 96 tables, must I build 96 tasks via Visual Studio and still not end up with an aggregate report (just 96 xml files)? I would like to be able to run this on the entire database, and start looking at the hotspots or data profile results that are the fat tails in the distribution chart. 
&lt;/p&gt;
&lt;p&gt;
My solution is to build the SSIS package programmatically, run it and then read and aggregate the results. I still need to clean up the solution a bit and finish some unit tests, so I will post it soon for everyone to download and enjoy. 
&lt;/p&gt;
&lt;p&gt;
My envisioned endgame for this project is for the output to be configurable for user desired thresholds and for that output to render in HTML or Word &amp;ndash; still a little ways away from that, but I have the bulk of the SSIS work done. If anyone is interested in contributing, let me know and I will see about getting this on CodePlex. 
&lt;/p&gt;
&lt;p&gt;
Notes for anyone who wants to work with this project or attempt this on their own: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;This effort makes use of the Microsoft.DataDebugger.DataProfiling class, which is not necessarily a supported API. An example of using this class is on the &lt;a href="http://blogs.msdn.com/mattm/archive/2008/03/12/accessing-a-data-profile-programmatically.aspx"&gt;SSIS Team Blog here&lt;/a&gt;. &lt;/li&gt;
	&lt;li&gt;DLL references necessary for this project come from multiple places. For example, the Microsoft.SqlServer.DataProfilingTask is in &lt;em&gt;~\Program Files\Microsoft SQL Server\100\DTS\Tasks &lt;/em&gt;and Microsoft.SqlServer.DataProfiler is in &lt;em&gt;~\Program Files\Microsoft SQL Server\100\DTS\Binn&lt;/em&gt; &lt;/li&gt;
	&lt;li&gt;It is a good idea to read up on building a package &lt;a href="http://msdn.microsoft.com/en-us/library/ms345167.aspx"&gt;programmatically on MSDN&lt;/a&gt; as there are class objects, such as &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.taskhost.aspx"&gt;TaskHost&lt;/a&gt;, which are not immediately intuitive as they are not seen when using the designer&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Sat, 18 Jul 2009 13:23:03 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Extending-the-Data-Profiling-Task</guid></item><item><title>Installing SSRS for SharePoint, the fun way</title><link>http://www.sidatkinson.com:80/Installing-SSRS-for-SharePoint-the-fun-way</link><description>&lt;p&gt;I figured the search engines would do a good job of delivering the answers to these questions, but as I have seen this theme reoccur many times over the past few weeks in the MSDN forums, I am going to write out the steps for everyone (if nothing else, at least I&amp;#39;ll just be pasting a link to this versus copying the steps all over again in forum responses).&lt;/p&gt;&lt;p&gt;For many people installing the SSRS plug in for SharePoint/WSS (both SSRS 2005, but more likely 2008), you can get these annoying errors (this error can be found in &lt;em&gt;Root:&lt;/em&gt;\Users\&lt;em&gt;YourLogin&lt;/em&gt;\AppData\Local\Temp and will be prefixed with RS_SP):&lt;/p&gt;&lt;p&gt;For some of you, this error may become a common nuisance when installing the SSRS plug in for MOSS/WSS 3.0 for both SSRS 2005 and 2008:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;******* User does not have permission to add feature to site collection: http://&amp;lt;SharePoint URL here&amp;gt;:36076.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This can be particularly frustrating if you are logged in to the box under the farm admin account and have local admin privileges.&lt;/p&gt;&lt;p&gt;To work around this error, follow these steps:&lt;/p&gt;&lt;p&gt;1. Double check that you have a site collection set up on the farm, not just the web app&lt;/p&gt;&lt;p&gt;2. Log into the server you are installing the Reporting Services plug in to with credentials that are the farm admin for the MOSS install&lt;/p&gt;&lt;p&gt;3. Run the CMD tool with Administrator privileges (also called elevated permission)&lt;/p&gt;&lt;p&gt;4. Navigate to where you have the sharepointrs.msi and type sharepointrs.msi SKIPCA=1&lt;/p&gt;&lt;p&gt;5. Navigate to your Temp% directory to find the unpacked rsCustomAction.exe file&lt;/p&gt;&lt;p&gt;6. In the CMD tool, execute rsCustomAction.exe /i&lt;/p&gt;&lt;p&gt;7. After the install, you will probably need to navigate to Central Administration &amp;gt;  Site Actions &amp;gt; Site Settings and under the heading Site Collection Administration click Site Collection Features.&lt;/p&gt;&lt;p&gt;8. From there, click activate on Report Server Integration Feature&lt;/p&gt;&lt;p&gt;9. The settings for SSRS will now have their sub section on the Application Management tab in Central Admin&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;References:&lt;/p&gt;&lt;ul&gt;			&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa905871.aspx"&gt;http://technet.microsoft.com/en-us/library/aa905871.aspx&lt;/a&gt;	&lt;/li&gt;&lt;/ul&gt;</description><pubDate>Tue, 07 Jul 2009 13:11:27 GMT</pubDate><guid isPermaLink="true">http://www.sidatkinson.com:80/Installing-SSRS-for-SharePoint-the-fun-way</guid></item></channel></rss>
