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

<channel>
	<title>Andy's Techie Blog &#187; Office</title>
	<atom:link href="http://andyparkes.co.uk/blog/index.php/category/office/feed/" rel="self" type="application/rss+xml" />
	<link>http://andyparkes.co.uk/blog</link>
	<description>Professional Geek</description>
	<lastBuildDate>Tue, 07 Feb 2012 21:40:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Word 2010&#8211;Double Sided Printing Option Missing</title>
		<link>http://andyparkes.co.uk/blog/index.php/2011/06/22/word-2010double-sided-printing-option-missing/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2011/06/22/word-2010double-sided-printing-option-missing/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 14:38:59 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Word]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/index.php/2011/06/22/word-2010double-sided-printing-option-missing/</guid>
		<description><![CDATA[I’m failing at blogging big time at the moment. I’ve had several ideas for posts recently but I seem to start them and can’t finish them. Anyway, this one seemed to write itself so hopefully it’ll be a bit of a kick start! I took a call earlier in the week as someone wanted to [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2011%2F06%2F22%2Fword-2010double-sided-printing-option-missing%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2011%2F06%2F22%2Fword-2010double-sided-printing-option-missing%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p>I’m failing at blogging big time at the moment. I’ve had several ideas for posts recently but I seem to start them and can’t finish them.</p>
<p>Anyway, this one seemed to write itself so hopefully it’ll be a bit of a kick start!</p>
<p>I took a call earlier in the week as someone wanted to print on both sides of the page while using Word 2010.</p>
<p>This is what she was expecting to see in the print options.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2011/06/image.png"><img style="background-image: none; border-right-width: 0px; margin: 7px 12px 7px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2011/06/image_thumb.png" width="359" height="331" /></a></p>
<p>&#160;</p>
<p>As you can see there are options to flip on either the long edge or the short edge. </p>
<p>This is what she was seeing instead. </p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2011/06/image1.png"><img style="background-image: none; border-right-width: 0px; margin: 7px 12px 7px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2011/06/image_thumb1.png" width="364" height="282" /></a></p>
<p>&#160;</p>
<p>My first thought was that the duplex option hadn’t been enabled on the printer driver but this wasn’t the case. Clicking through to the printer properties allowed the user to choose double sided printing which came out as expected.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2011/06/image2.png"><img style="background-image: none; border-right-width: 0px; margin: 7px 12px 7px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2011/06/image_thumb2.png" width="228" height="188" /></a></p>
<p>I’d like to say I could take the credit for figuring this out but a search helped me out. </p>
<p><a href="http://social.technet.microsoft.com/Forums/en-US/officesetupdeploy/thread/d6ba7534-96d4-494f-a961-e9ae7d3dce2b/">I found this thread</a> on a Microsoft support forum which detailed the same problem.</p>
<p>It suggested the cause was down to a missing DLL </p>
<blockquote><p>c:\windows\system32\prntvpt.dll</p>
</blockquote>
<p>It was indeed not the system.</p>
<p>I upgraded the .NET framework on the PC to version 4 but this still didn’t solve the problem </p>
<p>The thread suggested two other options,</p>
<p>1) Uninstall .Net Framework and reinstall.</p>
<p>2) Copy the dll from another PC.</p>
<p>I went for option 2.</p>
<p>I found a PC that was on the same .NET version, copied the DLL and ran the following from a command prompt</p>
<blockquote><p>REGSVR32 c:\windows\system32\prntvpt.dll</p>
</blockquote>
<p>I reopened Word 2010 and the double sided options reappeared. </p>
<p>This was a Windows XP system but I’m pretty sure the same thing would apply for Vista/Windows 7.</p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2011/06/22/word-2010double-sided-printing-option-missing/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2011/06/22/word-2010double-sided-printing-option-missing/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2011/06/22/word-2010double-sided-printing-option-missing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Outlook 2010 &#8211; Auto Complete Files</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/06/28/outlook-2010-auto-complete-files/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/06/28/outlook-2010-auto-complete-files/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 17:21:44 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Outlook]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/index.php/2010/06/28/outlook-2010-auto-complete-files/</guid>
		<description><![CDATA[Just a quick one as a reminder as it caught me out! You’re probably aware that Outlook stores the names that appear when you type a mail recipient in an .NK2 file. In the past when moving a user between PCs all we needed to do with grab the .NK2 file from the old PC [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F06%2F28%2Foutlook-2010-auto-complete-files%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F06%2F28%2Foutlook-2010-auto-complete-files%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p>Just a quick one as a reminder as it caught me out!</p>
<p>You’re probably aware that Outlook stores the names that appear when you type a mail recipient in an .NK2 file. </p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/06/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/06/image_thumb.png" width="362" height="88" /></a> </p>
<p>In the past when moving a user between PCs all we needed to do with grab the .NK2 file from the old PC and copy it to the new PC.</p>
<p>Turns out Outlook 2010 doesn’t use an NK2 file anymore!</p>
<p>If you’re using Outlook 2010 look at your contacts folders. You should see a folder called “Suggested Contacts”</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/06/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/06/image_thumb1.png" width="235" height="140" /></a> </p>
<p>This where the names are now stored. </p>
<p>The idea is that you can easily manage them and more importantly because the names are stored in your mailbox they will follow you around on different PCs. </p>
<p>So the main thing is how do you transfer them across from an old PC running an older version of Outlook?</p>
<p>There is a Microsoft Knowledgebase article detailing the whole <a href="http://support.microsoft.com/kb/980542">thing here</a>.</p>
<p>Simply put,</p>
<p>Outlook has a command line flag “/importNK2”.</p>
<p>Grab the NK2 file on the old PC from one of the following locations.</p>
<ul>
<li>Windows XP      <br /><var>Drive</var>:\Documents and Settings\Username\Application Data\Microsoft\Outlook </li>
<li>Windows Vista and later versions      <br /><var>Drive</var>:\Users\Username\AppData\Roaming\Microsoft\Outlook</li>
</ul>
<p>Browse to the folder <strong><em>“%appdata%\Microsoft\Outlook”</em></strong></p>
<p>Make sure the NK2 file is in that folder and the filename matches your Outlook profile name.</p>
<p>e.g <em>Andy.NK2</em></p>
<p>Run Outlook with the switc</p>
<p>Outlook.exe /importNK2</p>
<p>Done!</p>
<p>The KB article says that the import process renames the file with a .file extension but this didn’t seem to happen when I did it. (though it might have just been me!)</p>
<p><em>Note if you perform an upgrade from an old version of Outlook to Outlook 2010 this should have been done for you automatically</em></p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/06/28/outlook-2010-auto-complete-files/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/06/28/outlook-2010-auto-complete-files/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/06/28/outlook-2010-auto-complete-files/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Andy and SharePoint @ June AMITPRO Meeting</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/06/02/andy-and-sharepoint-june-amitpro-meeting/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/06/02/andy-and-sharepoint-june-amitpro-meeting/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 21:30:44 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[AMITPRO]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[SBS Community]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/index.php/2010/06/02/andy-and-sharepoint-june-amitpro-meeting/</guid>
		<description><![CDATA[Yeah i know….me again. We’ve had a speaker drop out at short notice so I’m going to speaking at AMITPRO this month. The topic is one you’ll probably know is something I quite like talking about – SharePoint! My presentation will be titled – SharePoint as a Helpdesk I’ve had the idea for the while [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F06%2F02%2Fandy-and-sharepoint-june-amitpro-meeting%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F06%2F02%2Fandy-and-sharepoint-june-amitpro-meeting%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p>Yeah i know….me again. </p>
<p>We’ve had a speaker drop out at short notice so I’m going to speaking at AMITPRO this month. The topic is one you’ll probably know is something I quite like talking about – SharePoint!</p>
<p>My presentation will be titled – <strong>SharePoint as a Helpdesk</strong></p>
<p>I’ve had the idea for the while so it’s something <a href="http://www.twitter.com/GuyGregory">Guy</a> and I have been sort of keeping in reserve just in case we had any issues with speakers so I finally get to roll it out this month.</p>
<p>So what exactly do I mean by SharePoint as a Helpdesk?</p>
<p>One thing I’ve found when talking to other partners is that because SharePoint is such a flexible (large?) product is that many of them find it difficult to get into quickly. I can understand this as it can be an awful lot to take in.</p>
<p>However, I really do think many partners are missing out on revenue opportunities because of this! Now that don’t necessarily mean you need to instantly became a master in SharePoint but if you have a basic understanding of what it can do then you can always partner with a company that does if you have a client who might benefit from such a solution. </p>
<p>Partnering with other companies is something SBSC partners are good at!</p>
<p>So….what I’m going to try to do in the time I’ll have is to create a basic helpdesk. All IT companies know what a helpdesk is and what sort of functionality it needs so we can create a quick and dirty SharePoint application that showcases what SharePoint can do.</p>
<p>I’ll be touching on,</p>
<blockquote><p>Lists and Libraries.</p>
<p>Columns and Views.</p>
<p>Content Types and E-mail Integration.</p>
<p>Web Part Pages and Web Parts. </p>
<p>SharePoint designer and Workflows.</p>
<p>Office integration and Mobile access</p>
<p>And if there is time another topic I like to shout about…InfoPath <img src='http://andyparkes.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
</blockquote>
<p>Time depending of course!</p>
<p>Our other speaker is Dell Quinn from Microsoft. </p>
<p>She’s going to talk about the changes to the Microsoft Partner Network and how it’ll impact Small Business Specialists.</p>
<p>All this as well as the usual pre and post event banter that goes on at any AMITPRO event!</p>
<p>As always guests are more than welcome. If you’ve never attended a user group event we’ve love for you to come along. </p>
<p>If you’d like to know more than leave a comment here, visit the <a href="http://www.amitpro.org">AMITPRO site</a> or get in touch <a href="http://andyparkes.co.uk/blog/index.php/contact/">with me directly</a> (or <a href="http://www.twitter.com/AndyParkes">on Twitter</a>)</p>
<p>Look forward to seeing you there!</p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/06/02/andy-and-sharepoint-june-amitpro-meeting/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/06/02/andy-and-sharepoint-june-amitpro-meeting/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/06/02/andy-and-sharepoint-june-amitpro-meeting/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SharePoint as a Twitter Client. Sort of &#8211; Part Five</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/05/21/sharepoint-as-a-twitter-client-sort-of-part-five/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/05/21/sharepoint-as-a-twitter-client-sort-of-part-five/#comments</comments>
		<pubDate>Fri, 21 May 2010 04:30:00 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/?p=762</guid>
		<description><![CDATA[In part four I mentioned that there would be a problem in the future with this solution. In the second part of this series we created a simple function that generated a HTTP request to send to the Twitter API. As part of that request we sent a username and password. This known as “basic [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F21%2Fsharepoint-as-a-twitter-client-sort-of-part-five%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F21%2Fsharepoint-as-a-twitter-client-sort-of-part-five%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://andyparkes.co.uk/blog/index.php/2010/05/14/sharepoint-as-a-twitter-client-sort-of-part-four/">In part four</a> I mentioned that there would be a problem in the future with this solution.</p>
<p>In the second part of this series we created a simple function that generated a HTTP request to send to the Twitter API.</p>
<p>As part of that request we sent a username and password. </p>
<p>This known as “basic authentication”</p>
<p>Unfortunately just after I got this working the Twitter development team <a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/f71eb68600996af8?pli=1">announced on google groups</a> they are dropping support for basic authentication. </p>
<blockquote><p>our plan is to turn off basic authorization on the API by june 30, 2010 &#8212; developers will have to switch over to OAuth by that time.&#160; between now and then, there will be a *lot* of information coming along with tips on how to use OAuth Echo, xAuth, etc.&#160; we really want to make this transition as easy as we can      <br />for everybody.</p>
</blockquote>
<p>Twitter even created a site called <a href="http://www.countdowntooauth.com/">“Countdown to oAuth”</a></p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image6.png" rel="lightview"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image_thumb6.png" width="365" height="246" /></a> </p>
<p>I can understand why Twitter have done this as it’ll make the system far more secure. </p>
<p>Unfortunately this breaks my solution so I’ll need to take a look to see how i can use a different authentication method. </p>
<p>I’ve got till the end of June so hopefully I’ll get something sorted soon!</p>
<p>Just one final post on the way to wrap this up.</p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/05/21/sharepoint-as-a-twitter-client-sort-of-part-five/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/05/21/sharepoint-as-a-twitter-client-sort-of-part-five/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/05/21/sharepoint-as-a-twitter-client-sort-of-part-five/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint as a Twitter Client. Sort of – Part Four</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/05/14/sharepoint-as-a-twitter-client-sort-of-part-four/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/05/14/sharepoint-as-a-twitter-client-sort-of-part-four/#comments</comments>
		<pubDate>Fri, 14 May 2010 20:00:35 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/?p=759</guid>
		<description><![CDATA[In part three I said there was bit of functionality left to clear up. We have to run the process manually. We actually did a little bit of the ground work in part two. One of the pieces of code was the main function that brings all the bits and pieces together – it was [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F14%2Fsharepoint-as-a-twitter-client-sort-of-part-four%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F14%2Fsharepoint-as-a-twitter-client-sort-of-part-four%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://andyparkes.co.uk/blog/index.php/2010/05/12/sharepoint-as-a-twitter-client-sort-of-part-three/">In part three</a> I said there was bit of functionality left to clear up.</p>
<p><em>We have to run the process manually. </em></p>
<p>We actually did a little bit of the ground work in <a href="http://andyparkes.co.uk/blog/index.php/2010/05/01/sharepoint-as-a-twitter-client-sort-of-part-two/">part two</a>. </p>
<p>One of the pieces of code was the main function that brings all the bits and pieces together – it was called <strong>“Fetch_Tweets”</strong></p>
<blockquote><p>Public Function Fetch_Tweets() As String </p>
<p>Dim strID As String      <br />Dim strXML As String </p>
<p>If Get_Settings = False Then      <br />&#160;&#160;&#160; Debug.Print &quot;Couldn’t get settings&quot;       <br />&#160;&#160;&#160; End       <br />End If</p>
<p>strID = Get_Last_Tweet_ID      <br />strXML = Get_Latest_Tweets(strScreenName, strUserName, strPassword, strID) </p>
<p>SaveTmpXML strXML </p>
<p>Application.ImportXML strTempFile, acAppendData</p>
<p>Tidy_User_table </p>
<p>End Function</p>
</blockquote>
<p>&#160;</p>
<p>Take a look at the first word of this code block. </p>
<p><strong>PUBLIC</strong></p>
<p>By adding this we can reference the function outside of Access so I put together a vbscript to run the function. (essentially…programmer types will argue this isn’t what <em>Public</em> means but for the layman it’ll do here!)</p>
<blockquote><p>Dim TweetDB      </p>
<p>TweetDB = &quot;C:\TweetPoint\Twitter.ACCDB&quot;     </p>
<p>Dim myAccess      <br />Set myAccess = CreateObject(&quot;Access.Application&quot;) </p>
<p>myAccess.OpenCurrentDatabase TweetDB, False     <br />myAccess.AutomationSecurity = msoAutomationSecurityForceDisable </p>
<p>myAccess.Run(&quot;Fetch_Tweets&quot;) </p>
<p>myAccess.CloseCurrentDatabase     <br />myAccess.Quit acQuitSaveNone      <br />Set myAccess = Nothing      </p>
</blockquote>
<p>&#160;</p>
<p>So just breaking this down.</p>
<p>The vbscript is essentially doing exactly the same as if you were running this manually.</p>
<p>First we create an instance of Access. (The same as opening the application)</p>
<p>Then we open the database we need.</p>
<p>Then we tell Access to run our “Fetch_Tweets” function.</p>
<p>The we close the database and close the application.</p>
<p>Simple!</p>
<p>The only caveat here is macro security. If you have your security in Access set to high or prompt then the vbscript won’t work.</p>
<p>Since I’m just doing this a proof of concept I turned the macro security off. </p>
<p>You’ll need to make your own decision about how to deal with this. </p>
<p>One suggestion though is to look at something called “Trusted Locations”</p>
<p><a href="http://office.microsoft.com/en-us/help/HA100319991033.aspx">This article explains how to set that up.</a></p>
<p>We can then take this vbscript and run it as a scheduled task to run as often as you need.</p>
<p>The major downside to this is that the system that will run the vbscript will need to have Access installed. </p>
<p>I don’t think the Access runtime would be enough (I only tried it very briefly)</p>
<p>So that’s all of our basic functionality problems sorted</p>
<p>We can ask Twitter to return the tweets for a given person, have them displayed in a SharePoint list automatically and it will be intelligent enough to not give us duplicates.</p>
<p>I’ll follow this up with a couple of posts that shows how to add a little more polish and cover a problem that I’ll need to look at going forward. I haven’t figured out what to do about it yet though!</p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/05/14/sharepoint-as-a-twitter-client-sort-of-part-four/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/05/14/sharepoint-as-a-twitter-client-sort-of-part-four/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/05/14/sharepoint-as-a-twitter-client-sort-of-part-four/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SharePoint as a Twitter Client. Sort of &#8211; Part Three</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/05/12/sharepoint-as-a-twitter-client-sort-of-part-three/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/05/12/sharepoint-as-a-twitter-client-sort-of-part-three/#comments</comments>
		<pubDate>Wed, 12 May 2010 03:20:52 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/index.php/2010/05/12/sharepoint-as-a-twitter-client-sort-of-part-three/</guid>
		<description><![CDATA[Following on from part two I commented that there were a couple of issues outstanding, It doesn’t automatically update the SharePoint list. We have to repeat the list creation process every time. We have to run the process manually.&#160; &#160; This post will cover the first item on the list and is really straight forward. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F12%2Fsharepoint-as-a-twitter-client-sort-of-part-three%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F12%2Fsharepoint-as-a-twitter-client-sort-of-part-three%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://andyparkes.co.uk/blog/index.php/2010/05/01/sharepoint-as-a-twitter-client-sort-of-part-two/">Following on from part two</a> I commented that there were a couple of issues outstanding,</p>
<ol>
<li>It doesn’t automatically update the SharePoint list. We have to repeat the list creation process every time.</li>
<li>We have to run the process manually.&#160; </li>
</ol>
<p>&#160;</p>
<p>This post will cover the first item on the list and is really straight forward.</p>
<p><a href="http://andyparkes.co.uk/blog/index.php/2010/04/20/sharepoint-as-a-twitter-client-sort-of-part-one/">Go back to the first post</a> and make sure that you have created your list on your SharePoint site by exporting it. (Go now, I’ll wait).</p>
<p>Once it’s done in the Access Database delete the “status” table (or rename it if you want to play it safe).</p>
<p>Then from the “External Data” tab select the option to “Import SharePoint List”.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image_thumb.png" width="244" height="127" /></a> </p>
<p>The wizard will start – enter your site name and select the option.</p>
<p>“Link to the data source by creating a linked table”.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image1.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image_thumb1.png" width="475" height="264" /></a> </p>
<p>Click Next to display the lists you can import.</p>
<p>Choose the list (I’ve called mine “TweetPoint” – think it’ll catch on?)</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image2.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image_thumb2.png" width="403" height="295" /></a> </p>
<p>Click OK to link the list.</p>
<p>You’ll then see the SharePoint list alongside the other Access tables.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image3.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image_thumb3.png" width="244" height="146" /></a> </p>
<p>User Information List is also linked as this holds user information which will be entered onto the list for things such as the “Created by” field.</p>
<p>Now the clever bit to hook it up to our Twitter API calls.</p>
<p>Bear with me because this is really complex <img src='http://andyparkes.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Right click on your newly imported list and select the rename option</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image4.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image_thumb4.png" width="244" height="170" /></a> </p>
<p>Change the name to “status”</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image5.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/05/image_thumb5.png" width="244" height="75" /></a></p>
<p>Done! (ok I may have exaggerated how difficult this was) </p>
<p>So what’s actually happened here?</p>
<p>We’ve changed the name that Access uses to reference the table. </p>
<p>In the background it’s still hooked up to SharePoint via it’s URL so any changes we make on the table will automatically be updated on the SharePoint side!</p>
<p>The import process we created in the first post is expecting to append the data to a table called status (since that is what the Twitter API returns) so that is exactly what we’ve provided!</p>
<p>Only one thing left to clear up in the next post!</p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/05/12/sharepoint-as-a-twitter-client-sort-of-part-three/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/05/12/sharepoint-as-a-twitter-client-sort-of-part-three/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/05/12/sharepoint-as-a-twitter-client-sort-of-part-three/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SharePoint as a Twitter Client. Sort of &#8211; Part Two</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/05/01/sharepoint-as-a-twitter-client-sort-of-part-two/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/05/01/sharepoint-as-a-twitter-client-sort-of-part-two/#comments</comments>
		<pubDate>Sat, 01 May 2010 12:33:28 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/?p=743</guid>
		<description><![CDATA[I intended to follow on from part one a bit sooner but it’s been really busy at the office! In part one I gave a brief overview of what I was trying to accomplish and how to get a rough prototype working. While it did the job I highlighted the following limitations. It only fetches [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F01%2Fsharepoint-as-a-twitter-client-sort-of-part-two%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F05%2F01%2Fsharepoint-as-a-twitter-client-sort-of-part-two%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p>I intended to follow on from <a title="SharePoint as a Twitter Client. Sort of – Part One" href="http://andyparkes.co.uk/blog/index.php/2010/04/20/sharepoint-as-a-twitter-client-sort-of-part-one/">part one</a> a bit sooner but it’s been really busy at the office!</p>
<p>In part one I gave a brief overview of what I was trying to accomplish and how to get a rough prototype working.</p>
<p>While it did the job I highlighted the following limitations.</p>
<ol>
<li>It only fetches the last twenty updates – if there have been twenty five updates since you last did it then you’re out of luck. </li>
<li>Conversely, if there have only been a few updates it’ll still fetch the last twenty giving you duplicate items. </li>
<li>There is also the problem of needing to run this manually.&#160; </li>
<li>It doesn’t automatically update the SharePoint list. We have to repeat the list creation process every time.</li>
<li>Finally, it doesn’t deal with protected Twitter accounts at all! </li>
</ol>
<p>&#160;</p>
<p>This post will deal with the items 1, 2 and 5 and is actually pretty easy.</p>
<p>We’re going to use a bit of VBA to make Access a little smarter. I’m not a programmer/developer so if the code looks silly or inefficient….there is a good reason for it!</p>
<p>Also you’ll notice a distinct lack of error handling. This is just an exercise to see if it would work so code is kept to a minimum! </p>
<p>The Twitter API method I used in the previous post had a parameter where you can specify a tweet ID and the API will return all tweets since then.</p>
<p><a title="user_timeline.xml-screen_name=AndyParkes&amp;count=5" href="http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=AndyParkes&amp;since_id=13081868261">http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=AndyParkes&amp;since_id=13081868261</a></p>
<p>So the only difficulty now is actually figuring out what tweet ID to use.</p>
<p>If only we had some sort of list we could query to do this. <img src='http://andyparkes.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Again this is really easy as we’re using Access which is built for the job!</p>
<p>Here’s the bit of SQL I crafted</p>
<p>&quot;SELECT TOP 1 VAL(status.id) as TwitID FROM status ORDER BY VAL(status.id) DESC;&quot;</p>
<p>I’m using the VAL function to convert the tweet ID to a number as I had some weird sorting issues.</p>
<p>I wrapped this is in a VBA function called “Get_Last_Tweet_ID”</p>
<blockquote><p>Function Get_Last_Tweet_ID() As String      <br />Dim db As Database       <br />Dim strSql As String       <br />Dim rstData As DAO.Recordset       <br />Dim strID As String </p>
<p>Set db = CurrentDb()      <br />strSql = &quot;SELECT TOP 1 VAL(status.id) as TwitID FROM status ORDER BY VAL(status.id) DESC;&quot; </p>
<p>Set rstData = db.OpenRecordset(strSql) </p>
<p>&#160;&#160;&#160; If rstData.EOF = False Then      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; strID = rstData(&quot;TwitID&quot;)       <br />&#160;&#160;&#160; Else       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; strID = &quot;&quot;       <br />&#160;&#160;&#160; End If </p>
<p>&#160;&#160;&#160; rstData.Close      <br />&#160;&#160;&#160; Set rstData = Nothing </p>
<p>Get_Last_Tweet_ID = strID </p>
<p>End Function</p>
</blockquote>
<p>&#160;</p>
<p>So this function will simply return a tweet ID we can plug into the API call and it’ll only return the most recent tweets. If the function returns an empty string we just don’t bother to run the API call.</p>
<p>The next question you’re probably asking is HOW do you run the API call?</p>
<p>Remember the wizard we ran in the last post to import the XML? All that wizard does is use a VBA function called ImportXML</p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb237973.aspx">The syntax is simple</a></p>
<p><strong>Application.ImportXML(<em>DataSource</em>, <em>ImportOptions</em>)</strong></p>
<p>The parameters are the same options asked for by the wizard.</p>
<p>A data source and whether you want to import the data, the structure or both.</p>
<p>That’s the first part – but since I want to be able to take protected accounts into consideration we can’t just drop a URL straight in as the data source (where would you put your username and password!)</p>
<p>So we’ll just fashion the request ourselves.</p>
<p>We’re sending a <em>request</em> to a <em>web service </em>to get <em>response </em>back with some <em>XML </em>so the object we’ll use is XMLHTTP and it will send a GET request to the Twitter API which should throw back a chunk of XML.</p>
<blockquote><p>Function Get_Latest_Tweets(strScreenName As String, strUser As String, strPassword As String, strLastID As String) As String </p>
<p>Dim myXML As MSXML2.XMLHTTP     <br />Set myXML = New MSXML2.XMLHTTP </p>
<p>If strLastID = &quot;&quot; Then </p>
<p>&#160;&#160;&#160; myXML.Open &quot;GET&quot;, &quot;<a href="http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=&quot;">http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=&quot;</a> &amp; strScreenName, &quot;False&quot;,&#160;&#160;&#160;&#160; strUser, strPassword      <br />Else </p>
<p>&#160;&#160;&#160; myXML.Open &quot;GET&quot;, &quot;<a href="http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=&quot;">http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=&quot;</a> &amp; strScreenName &amp;&#160;&#160;&#160;&#160; &quot;&amp;since_id=&quot; &amp; strLastID, &quot;False&quot;, strUser, strPassword      <br />End If </p>
<p>myXML.send </p>
<p>Get_Latest_Tweets = myXML.responseText </p>
<p>End Function</p>
</blockquote>
<p><em>Note: Depending on what you have on your machine you may need to use “Microsoft.XMLHTTP” instead.</em></p>
<p>This function takes a couple of parameters, the ScreenName of the Twitter account to retrieve, a username and password for authentication and a Tweet ID.</p>
<p>We check to see if we passed an ID. If not then don’t use the “since_id” parameter and just fetch the last 20 tweets (the default). We could add an extra parameter to fetch a specific number of tweets.</p>
<p>We then send the response and the function returns a string containing some XML.</p>
<p>Now that we have our XML from Twitter what now?</p>
<p>Since the ImportXML wizard requires a file to work with we need to save the XML to disk.</p>
<blockquote><p>Sub SaveTmpXML(strXML As String)     <br />&#160;&#160;&#160;&#160; &#8216; Load the XML      <br />&#160;&#160;&#160;&#160; Dim xmlDoc      <br />&#160;&#160;&#160;&#160; Set xmlDoc = CreateObject(&quot;Microsoft.XMLDOM&quot;)      <br />&#160;&#160;&#160;&#160; xmlDoc.async = &quot;false&quot;      <br />&#160;&#160;&#160;&#160; xmlDoc.loadXML strXML      <br />&#160;&#160;&#160; xmlDoc.Save strTempFile      <br />End Sub</p>
</blockquote>
<p>&#160;</p>
<p>This is a really simple procedure. We pass the XML to it, create an XMLDOM object, load the XML string and save it disk. I used a global variable for the filename so I can specify a temp path in an options table which I’ll cover later.</p>
<p>Finally we can import the XML into our table,</p>
<blockquote><p>Public Function Fetch_Tweets() As String </p>
<p>Dim strID As String     <br />Dim strXML As String </p>
<p>If Get_Settings = False Then     <br />&#160;&#160;&#160; Debug.Print &quot;Couldn&#8217;t get settings&quot;      <br />&#160;&#160;&#160; End      <br />End If</p>
<p>strID = Get_Last_Tweet_ID     <br />strXML = Get_Latest_Tweets(strScreenName, strUserName, strPassword, strID) </p>
<p>SaveTmpXML strXML </p>
<p>Application.ImportXML strTempFile, acAppendData</p>
<p>Tidy_User_table     </p>
<p>End Function</p>
</blockquote>
<p>&#160;</p>
<p>This a wrapper function that calls all the code I’ve outlined above.</p>
<p>We find the last Tweet ID, fetch the tweets from Twitter, save them to an XML file and finally import them into our table.</p>
<p>You’ll notice the <em>Get_Settings</em> and <em>Tidy_User_Table </em>procedure calls, I’ll also cover those in a later post.</p>
<p>You could hook this wrapper function up to a button on a form. Once clicked it would update the table in the database with the latest tweets. </p>
<p>I think that’s all three issues solved. We now only fetch exactly the tweets we need and can work easily with protected tweets (Twitter recently announced a change that will break this but I’ll cover that in an upcoming post)</p>
<p>I’ll get part three together a bit sooner!</p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/05/01/sharepoint-as-a-twitter-client-sort-of-part-two/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/05/01/sharepoint-as-a-twitter-client-sort-of-part-two/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/05/01/sharepoint-as-a-twitter-client-sort-of-part-two/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SharePoint as a Twitter Client. Sort of &#8211; Part One</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/04/20/sharepoint-as-a-twitter-client-sort-of-part-one/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/04/20/sharepoint-as-a-twitter-client-sort-of-part-one/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 08:07:39 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/?p=714</guid>
		<description><![CDATA[This is going to be quite lengthy so I’ll split into a couple of posts. Back in March, Mark Wilson of MarkWilson.co.uk (if you’re not reading his blog….go check it out now!) asked the following on Twitter. Does anyone know how to read XML (i.e. Twitter updates) into a SharePoint List (not the XML webpart [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F04%2F20%2Fsharepoint-as-a-twitter-client-sort-of-part-one%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F04%2F20%2Fsharepoint-as-a-twitter-client-sort-of-part-one%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p>This is going to be quite lengthy so I’ll split into a couple of posts.</p>
<p>Back in March, Mark Wilson of <a href="http://www.markwilson.co.uk/">MarkWilson.co.uk</a> (if you’re not reading his blog….go check it out now!) asked the following on Twitter.</p>
<blockquote><p><a href="http://twitter.com/markwilsonit/status/10365398953http://twitter.com/markwilsonit/status/10365398953">Does anyone know how to read XML (i.e. Twitter updates) into a SharePoint List (not the XML webpart reading it dynamically)?</a></p>
</blockquote>
<p>Since I like a challenge I decided to take a look at it.</p>
<p>If you search (using your favourite search engine) for Twitter and SharePoint you’ll find one of two things.</p>
<p>Either, examples of how to use a webpart to grab the RSS feed of someone’s Twitter status or people creating a Twitter-like application using SharePoint (which is pretty cool anyway).</p>
<p>What Mark was looking for was something slightly different.</p>
<p>He wanted to collect posts from a specific user into a SharePoint list. In effect creating an archive that a team could view. They could even use SharePoint to create views to look for keywords.</p>
<p>This meant the webpart wouldn’t do as it only shows a snapshot of the current status updates. If the particular user tweets quite a lot you could miss stuff.</p>
<p>Mark initially pointed me in the direction of the RSS feeds for each user (<a href="http://twitter.com/statuses/user_timeline/39236354.rss">here&#8217;s mine</a>) but this gives us a similar problem to the webpart as it only shows the last 20 tweets.</p>
<p>This was when I stepped out of my comfort zone and started looking at the <a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter API</a>&#160;</p>
<p>It turns out the Twitter API isn’t actually very complicated. All you need to do is craft a URL to pass certain parameters and it’ll throw some XML back at you.</p>
<p>For example,</p>
<p>This url will retrieve an XML file containing my last five tweets. </p>
<p><a href="http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=AndyParkes&amp;count=5">http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=AndyParkes&amp;count=5</a> (you can click this even if you don’t have a Twitter account. Authentication is only needed for protected accounts)</p>
<p>So I’d now found a way of grabbing the tweets…but how to get them into a SharePoint list?</p>
<p><strong>IF</strong> I were a SharePoint developer armed with a copy of Visual Studio I actually don’t think this would be all that difficult to do. (you’ll see why in one of the later parts to this post)</p>
<p>However, since I’m not I need to make use of the tools at my disposal.</p>
<p>I had to think of something that can make use of XML but also talk to SharePoint and the answer is….</p>
<p><strong>Microsoft Access </strong></p>
<p>Yep..seriously.</p>
<p>Access has the ability to import XML files into a table.</p>
<p>Access also has the ability to link to a SharePoint list and update it.</p>
<p>By putting these two bits of functionality together I was actually able to reach the desired effect.</p>
<p>You can try it yourself.</p>
<p>Open Access and create a new blank database.</p>
<p>Click the External Data tab and choose XML file.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image14.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb14.png" width="304" height="106" /></a> </p>
<p> Access 2010 screenshot – procedure is similar in Access 2007 though</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Enter your API URL into the file name field. The URL I’m using will return my last 20 tweets</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image15.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb15.png" width="549" height="404" /></a> </p>
<p>You’ll be prompted to verify the import</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image16.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb16.png" width="377" height="360" /></a> </p>
<p>&#160;</p>
<p>Choose structure and data first time round so you actually create the tables</p>
<p>On subsequent runs you can just append the data</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Done…you can save the import steps if you want so you can repeat this without going through the whole wizard again.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image17.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb17.png" width="429" height="146" /></a> </p>
<p>I’ve now got my last 20 tweets into an Access database. </p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image18.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb18.png" width="582" height="245" /></a> </p>
<p>You’ll notice there are actually two tables created. </p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image19.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb19.png" width="244" height="152" /></a> </p>
<p>&#160;</p>
<p> Status contains the tweets.</p>
<p> User contains the details about the user this is being pulled from –it’s part of the XML returned.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>So to get it into SharePoint.</p>
<p>Select the status table, click the External Data tab again this time use the Export section and select SharePoint list. </p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image20.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb20.png" width="549" height="263" /></a> </p>
<p>Run through the export wizard.</p>
<p>Choose a destination site.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image21.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb21.png" width="565" height="415" /></a> </p>
<p>You’ll see it creating the tables.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image22.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb22.png" width="244" height="79" /></a> </p>
<p>Done!</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image23.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb23.png" width="483" height="165" /></a> </p>
<p>You can then browse to your site and view the list!</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image24.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb24.png" width="592" height="217" /></a> </p>
<p>You can also create a view to just show the important fields.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image25.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb25.png" width="589" height="160" /></a> </p>
<p>&#160;</p>
<p>TaDa!……well not quite.</p>
<p>Currently it’s not very dynamic.</p>
<p>All it does is fetch the last 20 updates. If you re-ran the process above again you’d run into problems doing the SharePoint export as the status table already exists you’d end up with multiple lists (eg. status, status_1, status,2)</p>
<p>Also it’s not smart enough to realise that if we already have some tweets in the database we don’t want to re-add those. If you followed the procedure above for a second time you’d also end up with duplicate tweets.</p>
<p>Finally if you tried to put them into chronological order you may notice the sort doesn’t quite work under certain circumstances.</p>
<p>
</p>
</p>
</p>
</p>
</p>
</p>
<p>So in the next part we’ll put Access to work to make this a bit more intelligent and finally automate the whole thing so it’ll fetch the tweets all by itself!</p></p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/04/20/sharepoint-as-a-twitter-client-sort-of-part-one/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/04/20/sharepoint-as-a-twitter-client-sort-of-part-one/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/04/20/sharepoint-as-a-twitter-client-sort-of-part-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InfoPath – Errr! What?</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/04/15/infopath-errr-what/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/04/15/infopath-errr-what/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 21:34:42 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/index.php/2010/04/15/infopath-errr-what/</guid>
		<description><![CDATA[I got an email earlier this week from Richard Tubb asking a couple of questions about InfoPath. This is also the same Mr Tubb who has been “nagging” me to post more about InfoPath and SharePoint. I do take his point as I’ve posted very little on the topic since I spoke about it at [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F04%2F15%2Finfopath-errr-what%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F04%2F15%2Finfopath-errr-what%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p>I got an email earlier this week from <a href="http://www.tubblog.co.uk/">Richard Tubb</a> asking a couple of questions about InfoPath.</p>
<p>This is also the same Mr Tubb who has been “nagging” me to post more about InfoPath and SharePoint. I do take his point as I’ve posted very little on the topic since I spoke about it at <a href="http://andyparkes.co.uk/blog/index.php/2009/05/12/infopath-amitpro/">AMITPRO last year</a> (can’t believe it’s been nearly 12 months since that!)</p>
<p>So….InfoPath!!</p>
<p>I’ll talk about InfoPath in the Office 2007 world at the moment. Even though the latest version is upon us the current version will be hanging around for a while. Also the skills are transferrable and I’ll need material for future posts right? <img src='http://andyparkes.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>What is InfoPath?</strong></p>
<p>In a nutshell it’s all about electronic forms.</p>
<p>If you’ve ever created a form in Microsoft Access it’s along similar lines. What’s cool about InfoPath though is that it isn’t tied into a specific database system. It can talk to SQL Server, Access databases, SharePoint (which is is it’s main strength) and more. You can even make use of InfoPath forms within Outlook to gather information via e-mail!</p>
<p>I also think that when stacked up against a form in a Word document InfoPath wins a lot!</p>
<p>InfoPath allows you to do form validation to ensure data is entered correctly. </p>
<p>It’s biggest strength is it’s capability to “unlock” data which a Word document just can’t do. (Unless you want to do a lot of VBA coding)</p>
<p>This means an simple example is in order.</p>
<p>Lets say you had a Word document that your staff used to enter their weekly hours worked.</p>
<p>It might look like this.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb.png" width="382" height="505" /></a> </p>
<p>&#160;</p>
<p> As you can see there is a lot of important information here.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>At the top we have data that lets us know who the time sheet belongs to, and when it’s for.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Moving down we have the actual data itself. </p>
<p><u>The hours worked.</u></p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Finally we have a brief summary of data so you can see at a glance what’s going on.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>So what’s wrong with this? </p>
<p><strong>Data Validation</strong></p>
<p>You would have to trust whoever fills out the form to put a date in right place and numbers in the hours worked fields. What if someone enters 25 hours for single day? What if “Sales” isn’t even the correct name of the department?</p>
<p>Now you can sort of do this in Word 2007. But it’s not exactly simple. In fact, good luck finding how to insert a form field – The developer tab is hidden by default (I’ll explain how to display them in another post). Then you have to contend with “legacy form controls” and the new Office 2007 form controls. Not fun at all!</p>
<p><strong>Calculations</strong></p>
<p>Once again you’d need to trust whoever is filling out the form to get their maths right. As with data validation you can get Word to do calculations on tables but it’s not exactly simple or intuitive!</p>
<p><strong>Trapped Data</strong></p>
<p>This is the biggie! </p>
<p>I’ve only showed you one form. Let’s imagine you’re Mr Anderson’s line manager. Your boss walks up to your desk at 9am Monday morning and tells you that your department is spending a fortune in overtime. He wants to know exactly how many hours your department logged in overtime for the last three months overall and on a per-person basis…..and he wants it for the management meeting at 11am!</p>
<p>So lets say that each person would have 4 timesheets per month. That’s 12 per person. </p>
<p>If your department had 5 people in it that’s 60 Word documents you need to open, read through, check the maths and note the important figures to bring into your total summary. </p>
<p>That’s going to take some time!</p>
<p><strong>How does InfoPath help?</strong></p>
<p>Here’s the same form designed in InfoPath</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image1.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb1.png" width="383" height="540" /></a> </p>
<p> At first glance you’ll notice it’s essentially the same form as before</p>
<p>&#160;</p>
<p>But if you look in the first block of data</p>
<p>You can see a calendar control button. This means I can choose a date with the mouse as well as typing one in. </p>
<p>It won’t let me put anything other than a date in the field.</p>
<p>You’ll also notice all the fields in the first section have a red star next to them. </p>
<p>This because I’ve made them mandatory fields. It’s a little visual notification to remind the user to put some data in. </p>
<p>You also get InfoPath to pop up a little message if no data is entered!</p>
<p>&#160;</p>
<p>The fields that contain the hours worked data also have some validation rules.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>This screenshot shows I’ve tried to enter some text in a numeric field</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image2.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb2.png" width="367" height="93" /></a> </p>
<p>We get the nice red dotted border AND a tooltip to let me know what’s wrong. </p>
<p>What’s really cool about this is that I didn’t even need to set this up. Just by specifying that the field was numeric InfoPath setup the basic validation for me. </p>
<p>Each control has LOTS of options around data validation to make sure we get exactly the correct data in.</p>
<p>You may also have noticed that the department field is a drop down list.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image3.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb3.png" width="324" height="213" /></a> </p>
<p>&#160;</p>
<p>This means that we can ensure that only valid departments are entered. You’ll see why this can be quite important later on.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Also, the data is actually pulled in from a SharePoint list.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image4.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb4.png" width="244" height="213" /></a> </p>
<p>&#160;</p>
<p>This means that these lookup lists can easily be managed without having to edit the InfoPath form. We can also set security on the SharePoint list to ensure only specific people can make changes to the department details.</p>
<p>InfoPath also has rules and events we can work with. We could actually set this up so all the staff names appeared in another drop down and that once a department has been chosen only the staff in that department are shown (or vice versa. You choose your name and your department is automatically filled out)</p>
<p>&#160;</p>
<p>This totally solves the Data Validation problem I mentioned above. </p>
<p>So what about calculation? </p>
<p>Easy!</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image5.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb5.png" width="321" height="405" /></a> </p>
<p>&#160;</p>
<p>Same form as above with the same data entered</p>
<p>However this time the summary data is updated automatically.</p>
<p>I’ve set the summary fields to do a simple bit of addition and then made them read-only so they just work on there own without any user input needed!</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image6.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb6.png" width="290" height="92" /></a> </p>
<p>&#160;</p>
</p>
</p>
<p>Sorted!</p>
<p>Data Validation and Calculation all dealt with quickly and easily. </p>
<p>&#160;</p>
<p>&#160;</p>
<p>I could understand if you were still a little sceptical at this point though. As i said lots of similar functionality is already available all across the Office suite. That brings me onto the final point I made above.</p>
<p><strong>Trapped Data</strong></p>
<p>The real magic happens when this is published to a SharePoint site.</p>
<p>When I published the form I specified that I wanted the summary fields to be pushed through to the SharePoint form library.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image7.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb7.png" width="422" height="129" /></a> </p>
<p>&#160;</p>
<p>This is called <em>“property promotion”.</em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p>Here is the time sheet Tom Anderson just filled out on the SharePoint site.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image8.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb8.png" width="548" height="130" /></a> </p>
<p>I can now see how many hours Mr Anderson worked that week without even opening the file!</p>
<p>Multiply this across the whole team and you can see at a glance what everyone was up to!</p>
<p>Let’s throw a bit of SharePoint magic in.</p>
<p>I’ve grouped by Department and then by Week Commencing Date.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image9.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb9.png" width="536" height="493" /></a> </p>
<p>Can you see why it was important to get the department entry consistent?</p>
<p>We can now get a real overview of the hours entered by each person.</p>
<p>And one finishing touch.</p>
<p>I’ve asked SharePoint to sum the totals fields. </p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image10.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb10.png" width="539" height="452" /></a> </p>
<p>This can look a little confusing your grouping as it gives you overall totals as well as a total at each group level. You’d be better setting up a filtered view to do this.</p>
<p>Something like this.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image11.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb11.png" width="543" height="285" /></a> </p>
<p>I’ve removed a level of grouping and filtered to only show the Sales team. </p>
<p>You can now see really easily over the last two weeks the Sales team have posted 18 hours of overtime. </p>
<p>Just to show off….you could then dump this out to Excel for further analysis.</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image12.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb12.png" width="525" height="371" /></a> </p>
<p>I created that chart with about five clicks of the mouse. Getting that report together for the boss would be nice and simple.</p>
<p>Finally one other cool thing about using SharePoint and InfoPath for a solution like this. </p>
<p>The files themselves are stored in XML format</p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image13.png" rel="lightview"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/04/image_thumb13.png" width="523" height="255" /></a> </p>
<p>This means if yoy needed integration with another system (your accounts package for example) this makes the whole thing a lot easier.</p>
<p>I’ll stop there….this was supposed to be a quick introduction.</p>
<p>If you’ve made it to the bottom of this post thanks for the reading!</p>
<p>This was just one example of how you can use InfoPath in a real world scenario.</p>
<p>There is lots more you can do, especially when you put it together with SharePoint. </p>
<p>For example, imagine having an expenses form tied into a workflow so that management approval is required when a certain monetary threshold is met?</p>
<p>Hopefully this all makes sense and you can see why I’m such a fan of InfoPath! </p>
<p>Please comment if you want me to post more about InfoPath and I’ll be happy to do so <img src='http://andyparkes.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>&#160;</p>
<p><em>*I’ve just noticed all the dates are in US format….I didn’t change the regional settings on my newly created test site…..i’m not re-doing the screen shots though! *</em></p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/04/15/infopath-errr-what/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/04/15/infopath-errr-what/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/04/15/infopath-errr-what/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Office 2010 Versions</title>
		<link>http://andyparkes.co.uk/blog/index.php/2010/01/15/office-2010-versions/</link>
		<comments>http://andyparkes.co.uk/blog/index.php/2010/01/15/office-2010-versions/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 15:07:15 +0000</pubDate>
		<dc:creator>AndyParkes</dc:creator>
				<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[SBS]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://andyparkes.co.uk/blog/index.php/2010/01/15/office-2010-versions/</guid>
		<description><![CDATA[With everything that’s been going on personally and professionally the last few months the newest version of Office sort of skipped by me Sure I installed the “alpha” when it was released on one of my machines but I wasn’t using it full time Yesterday I had to do a rebuild of my main office [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F01%2F15%2Foffice-2010-versions%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fandyparkes.co.uk%2Fblog%2Findex.php%2F2010%2F01%2F15%2Foffice-2010-versions%2F&amp;source=AndyParkes&amp;style=normal&amp;service=TinyURL.com" height="61" width="50" /><br />
			</a>
		</div>
<p>With everything that’s been going on personally and professionally the last few months the newest version of Office sort of skipped by me</p>
<p>Sure I installed the “alpha” when it was released on one of my machines but I wasn’t using it full time</p>
<p>Yesterday I had to do a rebuild of my main office PC so I took the opportunity to install the Beta </p>
<p>This post isn’t about the shiny new features though, it’s about the different suites you’ll be able to purchase</p>
<p>This time around we get four <strong>retail</strong> versions (from the Office 2010 engineering blog)</p>
<ul>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="24%">
<p><b>Office Home and Student<sup>1</sup></b><b></b></p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image002.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image002_thumb.png" width="124" height="152" /></a></p>
</td>
<td valign="top" width="23%">
<p><b>Office Home and Business</b><b></b></p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image004.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image004_thumb.png" width="124" height="152" /></a></p>
</td>
<td valign="top" width="26%">
<p><b>Office Professional&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b><b></b></p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image006.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image006_thumb.png" width="124" height="152" /></a></p>
</td>
<td valign="top" width="25%">
<p><b>Office Professional Academic </b><b></b></p>
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image008.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image008_thumb.png" width="124" height="154" /></a></p>
</td>
</tr>
<tr>
<td valign="top" width="24%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image009.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image009_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Word 2010</b></p>
</td>
<td valign="top" width="23%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0091.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009[1]" border="0" alt="clip_image009[1]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0091_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Word 2010</b></p>
</td>
<td valign="top" width="26%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0092.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009[2]" border="0" alt="clip_image009[2]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0092_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Word 2010</b></p>
</td>
<td valign="top" width="25%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0093.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009[3]" border="0" alt="clip_image009[3]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0093_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Word 2010</b><b></b></p>
</td>
</tr>
<tr>
<td valign="top" width="24%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image010.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image010_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Excel 2010</b></p>
</td>
<td valign="top" width="23%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0101.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010[1]" border="0" alt="clip_image010[1]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0101_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Excel 2010</b></p>
</td>
<td valign="top" width="26%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0102.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010[2]" border="0" alt="clip_image010[2]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0102_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Excel 2010</b></p>
</td>
<td valign="top" width="25%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0103.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010[3]" border="0" alt="clip_image010[3]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0103_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Excel 2010</b><b></b></p>
</td>
</tr>
<tr>
<td valign="top" width="24%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image011.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011" border="0" alt="clip_image011" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image011_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>PowerPoint 2010</b><b></b></p>
</td>
<td valign="top" width="23%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0111.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011[1]" border="0" alt="clip_image011[1]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0111_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>PowerPoint 2010</b><b></b></p>
</td>
<td valign="top" width="26%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0112.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011[2]" border="0" alt="clip_image011[2]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0112_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>PowerPoint 2010</b></p>
</td>
<td valign="top" width="25%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0113.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011[3]" border="0" alt="clip_image011[3]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0113_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>PowerPoint 2010</b></p>
</td>
</tr>
<tr>
<td valign="top" width="24%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image012.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image012_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>OneNote 2010</b><b></b></p>
</td>
<td valign="top" width="23%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0121.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012[1]" border="0" alt="clip_image012[1]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0121_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>OneNote 2010</b></p>
</td>
<td valign="top" width="26%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0122.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012[2]" border="0" alt="clip_image012[2]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0122_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>OneNote 2010</b></p>
</td>
<td valign="top" width="25%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0123.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012[3]" border="0" alt="clip_image012[3]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0123_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>OneNote 2010</b><b></b></p>
</td>
</tr>
<tr>
<td valign="top" width="24%">
<p><b></b></p>
</td>
<td valign="top" width="23%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image013.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image013_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Outlook 2010</b><b></b></p>
</td>
<td valign="top" width="26%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0131.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image013[1]" border="0" alt="clip_image013[1]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0131_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Outlook 2010</b></p>
</td>
<td valign="top" width="25%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0132.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image013[2]" border="0" alt="clip_image013[2]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0132_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Outlook 2010</b><b></b></p>
</td>
</tr>
<tr>
<td valign="top" width="24%">
<p><b></b></p>
</td>
<td valign="top" width="23%">
<p><b></b></p>
</td>
<td valign="top" width="26%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image014.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image014_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Publisher 2010</b></p>
</td>
<td valign="top" width="25%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0141.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image014[1]" border="0" alt="clip_image014[1]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0141_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Publisher 2010</b></p>
</td>
</tr>
<tr>
<td valign="top" width="24%">
<p><b></b></p>
</td>
<td valign="top" width="23%">
<p><b></b></p>
</td>
<td valign="top" width="26%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image015.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image015" border="0" alt="clip_image015" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image015_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Access 2010</b><b></b></p>
</td>
<td valign="top" width="25%">
<p><a href="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0151.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image015[1]" border="0" alt="clip_image015[1]" src="http://andyparkes.co.uk/blog/wp-content/uploads/2010/01/clip_image0151_thumb.jpg" width="23" height="22" /></a><b></b></p>
<p><b>Access 2010</b><b></b></p>
</td>
</tr>
</tbody>
</table>
</ul>
<p>&#160;</p>
<p>On first glance I’m really pleased</p>
<p>OneNote for everybody!!!</p>
<p>However on second glance I’m a bit gutted as you’ll notice that once again there is no InfoPath unless you buy Office via licensing (Office Professional Plus for most businesses)</p>
<p>I <a href="http://andyparkes.co.uk/blog/index.php/2009/03/31/sharepoint-designer-free/">commented before on how I think a lot of smaller businesses</a> are missing out because InfoPath is inaccessible to them </p>
<p>It’s frustrating when we can sell Small Business Server 2008 with one of the key features being the inclusion of SharePoint and then not being able to create some really great solutions because a key piece of software isn’t as easily available. A quick search found Infopath 2007 box product to be somewhere in between £100-£140. Licensing is obviously different but if you’re going down that route you may as well just get Professional Plus</p>
<p>So it’s left to the SBS team to save us! Here’s my idea,</p>
<p>If you ever release SBS 2008 R2 (and I understand that is IF) can we get some InfoPath licenses added to the Premium CALS?&#160; <img src='http://andyparkes.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I know that is unlikely to happen but a guy can wish right?</p>
<div><!-- Wordbooker created FB tags --> <fb:like layout="button_count" show_faces="false" send="false" action="like" font="arial" colorscheme="dark"  href="http://andyparkes.co.uk/blog/index.php/2010/01/15/office-2010-versions/" width="250"></fb:like> <div style="float:right;"><!-- Wordbooker created FB tags --> <fb:share-button class="meta" type="button" href="http://andyparkes.co.uk/blog/index.php/2010/01/15/office-2010-versions/" > </fb:share-button></div></div>]]></content:encoded>
			<wfw:commentRss>http://andyparkes.co.uk/blog/index.php/2010/01/15/office-2010-versions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

