<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>netnerds.net</title>
	
	<link>http://blog.netnerds.net</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Wed, 16 May 2012 22:51:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/netnerdsnet" /><feedburner:info uri="netnerdsnet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>A Possible Infinite Recompile was Detected – SQL Server Bug with Linked Servers</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/97L5YNQ_LLU/</link>
		<comments>http://blog.netnerds.net/2012/05/a-possible-infinite-recompile-was-detected-sql-server-bug-with-linked-servers/#comments</comments>
		<pubDate>Mon, 14 May 2012 18:00:56 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1740</guid>
		<description><![CDATA[I recently assisted in migrating a very large system from SQL Server 2005 SP3 to SQL Server 2008 R2 SP1.  The actual migration of the database went off without a hitch, but we soon encountered an odd error with the application querying a view over a linked server. The application was web-based and began throwing [...]]]></description>
			<content:encoded><![CDATA[<p>I recently assisted in migrating a very large system from SQL Server 2005 SP3 to SQL Server 2008 R2 SP1.  The actual migration of the database went off without a hitch, but we soon encountered an odd error with the application querying a view over a linked server.</p>
<p>The application was web-based and began throwing an error trying to load a view.  After some investigation, we discovered that the view was going across a linked server.  Every time the error was encountered, the Windows Event Viewer displayed the following error:</p>
<p style="padding-left: 60px;">A possible infinite recompile was detected for SQLHANDLE 0x020000004840002608194C0756C4E44307B50A91623589FD, PlanHandle 0x060012004840002640616630050000000000000000000000, starting offset 32, ending offset -1.  The last recompile reason was 6.</p>
<p>I took a look at the SQL Text using the supplied handle and matched it to what the web page was calling.  The recompile reason of type 6 turned out to be a problem with remote rows changing on the linked server.  We attempted different things to fix the issue, and thought maybe a maintenance run would assist.  In the end, restarting the main SQL Server instance (where the linked server was configured) resolved the issue.</p>
<p>The system ran great for a week, but then we encountered the same issue the next weekend.  After engaging Microsoft, we were pointed to a KB article about a bug with linked servers and synonyms across SQL Versions.</p>
<p>The article can be read <a href="http://support.microsoft.com/kb/2498818/EN-US" target="_blank">here</a>.</p>
<p>Cumulative updates are available for different versions of SQL Server to resolve the issue.  However, for those of you who cannot just take down a system to apply the patch, there is a temporary fix.</p>
<p><strong>exec sp_refreshview &lt;view name&gt;</strong></p>
<p>On the main server that is executing the query across the linked server, the views pulling data over the linked server connection must be refreshed AFTER re-indexing or other schema-changing maintenance on the linked server.</p>
<p>We currently have a weekly job in place to refresh our relevant views until we can schedule the CU updates.  I only wish I had been able to find more information on this bug when I was experiencing it.  It would have saved us8 hours in the middle of the night trying to figure it out.</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/97L5YNQ_LLU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/05/a-possible-infinite-recompile-was-detected-sql-server-bug-with-linked-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/05/a-possible-infinite-recompile-was-detected-sql-server-bug-with-linked-servers/</feedburner:origLink></item>
		<item>
		<title>Using Bookpedia, SQLite, Book+ and PowerShell to Organize Your e-Book Collection</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/Sny8P-VfWk4/</link>
		<comments>http://blog.netnerds.net/2012/05/using-bookpedia-sqlite-book-and-powershell-to-organize-your-e-book-collection/#comments</comments>
		<pubDate>Sun, 06 May 2012 18:17:08 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[OS X & Apple]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1631</guid>
		<description><![CDATA[This setup is so unlikely, I doubt anyone on the 'net will be looking for this solution but: if you're an eBook loving Windows developer who uses a Macbook Pro for your primary workstation, this may appeal to you. My Macbook Pro runs Windows 7 within Parallels. It's fast and slick and I &#60;3 it. [...]]]></description>
			<content:encoded><![CDATA[<p>This setup is so unlikely, I doubt anyone on the 'net will be looking for this solution but: if you're an eBook loving Windows developer who uses a Macbook Pro for your primary workstation, this may appeal to you. </p>
<p>My Macbook Pro runs Windows 7 within Parallels. It's fast and slick and I &lt;3 it. My eBook reader of choice is the Book+ iPad App. I recently switched from GoodReader to Book+ because of its support for <a href="http://docs.info.apple.com/article.html?path=Mac/10.4/en/mh2152.html">Smart Folders.</a> And I back this all up to <a href="https://www.sugarsync.com/referral?rf=cji83fw08s4ce&#038;utm_source=website&#038;utm_medium=web&#038;utm_campaign=referral&#038;shareEvent=186366">SugarSync</a> which I picked for the price, privacy policy and Book+ integration.</p>
<p>My eBook organizer is <a href="http://www.bruji.com/bookpedia/">Bookpedia</a>. If you're unfamiliar with this (MacOS only) program, it's basically a really advanced eBook library/organizer. What I love most about it is that it easily populates your eBook's metadata using various web services - including Amazon! - <i>then stores it all to a SQLite database.</i></p>
<p>My eBook collection looked nice enough in Bookpedia: Initially, I dragged ebooks onto the dock to import, named them properly and populated their metadata using Amazon. The problem was that my files were all over the place and practically unsyncable with SugarSync and ultimately, Book+. Look how awesome:</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-3.17.47-AM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-3.17.47-AM-300x160.png" alt="" title="Screen Shot 2012-05-05 at 3.17.47 AM" width="300" height="160" class="aligncenter size-medium wp-image-1685" /></a></p>
<p>I'm only a perfectionist when it comes to some things, and ebook organization is one of them. I want my eBooks' naming convention to be as obvious as possible: <b><small>Amazon's full book title - Publisher - ISBN</small></b>. I finallly accomplished this using a number of tools and a few hours of coding. Here's my setup:</p>
<ul>
<li>Windows 7 in Parallels with Z: mapped to my Home directory on my Mac.
<li>Amazon developer account
<li>eBooks that are scattered all over my home directory but organized nicely in BookPedia using Amazon.com data
<li><a href=http://sqlitestudio.one.pl/>SQLite Studio</a> for Windows
<li>Desired single directory destination: ~/Books in Mac or Z:\Books in Windows
</ul>
<p>First thing you wanna do is make a backup of your Bookpedia database. </p>
<div class="dirtycodenoclick"><code>cp ~/Library/Application\ Support/Bookpedia/Database.bookpd ~/Library/Application\ Support/Bookpedia/backup.bookpd</code></div>
<p>Next, load it up into SQLite. Databases -> Add Database -> <b><small>Z:\Library\Application Support\Bookpedia\backup.bookpd</small></b>.</p>
<div class="dirtycodenoclick"><code>CREATE TABLE export (<br />
&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;&nbsp;&nbsp;&nbsp; TEXT,<br />
&nbsp;&nbsp;&nbsp;&nbsp;filename&nbsp;&nbsp;&nbsp;&nbsp;TEXT,<br />
&nbsp;&nbsp;&nbsp;&nbsp;pubdate TEXT,<br />
&nbsp;&nbsp;&nbsp;&nbsp;publisher TEXT,<br />
&nbsp;&nbsp;&nbsp;&nbsp;isbn TEXT,<br />
&nbsp;&nbsp;&nbsp;&nbsp;asin TEXT<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
);<br />
<br />insert into export<br />
select a.ztitle, b.zurl, strftime(&#039;%Y&#039;,date(zreleasedate,&#039;unixepoch&#039;))+31 as pubdate,<br />
a.zpublisher, a.zisbn, a.zasin<br />
from zentry a join zlink b on a.z_pk = b.zentry<br />
&#45;-where b.zurl not like &#039;%YOUR MAC DESTINATION DIR%&#039;<br />
</code></div>
<p>This script creates a new table because that's the only way SQLiteStudio exports data into tsv (tab separated values, which I generally prefer to CSVs) format. Once the table is created, I use a right click to export the it to C:\bookpedia.tsv, making sure to check the "column names as first row" option and ensuring the output is <small><b>ascii</b></small> encoded.</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-04-at-10.36.46-PM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-04-at-10.36.46-PM-300x261.png" alt="" title="Screen Shot 2012-05-04 at 10.36.46 PM" width="300" height="261" class="aligncenter size-medium wp-image-1667" /></a></p>
<p>Now that we've got our TSV file, we'll run it against the PowerShell script below. Copy this code and save it as whatever.ps1</p>
<p><a class="dirtycode" title="Code" href="javascript:toggleLayer('dirtycode16313');">PowerShell Code</a></p>
<div id="dirtycode16313" class="dirtycode"><code># winbasedir = Parallels mapped drive<br />
$winbasedir = &quot;Z:\&quot;<br />
$windestination = &quot;Z:\books\&quot;<br />
$macusername = &quot;chrissylemaire&quot;<br />
$csvfile = &quot;C:\newstructure.csv&quot;<br />
$macdir = &quot;file:///Users/$macusername/&quot;<br />
<br /># import csv file that contains two columns, directory and filename<br />
$csv = Import-Csv &quot;c:\bookpedia.tsv&quot; -Delimiter &quot;`t&quot;<br />
$newcsv = @()<br />
<br />foreach ($item in $csv)<br />
{&nbsp;&nbsp;<br />
&nbsp;&nbsp;if ($item.filename) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;$source = $item.filename.Replace($macdir,$winbasedir)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$source = $source.Replace(&quot;/&quot;,&quot;\&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$extension = $source.substring($source.length - 4, 4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$title = $item.title<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# Set the file&#039;s new name. In my case, I wanted Book Title - Year - Publisher - ISBN<br />
&nbsp;&nbsp;&nbsp;&nbsp;if ($item.pubdate) { $title = $title + &quot; - &quot; + $item.pubdate}<br />
&nbsp;&nbsp;&nbsp;&nbsp;if ($item.publisher) { $title = $title + &quot; - &quot; + $item.publisher}&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if ($item.isbn) { $title = $title + &quot; - &quot; + $item.isbn }<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# No clue why GetInvalidFilenameChars doesn&#039;t do this right&#46;..<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Copy-Item will not allow the characters below<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $title.Replace(&quot;:&quot;,&quot; -&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $newname.Replace(&quot;&nbsp;&nbsp;&quot;,&quot; &quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $newname.Replace(&quot;\&quot;,&quot;-&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $newname.Replace(&quot;/&quot;,&quot;-&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $newname.Replace(&quot;?&quot;,&quot;&quot;) # ascii encoding changes weird chars to &quot;?&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $newname.Replace(&quot;[&quot;,&quot;&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $newname.Replace(&quot;]&quot;,&quot;&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$newname = $newname.Replace(&quot;*&quot;,&quot;-&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$target = $windestination+$newname+$extension<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;if ((test-path($source)) -and !(test-path($target)))<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy-Item -path $source -destination $target -whatif<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# If the copy succeeded, add it to a CSV file that<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Bookpedia will use to import the new clean structure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (test-path($target))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newline = New-Object System.Object<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mactarget = $target.Replace($windestination,$macdir+&quot;Books/&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mactarget = $mactarget.Replace(&quot;\&quot;,&quot;/&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add-Member -inputobject $newline -name link -value $mactarget -MemberType NoteProperty<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add-Member -inputobject $newline -name title -value $item.title.Replace(&quot;?&quot;,&quot;&quot;) -MemberType NoteProperty<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add-Member -inputobject $newline -name isbn -value $item.isbn -MemberType NoteProperty<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add-Member -inputobject $newline -name asin -value $item.asin -MemberType NoteProperty<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newcsv += $newline<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
}<br />
<br />$newcsv | export-csv $csvfile -noType -Force<br />
mv $csvfile $winbasedir -Force</code></div>
<p>One thing to note: I did write this script so that it can be run multiple times. So each time you've got a batch of books that need to be cleaned up, you can just run it again without destroying your library.</p>
<p>So once the script has finished running, the fruits of its labor will look something beautiful like this:</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-3.49.14-AM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-3.49.14-AM-300x190.png" alt="" title="Screen Shot 2012-05-05 at 3.49.14 AM" width="300" height="190" class="aligncenter size-medium wp-image-1690" /></a></p>
<p>Now that we've got the files copied (I don't recommend moving them, just in case something happens) and the new csv import file has been created, we'll open it in Bookpedia. First, though, I made another backup  of this Bookpedia database then deleted my library. Now it's time to import the "clean" collection. Bookpedia -> File -> Import Collection. </p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-2.48.05-AM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-2.48.05-AM-300x206.png" alt="" title="Screen Shot 2012-05-05 at 2.48.05 AM" width="300" height="206" class="aligncenter size-medium wp-image-1672" /></a></p>
<p>The columns will automatically map properly because the script and Bookpedia are awesome like that.</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-2.54.45-AM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-2.54.45-AM-300x261.png" alt="" title="Screen Shot 2012-05-05 at 2.54.45 AM" width="300" height="261" class="aligncenter size-medium wp-image-1678" /></a></p>
<p>Now Bookpedia has enough information to populate the metadata. As I said before, I chose the Amazon option for this.</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-3.17.47-AM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/05/Screen-Shot-2012-05-05-at-3.17.47-AM-300x160.png" alt="" title="Screen Shot 2012-05-05 at 3.17.47 AM" width="300" height="160" class="aligncenter size-medium wp-image-1685" /></a></p>
<p>So now I use SugarSync to sync up that Books directory and then use Book+ to keep that directory in sync on my iPad. What's super great about Book+, too, are the Smart Folders. Say SugarSync syncs a new PowerShell book, it will automatically appear in my PowerShell Smart Folder. Whaaaat!</p>
<p><center><b>Ladies and Gentlemen... the prodigiousness:</b></center><br />
<a href="http://blog.netnerds.net/wp-content/uploads/2012/05/ipad.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/05/ipad-225x300.png" alt="" title="ipad" width="225" height="300" class="aligncenter size-medium wp-image-1704" /></a></p>
<p>Anyone wanna rewrite this in AppleScript for me?</p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/Sny8P-VfWk4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/05/using-bookpedia-sqlite-book-and-powershell-to-organize-your-e-book-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/05/using-bookpedia-sqlite-book-and-powershell-to-organize-your-e-book-collection/</feedburner:origLink></item>
		<item>
		<title>SharePoint/Excel 2010: Relative Hyperlinks and Local Documents</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/hZrOVAr-GWI/</link>
		<comments>http://blog.netnerds.net/2012/04/sharepointexcel-2010-relative-hyperlinks-and-local-documents/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 01:50:23 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1551</guid>
		<description><![CDATA[Relatively linking to local documents is much simpler you'd expect. Just save the Excel file and the documents in the same directory and =HYPERLINK(filename,filename). No need for "file://" or any fancy hyperlinking. This method works anywhere -- your local drive, a CD-ROM drive, USB stick, or a networked drive. If you'd like to add files [...]]]></description>
			<content:encoded><![CDATA[<p>Relatively linking to local documents is much simpler you'd expect. Just save the Excel file and the documents in the same directory and <b><small>=HYPERLINK(filename,filename)</small></b>. No need for "file://" or any fancy hyperlinking. This method works anywhere -- your local drive, a CD-ROM drive, USB stick, or a networked drive.</p>
<p>If you'd like to add files to a subfolder, the syntax is <b><small>=HYPERLINK("foldername\" &#038; Name,Name)</small></b> I've seen a few people around the 'net who also needed to download documents in SharePoint and have them indexed in Excel. Here's how you do it:</p>
<h2>SharePoint</h2>
<p>Go to the Document Library<br />
Download the documents to your local drive using Explorer View.<br />
Once that's done, select the View and Folder you'd like to export<br />
Ribbon Library Tools -> Library -> Current View, Change to CDR<br />
Don't click any files or folders -> Export to Excel<br />
Open</p>
<h2>Excel</h2>
<p>Click "Enable" if given a security prompt<br />
Now you're in Excel<br />
Click Data -> Connections -> Highlight owssvr -> Remove</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.48.45-PM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.48.45-PM-300x100.png" alt="" title="Screen Shot 2012-04-15 at 6.48.45 PM" width="300" height="100" class="aligncenter size-medium wp-image-1553" /></a></p>
<p>Rename the workbook to <small><b>Index</b></small><br />
Delete the Path and Item Type Columns</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.46.44-PM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.46.44-PM-300x115.png" alt="" title="Screen Shot 2012-04-15 at 6.46.44 PM" width="300" height="115" class="aligncenter size-medium wp-image-1552" /></a></p>
<p>Select Column A -> Right Click -> Remove Hyperlinks</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.49.25-PM1.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.49.25-PM1-300x294.png" alt="" title="Screen Shot 2012-04-15 at 6.49.25 PM" width="300" height="294" class="aligncenter size-medium wp-image-1574" /></a><br />
Select Column A2 -> Right Click -> Insert <small><b>Table Columns to the Left</b></small></p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.54.36-PM1.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-6.54.36-PM1-300x184.png" alt="" title="Screen Shot 2012-04-15 at 6.54.36 PM" width="300" height="184" class="aligncenter size-medium wp-image-1573" /></a></p>
<p>Name that column FileName<br />
Click the "Name" Column to highlight the whole thing<br />
Click "Formulas" in the Ribbon -> Define Name -> It should say Name, Scope is Workbook, Refers to is autofilled: =Index!$B:$B</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-9.14.37-PM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-9.14.37-PM-300x193.png" alt="" title="Screen Shot 2012-04-15 at 9.14.37 PM" width="300" height="193" class="aligncenter size-medium wp-image-1584" /></a></p>
<p>Highlight all of the empty cells on the side of the Filenames (A2 on down)<br />
Go to the Function section<br />
Paste: <b><small>=HYPERLINK(Name,Name)</small></b></p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-7.17.01-PM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-7.17.01-PM-300x132.png" alt="" title="Screen-Shot-2012-04-15-at-7.17.01-PM" width="300" height="132" class="aligncenter size-medium wp-image-1558" /></a></p>
<p>Save to all columns by clicking CTRL-ENTER</p>
<p><a href="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-7.17.47-PM.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-15-at-7.17.47-PM-300x141.png" alt="" title="post-hyperlink" width="300" height="141" class="aligncenter size-medium wp-image-1559" /></a></p>
<p>Save the Excel file to the same directory where you initially copied your SharePoint directories.</p>
<p>*BONUS: Highlight the Name column and hide it. </p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/hZrOVAr-GWI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/04/sharepointexcel-2010-relative-hyperlinks-and-local-documents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/04/sharepointexcel-2010-relative-hyperlinks-and-local-documents/</feedburner:origLink></item>
		<item>
		<title>Install Project Server 2010 on Windows 7</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/Oy7RV_E-whA/</link>
		<comments>http://blog.netnerds.net/2012/04/install-project-server-2010-on-windows-7/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 15:19:25 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1537</guid>
		<description><![CDATA[Google is kind of hiding this French guy's webpage (at least in America) so I thought I'd point it out. You can install Project Server 2010 and few other Office App Servers on Windowes 7 by making two changes: modify the setup\config.xml and adding a faux ServerManagerCMD.exe to your System32 directory. To compile your own [...]]]></description>
			<content:encoded><![CDATA[<p>Google is kind of hiding <a href="http://blog.hand-net.com/sharepoint/2010-06-10-error-lors-de-linstallation-des-office-web-apps-2010-sur-windows-7.htm">this French guy</a>'s webpage (at least in America) so I thought I'd point it out. You can install Project Server 2010 and few other Office App Servers on Windowes 7 by making two changes: <a href="http://msdn.microsoft.com/en-us/library/ee554869.aspx">modify the setup\config.xml</a> and <a href="http://myriadtech.com.au/blog/James/Lists/Posts/Post.aspx?ID=50">adding a faux ServerManagerCMD.exe</a> to your System32 directory.</p>
<p>To compile your own ServerManagerCMD.exe in C#, use the following code:</p>
<div class="dirtycodenoclick"><code> namespace faux.ServerManagerCmdEmul<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;class Program<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static void Main(string[] args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Environment.ExitCode = 1003;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
}</code></div>
<p><br/><br />
Or just <a href=/ServerManagerCMD.exe>download the copy I compiled</a>. Using this, I successfully installed Project Server 2010 and I'm running it now. Something odd did happen, however. After installing Project Server 2010 w/SP1, I ran the SharePoint Configuration tool and my SecureStore broke; I kept getting 503 Server Unavailable. <a href=http://www.youtube.com/watch?v=JaAd8OuwwPk>Ain't nobody got time for that</a>.</p>
<p>Upon seeing "<i>An exception occurred when trying to issue security token: Could not connect to http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc/actas. TCP error code 10061: No connection could be made because the target machine actively refused it.</i>" in Event Viewer, I tried a couple things then just decided to rerun the SharePoint Configuration Tool. Annnnd that worked. Time to start Projecting <img src='http://blog.netnerds.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/Oy7RV_E-whA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/04/install-project-server-2010-on-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/04/install-project-server-2010-on-windows-7/</feedburner:origLink></item>
		<item>
		<title>SharePoint 2010 Task List Validation: Comparing Two Columns, Status and % Complete</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/7sT2ZTGjM9M/</link>
		<comments>http://blog.netnerds.net/2012/04/sharepoint-2010-task-list-validation-comparing-two-columns-status-and-complete/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 17:40:26 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1527</guid>
		<description><![CDATA[Did you know that SharePoint supports list validation in addition to column validation? I've seen the option 100 times before but it never clicked before I actually needed to use it. In this case, I needed to make sure that anyone setting a task item Status column to Completed" was also filling setting the % [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that SharePoint supports list validation in addition to column validation? I've seen the option 100 times before but it never clicked before I actually needed to use it. In this case, I needed to make sure that anyone setting a task item <b>Status</b> column to <i>Completed"</i> was also filling setting the <b>% Complete</b> column to <i>100%</i>. Or, alternatively, if they were setting the <b>% Complete</b> column to <i>100%</i>, they also set the task <b>Status</b> to <i>Completed</i>.</p>
<p>Need to do the same? Here you geaux:</p>
<pre style="background-color: #DBF1FC;">=OR(IF(AND(Status<>"Completed",[% Complete]<100%),TRUE,FALSE),IF(AND(Status="Completed",[% Complete]=100%),TRUE,FALSE))</pre>
<p><br/>Note that this simple formula doesn't care about the percentages of any other status. If you'd like that functionality, check out the solution on this <a href=http://social.technet.microsoft.com/Forums/en-US/sharepoint2010programming/thread/0809b54f-6ec0-46ad-8edf-42a29634f5ef/>TechNet post</a>.</p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/7sT2ZTGjM9M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/04/sharepoint-2010-task-list-validation-comparing-two-columns-status-and-complete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/04/sharepoint-2010-task-list-validation-comparing-two-columns-status-and-complete/</feedburner:origLink></item>
		<item>
		<title>[Client-side Workaround] SharePoint 2010 Excel Services cannot Automatically Refresh Data when using SharePoint Lists as a Data Source</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/D5-GjM8FekY/</link>
		<comments>http://blog.netnerds.net/2012/04/client-side-workaround-sharepoint-2010-excel-services-cannot-automatically-refresh-data-when-using-sharepoint-lists-as-a-data-source/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 03:15:02 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1443</guid>
		<description><![CDATA[So far as I can tell, Excel Services is not capable of automatic data refreshes when using SharePoint Lists as a data source. If you're looking for this functionality, you have two choices: PowerPivot (best) or scheduled client-side data refreshing (ghetto). In order for Excel Services to communicate with other data sources to do data [...]]]></description>
			<content:encoded><![CDATA[<p>So far as I can tell, <small><b>Excel Services is not capable of automatic data refreshes when using SharePoint Lists as a data source</b></small>. If you're looking for this functionality, you have two choices: PowerPivot (best) or scheduled client-side data refreshing (ghetto). </p>
<p>In order for Excel Services to communicate with other data sources to do data refreshes without your intervention, <a href="http://technet.microsoft.com/en-us/library/ff191191.aspx">it relies on</a> SharePoint's SSO Service, the Secure Store. There are three different methods of connecting - Unattended Service Account, Embedded Connections, &#038; External Data Connections - and I tried all three of them in various configurations but kept running into Access Denied errors. I even tried some of that voodoo magic we were taught growing up and it didn't even help.</p>
<p>I finally stopped trying after reaching a dead end on the <a href=http://technet.microsoft.com/en-us/library/hh369968.aspx>Excel Services data refresh flowchart</a> then further confirming said dead end within the ULS which informed me that there was an "Unauthorized attempt to access session by user &lt;username&gt;. Session belonged to user &lt;username of user that started the session&gt; (Event ID: 2011)." Seems that SharePoint does not like Excel Services asking to see its lists.</p>
<p>To confirm, I looked up the error in the SharePoint Technical Reference and it said<br />
<blockquote>Excel Services Application maintains individual user sessions. Sessions maintain state related to workbook calculations, parameters that a user sets, interactions that a user has with a live workbook, and data returned from a data source as a result of a data refresh operation. Sessions are maintained per user per workbook, and can contain <b>private</b> data and information. <b>Sessions are available only to the user that started the session</b>. The issue in this case is that a user who did not start a session attempted to access data from that session.</p></blockquote>
<p>(Emphasis mine) </p>
<p>FFFFFINNNNEEE, Microsoft. Until we get PowerPivot implemented, I'll just make PowerShell do my dirty work. The script below, which you can schedule, assumes the following:
<ul>
<li>your workstation will be on most of the time
<li>you have Excel 2010 Professional installed
<li>you can use Windows Explorer view of libraries
<li>versioning is turned on and limited to a certain number of versions<br/> (this makes 24 versions a day)
<li>that you want EVERY Excel file in a library to be refreshed
<li>you have write permissions to all excel files
<li>you have access to do so and the files are checked in</ul>
<p> So, it goes to the document library, searches recursively for all Excel files, opens them up, checks them out, opens them, refreshes the data connections, saves the file then checks them in with a new version. K, here goes:</p>
<p><b>For Document Libraries that require checking out files prior to editing them:</b></p>
<div class="dirtycodenoclick"><code># This is the location of the document library that has the Excel files<br />
# You must have WebDAV enabled on the server (which is default, I think)<br />
# and the webclient service enabled and running on your workstation.<br />
$library = &quot;\\sharepoint.ad.local@SSL\DavWWWRoot\Shared Documents&quot;<br />
<br /># Start Excel (it will be invisible unless you do $excel.visible = $true)<br />
$excel = new-object -comobject Excel.Application<br />
<br /># Give Excel time to open or it errors inconsistently<br />
Start-Sleep -s 3<br />
<br />$excelfiles = get-childitem $library -recurse -include &quot;*.xls*&quot;<br />
<br />foreach ($file in $excelfiles)<br />
{<br />
&nbsp;&nbsp;$workbookpath = $file.fullname<br />
<br />&nbsp;&nbsp;if ($excel.workbooks.canCheckOut($workbookpath)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;# open the worksheet and check it out<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook = $excel.workbooks.Open($workbookpath)<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook = $excel.workbooks.CheckOut($workbookpath)<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# Don&#039;t ask cuz I don&#039;t know (yet). You have to open it again.<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook = $excel.workbooks.Open($workbookpath)<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# Refresh all the pivot tables with the new data.<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook.RefreshAll()<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# Save and Check it in<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook.Save()<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook.CheckInWithVersion()<br />
&nbsp;&nbsp;}<br />
}<br />
$excel.quit()</code></div>
<p><br/><br />
<b>And this code is for libraries that do not require check-out:</b></p>
<div class="dirtycodenoclick"><code># This is the location of the document library that has the Excel files<br />
# You must have WebDAV enabled on the server (which is default, I think)<br />
# and the webclient service enabled and running on your workstation.<br />
$library = &quot;\\sharepoint.ad.local@SSL\DavWWWRoot\Shared Documents&quot;<br />
<br /># Start Excel (it will be invisible unless you do $excel.visible = $true)<br />
$excel = new-object -comobject Excel.Application<br />
<br /># Give Excel time to open or it errors inconsistently<br />
Start-Sleep -s 3<br />
<br />$excelfiles = get-childitem $library -recurse -include &quot;*.xls*&quot;<br />
<br />foreach ($file in $excelfiles)<br />
{<br />
&nbsp;&nbsp;$workbookpath = $file.fullname<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# open the worksheet<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook = $excel.workbooks.Open($workbookpath)<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# Refresh all the pivot tables with the new data.<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook.RefreshAll()<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;# Save and Close<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook.Save()<br />
&nbsp;&nbsp;&nbsp;&nbsp;$excelworkbook.Close()<br />
}<br />
$excel.quit()</code></div>
<p><br/></p>
<p>Wanna schedule this script hourly? <small><b>schtasks /create /tn RefreshData /tr "powershell  -noninteractive -nologo -command C:\scripts\refresh.ps1" /sc HOURLY</b></small>. Don't forget to limit Versions in your library as this script creates 24 versions of each workbook per day.</p>
<p>Also, <b>this script is 10x's faster on Windows 7</b> if you disable the use of the <a href="http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol">Web Proxy Autodiscovery Protocol (WPAD)</a>. IE -> Tools -> Internet Options -> Connections -> LAN Settings -> Uncheck Automatically Detect Settings. </p>
<p>And finally, if you find that your files are opening Read-only, make sure all instances of Excel are closed, then delete your Microsoft Office cache in %userprofile%\local settings\temporary internet files\content.mso\.</p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/D5-GjM8FekY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/04/client-side-workaround-sharepoint-2010-excel-services-cannot-automatically-refresh-data-when-using-sharepoint-lists-as-a-data-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/04/client-side-workaround-sharepoint-2010-excel-services-cannot-automatically-refresh-data-when-using-sharepoint-lists-as-a-data-source/</feedburner:origLink></item>
		<item>
		<title>When xp_delete_files doesn’t work as expected…</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/oinMU4bTp8c/</link>
		<comments>http://blog.netnerds.net/2012/03/when-xp_delete_files-doesnt-work-as-expected/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 18:03:49 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1446</guid>
		<description><![CDATA[Whether you use a Maintenance Cleanup Task as part of a SQL 2005 or 2008 Maintenance Plan, or script out your own cleanup t-SQL, you are probably using the xp_delete_files extended procedure. For quite a while, I've occasionally come across old TLog or backup files that were missed. Without questioning it, I would clean them [...]]]></description>
			<content:encoded><![CDATA[<p>Whether you use a Maintenance Cleanup Task as part of a SQL 2005 or 2008 Maintenance Plan, or script out your own cleanup t-SQL, you are probably using the xp_delete_files extended procedure. For quite a while, I've occasionally come across old TLog or backup files that were missed. Without questioning it, I would clean them up manually.</p>
<p>Recently I had to disable my 3rd party compression utility due to issues and noticed that all of the SQL instances using that compression utility stopped cleaning up their TLog files. I decided I had to investigate why this was happening. My original assumption with xp_delete_files was that it went to a directory that you specify, looked for the file extension and deleted any matches older than the date. But there is a missing component here.</p>
<p>Let's look at the syntax for xp_delete_files in my particular case...<br />
<code><br />
EXECUTE master.dbo.xp_delete_file<br />
0,                                                    &#45;- Either a 0 (Backup File) or 1 (Maintenance Plan Log File)<br />
N&#039;&#039;,                                                  &#45;- Location of Files. I use a remote SAN storage location.<br />
N&#039;TRN&#039;,                                            &#45;- Extension of file to clean up.<br />
N&#039;2012-03-28T09:38:06&#039;,                    &#45;- Date threshold to delete files older than&#46;..<br />
1                                                     &#45;- 0 (Current Directory) or 1 (Recursively through subdirectories)<br />
</code></p>
<p>The secret to this procedure is the first argument, the specification of the type of file you are deleting. You may wonder why it would care what kind of file it is, as long as you can match up the extension, but the procedure is actually <strong>reading the header</strong> of the files to determine that they are indeed backups.</p>
<p>This is why my backups stopped cleaning up after I disabled my compression software. The native ability of SQL Server could not read the header of my TLog files, and therefore could not verify that they are backup files. So it did not delete them. The issues I had occasionally with missed files were with corrupted backup files, usually aborted during writing for one reason or another.</p>
<p>In order to get around the issue, I tried telling the procedure that the files were just logs, but that was not successful in cleaning up my backups either. So the decision has to be made on if this is acceptable behavior, or if I want to go through the trouble of crafting a new method of deletion for all of my SQL installs. At this point, I think I can live with it, even though forcing a deletion would be handy.</p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/oinMU4bTp8c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/03/when-xp_delete_files-doesnt-work-as-expected/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/03/when-xp_delete_files-doesnt-work-as-expected/</feedburner:origLink></item>
		<item>
		<title>SharePoint 2010: Creating Dashboards and Charts for SharePoint Lists using PerformancePoint and Excel Services from Start to Finish</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/vkLzBRAAWyc/</link>
		<comments>http://blog.netnerds.net/2012/03/sharepoint-2010-creating-dashboards-and-charts-for-sharepoint-lists-using-performancepoint-and-excel-services/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 20:12:02 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1381</guid>
		<description><![CDATA[I really thought making SharePoint Lists into pretty graphs and charts in SharePoint would be far more straightforward than it's turned out to be. Recently, I was given a project where I had to do just that and while I read through about 30 SharePoint BI books, none really gave a straight answer on which [...]]]></description>
			<content:encoded><![CDATA[<p>I really thought making SharePoint Lists into pretty graphs and charts in SharePoint would be far more straightforward than it's turned out to be. Recently, I was given a project where I had to do just that and while I read through about 30 SharePoint BI books, none really gave a straight answer on which of the various SharePoint reporting technologies I should use. It seems I had a choice between:
<ul>
<li>Reporting Services
<li>SharePoint's Reporting Services add-on
<li> A near-useless SharePoint Chart Web Part
<li> Excel worksheets
<li> Excel Web Services
<li> PerformancePoint Dashboards w/ a SharePoint list data source, SQL Server Analysis Server data source, Excel Workbooks data source, and/or Excel Services as a data source</ul>
</li>
</ul>
<p> So overwhelming.</p>
<p>Initially, I decided PerformancePoint Dashboards and PowerPivot would best suit my needs. PowerPivot is an Excel Add-on + a SharePoint Add-on that basically surfaces Analysis Services for reporting and as awesome as it is, the farm I'm using doesn't currently support it (setting up PowerPivot is a bear, I'll admit.) The good news is that it will be, and when it is, it'll be SQL Server 2012's version that comes with Power View and PowerPivot. Whattt!</p>
<p>Ultimately, I decided that I'm going to accomplish my task using <strong>Excel Services</strong> and <strong>PerformancePoint Dashboard Designer</strong>. This solution addresses automatic refreshing so your reports will stay (mostly) up to date. For complete beginners, this is basically how it works: You use export a SharePoint list query as a data source in an Excel spreadsheet, use Insert-&gt;PivotChart to work with the data, publish those specific charts and tables back to SharePoint using Excel Services, access those published items using PerformancePoint Dashboard Designer (which you can't download from the Internet -- you download the ClickOnce file from your SharePoint page), then publish a dashboard and tada!</p>
<h3>(End User) Pre-Configuration</h3>
<ul>
<li>Obtain access to a SharePoint 2010 server running Excel Services and PerformancePoint Services
<li>Update: Automatic data refreshing doesn't work with Excel Services when using SharePoint lists as a data source. For that, you'll need a <a href=http://blog.netnerds.net/2012/04/client-side-workaround-sharepoint-2010-excel-services-cannot-automatically-refresh-data-when-using-sharepoint-lists-as-a-data-source/>client side script</a> or PowerPivot.</li>
<li>Enable PerformancePoint Services Site Features and SharePoint Server Enterprise Site features on your site (Site Actions -&gt; Site Settings -&gt; Manage Site Features) if they aren't already.</li>
<li>Add some items to the Tasks list that comes built-in to Team Sites. In the example below, I have 108 items, but you won't need that much; I'm just working with live data.</li>
<li>Create a new Business Intelligence Site. Site Actions -&gt; New Site -&gt; Business Intelligence Center</li>
</ul>
<div>
<h3>Working in Excel</h3>
</div>
<ul>
<li>In the SharePoint Task List you just populated, click List in the ribbon bar, and <strong>Export to Excel</strong>. You'll be prompted to download a lil .iqy file to your desktop.</li>
<li>Open a new Excel Worksheet</li>
<li>Insert -&gt; PivotTable</li>
<ul>
<li>When prompted, click Use an External Data Source</li>
<li>Choose Connection -&gt; Browse for more... -&gt; Select the .idq file you just downloaded</li>
<li><strong>This is important</strong>: Even though this connection is to a SharePoint list and you'd think the updates would be instantaneous, you have to explicitly set the connection to refresh in order to keep your chart up-to-date. <strike>Let's do this by clicking "Properties" -&gt; Refresh Control -&gt; Enable background refresh, Refresh Every 60 minutes, Refresh data when opening file.</strike> Don't click any of those. If you need data refreshes, use PowerPivot or <a href=http://blog.netnerds.net/2012/04/client-side-workaround-sharepoint-2010-excel-services-cannot-automatically-refresh-data-when-using-sharepoint-lists-as-a-data-source/>this client-side script</a>.</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/conn.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/03/conn-300x221.png" alt="" title="conn" width="300" height="221" class="alignnone size-medium wp-image-1505" /></a></p>
<ul>
<li>Click all those boxes, then OK. If you ever need to get to this screen again, you can find it at Data -&gt; Existing Connections -&gt;  Right Click -&gt; Edit Connection Properties.</li>
</ul>
</ul>
<ul>
<li>A new toolbox will appear on the right. Drag "Status" to "Row Labels" and the "E" looking thing. This will setup the data to make a chart that counts the number of Completed tasks, New Tasks, Tasks Assigned to Someone Else.. and so on.</li>
</ul>
<p align=center>
<a href="http://blog.netnerds.net/wp-content/uploads/2012/03/pivotstatus.png"><img class="alignnone size-full wp-image-1383" title="pivotstatus" src="http://blog.netnerds.net/wp-content/uploads/2012/03/pivotstatus.png" alt="" width="196" height="405" /></a></p>
<ul>
<li>Yay, now click PivotChart (under PivotTools -&gt; Options)</li>
<li>Choose a chart. I'm just gonna go with the default by clicking OK. Now, your spreadsheet should look something like this, with a PivotTable and PivotChart:</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/tablenchart.png"><img class="alignnone size-medium wp-image-1386" title="tablenchart" src="http://blog.netnerds.net/wp-content/uploads/2012/03/tablenchart-300x127.png" alt="" width="300" height="127" /></a></p>
<ul>
<li>See how it says "<b>Chart 1</b>" in the upper left hand side? That's the default Chart name. Let' change that by clicking on the PivotChart then clicking PivotChart Tools -&gt; Layout -&gt; PivotChart Name:</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/renamechart.png"><img class="alignnone size-full wp-image-1387" title="renamechart" src="http://blog.netnerds.net/wp-content/uploads/2012/03/renamechart.png" alt="" width="276" height="133" /></a></p>
<ul>
<li>I'm going to name mine <b>Task Status Chart</b></li>
</ul>
<ul>
<li>K, now click in the PivotTable area, and under "PivotTable" at the top, click Options. On the left, you'll see where you can change the PivotTable Name. Do that if you want.</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/PivotName.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/03/PivotName-300x125.png" alt="" title="PivotName" width="300" height="125" class="alignnone size-medium wp-image-1510" /></a></p>
</li>
</ul>
<div>
<h3>Publish Your New Chart (Don't just Save)</h3>
</div>
<ul>
<li>Save the Excel file to SharePoint</li>
<ul>
<li>File -&gt; Save and Send -&gt; Save to SharePoint -&gt; Set Publish Options</li>
<li>Publish Options -&gt; &lt;b&gt;Select the individual items&lt;/b&gt; by clicking on "Entire Workbook" then selecting All Charts -&gt; OK </li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/saveitem.png"><img title="saveitem" src="http://blog.netnerds.net/wp-content/uploads/2012/03/saveitem-300x195.png" alt="" width="300" height="195" /></a></p>
<ul>
<li>Go ahead and check the PivotTable (notice we didn't change that PivotTable's name so it's still the default PivotTable1) options, too.</li>
<li> Save your file to SharePoint by browsing for a location or saving it to a library that's already been saved.</li>
</ul>
</ul>
<div>
<h3>Show Published Excel Chart in a PerformancePoint Dashboard</h3>
</div>
<ul>
<li>Browse to the Business Intelligence site you created in the Pre-reqs.</li>
<li>Hover over Create Dashboards then click <b>Start using PerformancePoint Services</b>.</li>
<li>You'll then see a page that says "<b>Run Dashboard Designer</b>". Click that.</li>
<li>Your computer will install about a 16mb ClickOnce application and this is where you'll always come to launch it.</li>
<li>This interface is a little confusing. All you have to know right now is that you'll be using two item things -- <b>Other Report</b> and <b>Dashboard</b>.</li>
<li>Let's first get the Report item: Click on PerformancePoint Content on the left hand side to make the "Create" menu available. Then Create -> Other Reports -> Excel Services</li>
<li>Use the selection tools to navigate down to your spreadsheet, and ultimately, your published items. Below, I'll select <b>Task Status Bar Chart</b>.</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/newreport.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/03/newreport-300x106.png" alt="" title="newreport" width="300" height="106" class="alignnone size-medium wp-image-1412" /></a></p>
<ul>
<li>Name your Report in the Properties Tab. You can now click Save or move onto the next step.</li>
<li>Now we're going to create a dashboard. Click the Dashboard Icon in the upper left hand corner.</li>
<li>Select your layout. In the example below, I went with two panes, just because.</li>
<li>When the dashboard appears, you'll see "Details" on the right hand side.</li>
<li>Expand Reports -> PerformancePoint Content -> Drag the report to any pane.</li>
<li>While we could just click the Office ball in the upper left hand corner and "<b>Deploy</b>", we need to adjust the size of the chart real quick</li>
<li>Click the down arrow on the report within the pane, and select Edit Item -> Size -> Set to Auto-size Width &#038; Auto-size Height.</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/edititem.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/03/edititem.png" alt="" title="edititem" width="206" height="100" class="alignnone size-full wp-image-1417" /></a></p>
<ul>
<li>Now it's time to Deploy your Dashboard! Click the Office ball thing -> Deploy</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/deployto.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/03/deployto-150x150.png" alt="" title="deployto" width="150" height="150" class="alignnone size-thumbnail wp-image-1419" /></a></p>
<ul>
<li>Drill down to select your Dashboards library within your BI site.</li>
<li>The new dashboard will load automatically.</li>
</ul>
<p align=center><a href="http://blog.netnerds.net/wp-content/uploads/2012/03/finaldash.png"><img src="http://blog.netnerds.net/wp-content/uploads/2012/03/finaldash-300x212.png" alt="" title="finaldash" width="300" height="212" class="alignnone size-medium wp-image-1421" /></a></p>
<ul>
<li>Congrats, you've done it! Time to bask in the glory of your work.</li>
</ul>
<p>You may run into administrative errors along the way (I know I did), but that is out of the scope of this blog post. Next up? Accomplishing the awesomer version of this using PowerPivot. Speaking of, Microsoft could really do a better job of marketing PowerPivot as an all-around great reporting tool and not just something amazing for large data sets. This tool is super useful even for smaller data sets. I'll probably be blogging about that sometime soon. More people should know!</p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/vkLzBRAAWyc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/03/sharepoint-2010-creating-dashboards-and-charts-for-sharepoint-lists-using-performancepoint-and-excel-services/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/03/sharepoint-2010-creating-dashboards-and-charts-for-sharepoint-lists-using-performancepoint-and-excel-services/</feedburner:origLink></item>
		<item>
		<title>[Solved] Annoying Scrollbars in Excel Web Access Web Parts and PerformancePoint w/ Excel Services</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/g0bMv3usrss/</link>
		<comments>http://blog.netnerds.net/2012/03/solved-annoying-scrollbars-in-performancepoint-w-excel-services-pivotcharts-and-excel-web-access-web-parts/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 21:49:17 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1358</guid>
		<description><![CDATA[Recently, while using Excel Services to access PivotCharts and PivotTables within Excel Web Viewer Web Parts and PerformancePart Dashboards, I encountered vertical and horizontal scrollbars that would not go away, no matter how much I tried resizing. god don't like ugly To accomplish the above, you have to do two things. In Dashboard Designer, set [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, while using Excel Services to access PivotCharts and PivotTables within Excel Web Viewer Web Parts and PerformancePart Dashboards, I encountered vertical and horizontal scrollbars that would not go away, no matter how much I tried resizing.</p>
<p><center><img src=http://blog.netnerds.net/wp-content/uploads/2012/03/teamdash-fullsheet.png><br />
god don't like ugly<br />
</center></p>
<p>To accomplish the above, you have to do <b>two</b> things.
<ol>
<li>In Dashboard Designer, <a href="http://technet.microsoft.com/en-us/library/gg609829.aspx">set the sizing of your Excel report to auto</a>.</li>
<li>This is what got me: published PivotCharts and PivotTables should not be on a dedicated sheet in Excel. They <a href="http://stackoverflow.com/questions/7585513/how-can-one-scale-a-sharepoint-excel-web-services-web-part-chart">must be embedded as an object within a spreadsheet.</a></li>
</ol>
<p><center><img src=http://blog.netnerds.net/wp-content/uploads/2012/03/teamdash-embedded.png><br />
everything is right in the world<br />
</center></p>
<p>If you continue to experience scroll bars, resize your chart within Excel and republish. From there, you may need to modify the size of your web part in its properties.</p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/g0bMv3usrss" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/03/solved-annoying-scrollbars-in-performancepoint-w-excel-services-pivotcharts-and-excel-web-access-web-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/03/solved-annoying-scrollbars-in-performancepoint-w-excel-services-pivotcharts-and-excel-web-access-web-parts/</feedburner:origLink></item>
		<item>
		<title>[SOLVED] PowerPivot for SharePoint 2010: An error occurred connecting to this data source.</title>
		<link>http://feedproxy.google.com/~r/netnerdsnet/~3/6s2F966KVmE/</link>
		<comments>http://blog.netnerds.net/2012/03/solved-powerpivot-for-sharepoint-2010-an-error-occurred-connecting-to-this-data-source/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 20:06:58 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blog.netnerds.net/?p=1339</guid>
		<description><![CDATA[I'm currently working on a project where I need to quickly make pretty graphs and charts for data in small but important SharePoint lists. After looking through a number of books and consulting with my SharePoint buddies, PowerPivot for SharePoint 2010 seems to be the best tool for the job. Getting it to work hasn't [...]]]></description>
			<content:encoded><![CDATA[<p>I'm currently working on a project where I need to quickly make pretty graphs and charts for data in small but important SharePoint lists. After looking through a number of books and consulting with my SharePoint buddies, PowerPivot for SharePoint 2010 seems to be the best tool for the job.</p>
<p>Getting it to work hasn't been easy, I believe because there's so many components that come into play. You've got the PowerPivot add-on for Excel 2010, the PowerPivot service for SharePoint, Excel Services for SharePoint, SQL Server Analysis Services and PerformancePoint Dashboards. Here's how it all started...</p>
<ul>
<li>I was assigned to make pretty charts for a site</li>
<li>I installed the Excel + the PowerPivot add-on</li>
<li>Exported the SharePoint list</li>
<li>Opened the exported list, enabled Data Connections, and made a PowerPivot chart thing</li>
<li>Checked to make sure PerformancePoint &amp; Excel Services features were enabled</li>
<li>Created a BI site</li>
<li>Saved the Excel file to SharePoint</li>
<li>Launched Dashboard Designer using the BI page</li>
<li>From there, I attempted to access the cube in a PerformancePoint dashboard, per <a href="http://technet.microsoft.com/en-us/library/ff191197.aspx">Microsoft</a>'s instructions</li>
<ul>
<li>Run Dashboard Designer</li>
<li>Create</li>
<li>Data Source</li>
<li>Analysis Services</li>
<li>Use the following connection:  http://sharepoint/Documents/localpivot.xlsx</li>
</ul>
</ul>
<p>I left the authentication as default and received the following errors:
<ul>
<li>You do not have permissions to see this data or the server is unavailable. Additional details have been logged for your administrator. Contact the administrator for more details.</li>
<li>An error occurred connecting to this data source. Please check the data source for any unsaved changes and click on Test Data Source button to confirm connection to the data source.</li>
</ul>
<p>Supposedly, <a href=http://social.technet.microsoft.com/Forums/en-US/ppsmonitoringandanalytics/thread/2a8a53f6-0649-494b-aac8-221ca58e1856>installing ASADOMD10</a> from the SQL Server 2008 R2 Feature Pack would fix the issue, but it didn't. This farm is running on my local workstation, so I check Event Viewer and see: <font color=red>The Unattended Service Account "AD\yo.momma" does not have access to the server specified by the data source connection string.</font> But.. but.. I'm the administrator of this whole thing. I 0wn this farm, what gives? So I check the IIS log:</p>
<div class="dirtycodenoclick"><code>2012-03-06 18:52:33 127.0.0.1 POST /_vti_bin/client.svc/ProcessQuery - 80 - 127.0.0.1 - 401 2 5 0<br />
2012-03-06 18:52:33 127.0.0.1 POST /_vti_bin/client.svc/ProcessQuery - 80 - 127.0.0.1 - 401 1 2148074254 0<br />
2012-03-06 18:52:33 127.0.0.1 POST /_vti_bin/client.svc/ntlm/ProcessQuery - 80 AD\yo.momma 127.0.0.1 - 200 0 0 343<br />
2012-03-06 18:52:33 127.0.0.1 POST /_vti_bin/PPS/PPSAuthoringService.asmx - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.5448) 401 1 2148074254 0<br />
2012-03-06 18:52:33 127.0.0.1 POST /_vti_bin/PPS/PPSAuthoringService.asmx - 80 AD\yo.momma 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.5448) 200 0 0 15<br />
2012-03-06 18:52:33 127.0.0.1 POST /_vti_bin/PPS/PPSAuthoringService.asmx - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.5448) 401 2 5 0<br />
2012-03-06 18:52:41 172.16.0.125 POST /_vti_bin/PowerPivot/redirector.svc/ DataSource=%2FDocuments%2Flocalpivot.xlsx 80 - 172.16.0.125 ADOMD.NET 401 2 5 0<br />
2012-03-06 18:52:41 172.16.0.125 POST /_vti_bin/PowerPivot/redirector.svc/ DataSource=%2FDocuments%2Flocalpivot.xlsx 80 - 172.16.0.125 ADOMD.NET 401 1 2148074254 0</code></div>
<p><br/><br />
You can see the myriad <b>403 Forbidden</b> -- maybe it's some messed up NTLM permissions? So I check <b>/_vti_bin/PowerPivot/</b> and, voila! The files don't exist. </p>
<p>That's not a Forbidden, that's really a 404 Not Found. <b>I never even installed PowerPivot for SharePoint in the first place</b>. You can enable references to it around SharePoint if I recall, but the service is part of the SQL Server install. Well, damn. </p>
<p>I decided to start entirely from scratch by removing my workstation from the farm, and uninstalling the two versions of SQL Server, Express and Denali CTP, on my workstation. Then I setup a new farm using SQL Server's Installation interface (I didn't even realize I could do that, bad admin!) I won't lie..the install was so clean -- it created the local Central Admin instance as well as a new Site Collection with all the PowerPivot features already enabled. Delicious.</p>
<p>If the above was not your issue, you may need to:
<ul>
<li>Make sure SQL Server PowerPivot is setup as a Service Application: Central Admin -> Manage Service Applications
<li>Make sure it's associated with the web app: Centeral Admin -> Application Management -> Configure Service Application Associations -> Application Proxies
<li>Make sure the PowerPivot Service has started: Central Admin -> Manage services on server</ul>
<p> Also, check your Event Viewer logs, that's been helpful for me. </p>
<img src="http://feeds.feedburner.com/~r/netnerdsnet/~4/6s2F966KVmE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netnerds.net/2012/03/solved-powerpivot-for-sharepoint-2010-an-error-occurred-connecting-to-this-data-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.netnerds.net/2012/03/solved-powerpivot-for-sharepoint-2010-an-error-occurred-connecting-to-this-data-source/</feedburner:origLink></item>
	</channel>
</rss>

