<?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>What's The (Share)Point? &#187; problems</title>
	<atom:link href="http://whatsthesharepoint.com/category/problems/feed/" rel="self" type="application/rss+xml" />
	<link>http://whatsthesharepoint.com</link>
	<description>Another resource for MS SharePoint information.</description>
	<lastBuildDate>Thu, 02 Sep 2010 18:29:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>A(nother) Business Case for Twitter</title>
		<link>http://whatsthesharepoint.com/2010/09/another-business-case-for-twitter/</link>
		<comments>http://whatsthesharepoint.com/2010/09/another-business-case-for-twitter/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 18:29:47 +0000</pubDate>
		<dc:creator>David Petersen</dc:creator>
				<category><![CDATA[problems]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=188</guid>
		<description><![CDATA[<p>I can&#8217;t see why some companies continue to block Twitter access to their employees.  Especially developers.  For me, Twitter has been an invaluable resource.  A wealth of 140 character wisdom.  An constant supply of what is new in the SharePoint (or insert your favorite topic here) world.</p>
<p>This example just happened to me yesterday.  I am [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t see why some companies continue to block Twitter access to their employees.  Especially developers.  For me,<a href="http://www.twitter.com"> Twitter</a> has been an invaluable resource.  A wealth of <a href="http://www.amazon.com/gp/product/1448651506?ie=UTF8&amp;tag=peterssbusyhome&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1448651506">140 character wisdom</a>.  An constant supply of what is new in the SharePoint (or insert your favorite topic here) world.</p>
<p>This example just happened to me yesterday.  I am working for a client that wants me to write a <a href="http://sharepoint.microsoft.com/en-us/Pages/default.aspx">SharePoint 2010</a> workflow using<a href="http://www.k2.com/en/blackpearl.aspx"> K2&#8242;s Blackpearl</a>.  Believe me, I am excited about using Blackpearl but it is a learning curve and I want to be productive.   Normally, I would just fire up Visual Studio and start writing a workflow.  K2 promises that Blackpearl can write complex workflows without code.  I wanted to see if I could figure it out on my own.  I read through the &#8220;My first workflow&#8221; instructions and thought I understood what I needed to do.  I started working through my own requirements when I got stumpted.  I knew what I wanted to do, I just couldn&#8217;t figure out how to tell Blackpearl to do it!</p>
<p>Finally, I sent out a Tweet (and No, I will not tell you how I bypassed corporate firewall filters) asking this simple question:</p>
<p><img class="aligncenter size-full wp-image-189" title="tweet" src="http://whatsthesharepoint.com/wp-content/uploads/2010/09/tweet.png" alt="" width="479" height="79" />I received a reply asking for my contact information and later last night &#8211; I received a detailed email from <a href="http://www.twitter.com/k2onk2">Holly at K2</a> telling me how I could accomplish this.  I searched Google, Bing without any hint on how to do this.  It didn&#8217;t help that I wouldn&#8217;t have understood what I was reading anyway.  Holly&#8217;s instructions were clear and easy to understand.  We&#8217;ve exchanged a couple of emails and she has suggested ways I could fulfill my whole requirement.  I am going to try this but I was so pleased that I wanted to get this post out here so that other companies would think twice about allowing their developers to use tools like Twitter.</p>
<p><img src="file:///C:/Users/dxp/AppData/Local/Temp/moz-screenshot-1.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://whatsthesharepoint.com/2010/09/another-business-case-for-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing OPTIONS with jQuery</title>
		<link>http://whatsthesharepoint.com/2010/05/removing-options-with-jquery/</link>
		<comments>http://whatsthesharepoint.com/2010/05/removing-options-with-jquery/#comments</comments>
		<pubDate>Wed, 19 May 2010 22:41:14 +0000</pubDate>
		<dc:creator>David Petersen</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[problems]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[quest]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[web parts]]></category>

		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=178</guid>
		<description><![CDATA[<p>Here&#8217;s a usability solution that was necessitated by my desire to present a logical, workable solution to my end-user.  I&#8217;m still learning jQuery so my solution may not be the most elegant &#8211; but it works. I welcome any improvements!</p>
The Setup
<p>I have a SharePoint site that is displaying the results of an SQL stored procedure.  [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a usability solution that was necessitated by my desire to present a logical, workable solution to my end-user.  I&#8217;m still learning <a href="http://jquery.com/">jQuery</a> so my solution may not be the most elegant &#8211; but it works. I welcome any improvements!</p>
<h2><span style="color: #0000ff;">The Setup</span></h2>
<p>I have a SharePoint site that is displaying the results of an SQL stored procedure.  I&#8217;m using Quest Web Parts for SharePoint &#8211; qSIListView part which is part of their fine System Integration web parts package.  The great thing about these web parts is that I can create a stored procedure on a database and then use the Filter capabilities of the qSIListView to supply the stored procedure with the parameter values.  It&#8217;s a pretty slick solution and very easy to configure.  My problem  is that when you use the filter fields as the Parameter input fields, only the &#8220;Equals&#8221; operator has any meaning.  I can select <strong>&#8220;Begins with&#8221;</strong> or <strong>&#8220;Contains&#8221;</strong> but it will only just pass the parameter value and not the operator.  That means that my End User will be presented with a lot of false options.  To avoid the confusion, I would like to present the user with one operator -<strong> &#8220;Equals&#8221;</strong>, or in the case where I&#8217;m trying to do some wild card matching in SQL, I would remove all but<strong> &#8220;Contains&#8221;</strong>.  You get my point.  The problem is that the Web Parts do not have the ability to filter out the operator selections.  I&#8217;ve submitted this change idea to Quest for future versions but in the mean time, I needed to find a solution.  My solution was to use <a href="http://jquery.com/">jQuery</a>.</p>
<p><a href="http://whatsthesharepoint.com/wp-content/uploads/2010/05/filterscreen.png"><img class="aligncenter size-medium wp-image-179" title="Filter Screen" src="http://whatsthesharepoint.com/wp-content/uploads/2010/05/filterscreen-300x103.png" alt="Click to enlarge." width="300" height="103" /></a></p>
<h2><span style="color: #0000ff;">Solution</span></h2>
<p>There are many posts out on the web about using <a href="http://jquery.com/">jQuery </a>to manipulate the SharePoint interface.  One of the best sites for <a href="http://jquery.com/">jQuery</a> on SharePoint can be found on <a href="http://www.endusersharepoint.com/">EndUserSharePoint.com</a>.  The solution I am talking about today can be used in any web environment, including SharePoint.  Essentially, my short script removes all &lt;option&gt; elements from all select boxes that match a certain text value.  This effectively narrows the choices presented to the User to only the valid choices, Exclude from search and Equals.</p>
<p>To do this, I placed a Content Editor Web Part (CEWP) onto my page and pasted my script in it.  In the script, I use <a href="http://jquery.com/">jQuery</a> to select all <strong>&lt;OPTION&gt;</strong> elements of the page and remove them if they contain any of the invalid choices.   The script is pretty straight forward.  I have <a href="http://jquery.com/">jQuery</a> stored in a script library on my SharePoint site.  This library provides read-access to all users on the site.  It is also a common place to store all of my scripts.  A good post on creating a script library can be found on <a href="http://www.endusersharepoint.com/2010/01/05/build-a-sharepoint-scripting-resource-center/">here</a>.</p>
<p>Once I load the document, I have search for all matching <strong>&lt;OPTION&gt;</strong> elements and remove them.</p>
<p><code><br />
&lt;script src="http://mysharepointdomain.com/scripts/jquery-1.4.2.min.js" type="text/javascript"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
$(document).ready(function(){<br />
$("option").remove(":contains('Does not equal')");<br />
$("option").remove(":contains('Contains')");<br />
$("option").remove(":contains('Starts with')");<br />
$("option").remove(":contains('Ends with')");<br />
$("option").remove(":contains('Is empty')");<br />
$("option").remove(":contains('Is not empty')");<br />
});<br />
&lt;/script&gt;<br />
</code></p>
<p>That&#8217;s it!  The end result looks like this.</p>
<p><a href="http://whatsthesharepoint.com/wp-content/uploads/2010/05/filterscreen2.png"><img class="aligncenter size-medium wp-image-180" title="Filter Screen fixed" src="http://whatsthesharepoint.com/wp-content/uploads/2010/05/filterscreen2-300x103.png" alt="Click to enlarge." width="300" height="103" /></a></p>
<p>As I said earlier, this is a pretty simple solution to a problem that I was having.  Now, every time I use filter fields to supply parameter values, I can be assured that I have presented my User with valid options.</p>
<p>I welcome any feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://whatsthesharepoint.com/2010/05/removing-options-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL:split-string function</title>
		<link>http://whatsthesharepoint.com/2010/02/xslsplit-string-function/</link>
		<comments>http://whatsthesharepoint.com/2010/02/xslsplit-string-function/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:59:35 +0000</pubDate>
		<dc:creator>David Petersen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[problems]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[display form]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=158</guid>
		<description><![CDATA[<p>One of the reasons I like developing for SharePoint is that I get to work with many different technologies and platforms.  When I am designing a custom list for (display, edit or new), There are times where I may have a delimited string in a field that I want to display differently on the screen. [...]]]></description>
			<content:encoded><![CDATA[<p>One of the reasons I like developing for SharePoint is that I get to work with many different technologies and platforms.  When I am designing a custom list for (display, edit or new), There are times where I may have a delimited string in a field that I want to display differently on the screen.  Since the forms are all XSL style sheets, it is helpful to have a few XSL templates to process the data.</p>
<p>I wrote this XSL template so I could wrap some HTML around any element in a delimited list.  This is specifically geared towards XSL 1.0.  In XSL 2.0, I would most likely use <em>tokenize</em>.  I&#8217;m not an expert at XSL so if anyone has any suggestions that would improve this template, please leave comments.</p>
<pre language="XML">&lt;xsl:template name="split-string"&gt;
&lt;xsl:param name="list" /&gt;
&lt;xsl:param name="delimiter" /&gt;
&lt;xsl:param name="id" /&gt;
&lt;xsl:if test="normalize-space($list)"&gt;
&lt;xsl:variable name="newlist"&gt;
&lt;xsl:choose&gt;
&lt;xsl:when test="contains($list, $delimiter)"&gt;
&lt;xsl:value-of select="normalize-space($list)" /&gt;
&lt;/xsl:when&gt;
&lt;xsl:otherwise&gt;
&lt;xsl:value-of select="concat(normalize-space($list), $delimiter)"/&gt;
&lt;/xsl:otherwise&gt;
&lt;/xsl:choose&gt;
&lt;/xsl:variable&gt;

&lt;xsl:variable name="first" select="substring-before($newlist, $delimiter)" /&gt;
&lt;xsl:variable name="remaining" select="substring-after($newlist, $delimiter)" /&gt;
&lt;!-- This is where you need to put the display code --&gt;
&lt;a&gt;
&lt;xsl:attribute name="href"&gt;./Attachments/&lt;xsl:value-of select="$id" /&gt;/&lt;xsl:value-of select="$first" /&gt;&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="target"&gt;_blank&lt;/xsl:attribute&gt;
&lt;img src="~/_layouts/images/doclink.gif" width="16" height="16" alt="" border="0" /&gt;
&lt;xsl:value-of select="$first" /&gt;
&lt;/a&gt;
&lt;!--  end display code --&gt;
&lt;xsl:if test="$remaining"&gt;
&lt;!-- I put a little display code here also --&gt;
&lt;br /&gt;
&lt;!-- end display code --&gt;
&lt;xsl:call-template name="split-string"&gt;
&lt;xsl:with-param name="list" select="$remaining" /&gt;
&lt;xsl:with-param name="delimiter"&gt;
&lt;xsl:value-of select="$delimiter"/&gt;
&lt;/xsl:with-param&gt;
&lt;xsl:with-param name="id"&gt;&lt;xsl:value-of select="$id" /&gt;&lt;/xsl:with-param&gt;
&lt;/xsl:call-template&gt;
&lt;/xsl:if&gt;
&lt;/xsl:if&gt;
&lt;/xsl:template&gt;
</pre>
<p>You can add or remove variables depending on what you need.  In the above example code, I had a semi-colon list of email attachment file names that were attached to the list.  I wanted to create a &#8216;clickable&#8217; link to each file, which is why I needed the ID field.  Normally, you wouldn&#8217;t need the ID field.</p>
<p>This is how I called the template in my XSL:</p>
<pre language="XML">&lt;xsl:call-template name="split-string"&gt;
&lt;xsl:with-param name="list"&gt;&lt;xsl:value-of select="@EmailAttachmentNames" /&gt;&lt;/xsl:with-param&gt;
&lt;xsl:with-param name="delimiter"&gt;;&lt;/xsl:with-param&gt;
&lt;xsl:with-param name="id"&gt;&lt;xsl:value-of select="@ID" /&gt;&lt;/xsl:with-param&gt;
&lt;/xsl:call-template&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://whatsthesharepoint.com/2010/02/xslsplit-string-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A SharePoint Design Question</title>
		<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/</link>
		<comments>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 20:10:42 +0000</pubDate>
		<dc:creator>David Petersen</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[problems]]></category>
		<category><![CDATA[content types]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[sharepoint 2007]]></category>
		<category><![CDATA[sp2007]]></category>

		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=140</guid>
		<description><![CDATA[<p>Normally, I write solutions to problems.  This time around, I need some suggestions to get ideas on how to design a solution to a problem.</p>
<p>The credit department where I work accumulates/produces documents to support the credit limit they grant our customers.  We have categorized them as :</p>

Financial Statements
Agency Reports
Parent Guarantees
Other

<p>We have defined a content type [...]]]></description>
			<content:encoded><![CDATA[<p>Normally, I write solutions to problems.  This time around, I <strong>need </strong>some suggestions to get ideas on how to design a solution to a problem.</p>
<p>The credit department where I work accumulates/produces documents to support the credit limit they grant our customers.  We have categorized them as :</p>
<ul>
<li>Financial Statements</li>
<li>Agency Reports</li>
<li>Parent Guarantees</li>
<li>Other</li>
</ul>
<p>We have defined a content type for each of these types of documents.  With each of these documents, one common field is the <em>Company Name</em> field that describes the company that the document refers to.</p>
<p>The <strong>Company </strong>is unique in it&#8217;s structure.  Each Company can be a <span style="text-decoration: underline;">Parent</span> company or it can be the Parent to other companies.  I created a <em>Company</em> list that had the fields Name and Parent where Parent was a lookup field type to the Company list.  We currently have the list populated by about 4500 company names with the parent relationships defined.</p>
<p><strong>List: Company</strong></p>
<ul>
<li>Company Name, Text Field<em> (required)</em></li>
<li>Parent, Lookup of Company List<em> (Company Name field) (not required)</em></li>
</ul>
<p>In the document list that contains the four content types, each content type has a <strong>Company </strong>field that is a lookup to the <strong>Company List</strong>.</p>
<p>When we were discussing how to design this &#8220;application&#8221;, the user talked about how he would like to have a view where he could see all documents that related to a company, whether these documents applied directly to the company or one of it&#8217;s subsidiaries.  Another requirement would be that the documents for one particular company would be easy to find/view.</p>
<p>As for volume, each company (so far at 4500) will have at minimum 1 of each document types but more than likely will contain 10 &#8211; 20 documents with a small growth rate.  There is no document disposition being considered.  From their standpoint, once a document goes into the system, it becomes a historical record for that company.  So &#8211; we&#8217;re looking at about <strong>45,000-90,000</strong> documents initially and it will grow.</p>
<p>My original thought was that to stay within the 2000 item soft limit per view, I would create a folder in the Document Library for each Company created in the Company list.  I would then have the users save their documents in the folder that corresponded to the company name.  To achieve the view of the data where they could see all documents that applied to the parent and child companies, I would use the relationships defined in the Company list to create a custom view using the DataView Web Part.</p>
<p>So &#8211; here are my questions:</p>
<ol>
<li> Do I need a separate folder for each company?  Am I limiting myself?</li>
<li>If we just use a Company Name field using the lookup list, would we run into performance problems?</li>
<li>If we do use the folder, is there a way to automate the creation of the folder when I create a new Company in the Company List.</li>
<li>If we do use folders, is there a way to prevent documents from being created outside of the folders?</li>
<li>Can a document inherit a property from it&#8217;s parent?  (i.e. could a document get it&#8217;s company name by being saved into a specific folder with the right company name?</li>
<li>(If folder) How do I prevent users from saving documents into the document library outside of a folder?</li>
</ol>
<p>I&#8217;m sure there are more questions that I need to be asking.  It has been so long since I worked in Designer or the Web interface.  I&#8217;ve been living in Visual Studio for the last year.  Leave comments / remarks / insults.  <strong>Anything is appreciated.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Notes to SharePoint Migration</title>
		<link>http://whatsthesharepoint.com/2010/01/notes-to-sharepoint-migration/</link>
		<comments>http://whatsthesharepoint.com/2010/01/notes-to-sharepoint-migration/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 22:33:49 +0000</pubDate>
		<dc:creator>David Petersen</dc:creator>
				<category><![CDATA[problems]]></category>
		<category><![CDATA[lessons learned]]></category>
		<category><![CDATA[list data]]></category>
		<category><![CDATA[lotus]]></category>
		<category><![CDATA[lotus notes]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=94</guid>
		<description><![CDATA[<p>The company I work for purchased the Quest Notes Migrator for SharePoint.  Overall, it has saved me lots of time migrating from Lotus Notes.  The main reason is that I have absolutely zero experience with Notes.  Now, the Quest tool allows me to migrate all of the rows into SharePoint pretty painlessly.  I was having [...]]]></description>
			<content:encoded><![CDATA[<p>The company I work for purchased the <a href="http://www.quest.com/notes-migrator-for-sharepoint/">Quest Notes Migrator for SharePoint</a>.  Overall, it has saved me lots of time migrating from Lotus Notes.  The main reason is that I have absolutely zero experience with Notes.  Now, the Quest tool allows me to migrate all of the rows into SharePoint pretty painlessly.  I was having one problem.  As I migrated Lotus databases, I was getting SharePoint lists with 50 -100 list items.  Performance lagged when trying to view those items and it made SPDesigner almost unusable.  I set out to find a way for the tool to create folders around a Created date.  My final solution utilized Lotus @Functions.</p>
<p>In the spirit of trying to save someone else a lot of time, here is what I did. </p>
<ol>
<li>I used Quest Notes Migrator for SharePoint Designer.</li>
<li>If you select a folder type in the mapping, Designer will create a folder with the name of the item.  If the item has a forward or backward slash, it will create nested folders.  So, I wanted a nested folder based on a date.</li>
<li>In the Notes data definition, I created a new formula field.</li>
<li>The formula that I used is:  @Text(@Year(@Created)))+&#8221;/&#8221;+@Text(@Month(@Created)))+&#8221;/&#8221;+@Text(@Day(@Created)))
<div id="attachment_95" class="wp-caption alignright" style="width: 310px"><a href="http://whatsthesharepoint.com/wp-content/uploads/2010/01/formula.png"><img class="size-medium wp-image-95 " title="formula" src="http://whatsthesharepoint.com/wp-content/uploads/2010/01/formula-300x84.png" alt="" width="300" height="84" /></a><p class="wp-caption-text">DateString Formula</p></div></li>
<li>I created an alias of FolderDateString</li>
<li>Output type is String.</li>
<li>On the DataMapping, map the FolderDateString field to a Folder type. That will tell Designer to automatically create nested folders based on the string.</li>
<li>That&#8217;s it!</li>
</ol>
<p>Hope this helps someone!</p>
<p><div id="attachment_96" class="wp-caption alignleft" style="width: 310px"><a href="http://whatsthesharepoint.com/wp-content/uploads/2010/01/mapdata.png"><img class="size-medium wp-image-96 " title="mapdata" src="http://whatsthesharepoint.com/wp-content/uploads/2010/01/mapdata-300x217.png" alt="mapped data" width="300" height="217" /></a><p class="wp-caption-text">Final data mapping</p></div>
]]></content:encoded>
			<wfw:commentRss>http://whatsthesharepoint.com/2010/01/notes-to-sharepoint-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exporting List Data</title>
		<link>http://whatsthesharepoint.com/2009/11/exporting-list-data/</link>
		<comments>http://whatsthesharepoint.com/2009/11/exporting-list-data/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 17:05:31 +0000</pubDate>
		<dc:creator>David Petersen</dc:creator>
				<category><![CDATA[problems]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[external applications]]></category>
		<category><![CDATA[list data]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=59</guid>
		<description><![CDATA[<p>If you have list data that you want to use in another application, what are some ways to get to that data?  That was the question posed by a recent requirement from a client.  Fortunately, SharePoint presents us with some creative ways to get to the list data.</p>

Export to Excel. This is a [...]]]></description>
			<content:encoded><![CDATA[<p>If you have list data that you want to use in another application, what are some ways to get to that data?  That was the question posed by a recent requirement from a client.  Fortunately, SharePoint presents us with some creative ways to get to the list data.</p>
<ol>
<li><strong>Export to Excel.</strong> This is a good, and quick, way to export data out of SharePoint so that you can use it in other programs.  Once you have it in Excel, you can further export it into different formats.  The most common is as a comma-delimited text file.  I am not an Excel expert but it is quite easy to <em><strong>Export To Spreadsheet</strong></em> from the <strong>Actions </strong>menu and then save the Excel file in, say, a CSV format.  From there, many applications can import that text file.  But what happens if one of the SharePoint fields are large text fields that could contain commas and line feeds?</li>
<li><strong>Export to Access.</strong> For quite a few data export requirements, I tend to use this way.  Access has better import/export functionality.  I can save the exported list data in many formats.  How do you do this?  From the <strong>Actions </strong>menu, select <em><strong>Open With Access</strong></em>.  [Note: this isn't available in Document Libraries].  From there you can decide whether you want to maintain a local copy or just link to the list.  Once you have it open in Access, you can export it in a number of different formats.</li>
<li>If your third part application can call Web Services, SharePoint exposes a lot of functionality via Web Service.  Web Services are beyond the scope of this article but you can find plenty of information on MSDN, like <a href="http://msdn.microsoft.com/en-us/library/ms479390.aspx">Windows SharePoint Services Web Services</a>.</li>
</ol>
<p>What are some of the ways you deal with the requirement of external applications using list data?  I would love to hear your comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://whatsthesharepoint.com/2009/11/exporting-list-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why does making a Lookup site column an indexed field break my CAML Query?</title>
		<link>http://whatsthesharepoint.com/2009/08/why-does-making-a-lookup-site-column-an-indexed-field-break-my-caml-query/</link>
		<comments>http://whatsthesharepoint.com/2009/08/why-does-making-a-lookup-site-column-an-indexed-field-break-my-caml-query/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 16:50:13 +0000</pubDate>
		<dc:creator>David Petersen</dc:creator>
				<category><![CDATA[problems]]></category>
		<category><![CDATA[caml]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=21</guid>
		<description><![CDATA[when the EmailSource field is NOT set as an indexed column, this query would return all list items where EmailSource didn't have a value.  As soon as I set EmailSource as an indexed column, the query would always return zero items, even though I knew it should return some list items.]]></description>
			<content:encoded><![CDATA[<p>I created a custom timer job definition that processes email-enabled list items.  Since these list items were created from email, I extract certain email header information from the email and save that information as meta-data.  </p>
<p>One of those site columns is called EmailSource.  This is a Lookup field using the Title field of the EmailSource list as the value.  My timer job queries the main list to find all list items where the EmailSource IsNULL and then I extract information from the email headers, and then find the appropriate EmailSource from the EmailSource list and write it to the EmailSource field in the main list.  </p>
<p>It has been working pretty slick for the last month or so.  Recently, I thought that I would try to improve the response of the main list views by setting the EmailSource site column as an indexed column.  Since most of the views are created filtering on the EmailSource field, I figured that this would be an ideal candidate for indexing.  As soon as I set the EmailSource site column as an indexed column, my query for IsNull started returning 0 (zero) items, even when I could see that there were list items that didn&#8217;t have an EmailSource value.</p>
<p>My query is:</p>
<p><code></p>
<p>&lt;Query&gt;<br />
&nbsp;&nbsp;&lt;Where&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;IsNull&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;FieldRef Name='EmailSource' /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/IsNull&gt;<br />
&nbsp;&nbsp;&lt;/Where&gt;<br />
&lt;/Query&gt;</p>
<p></code></p>
<p>Now &#8211; normally, when the EmailSource field is NOT set as an indexed column, this query would return all list items where EmailSource didn&#8217;t have a value.  As soon as I set EmailSource as an indexed column, the query would always return zero items, even though I knew it should return some list items.</p>
<p>As soon as I removed that field from the indexed columns list, the query began to work correctly again.</p>
<p>So &#8211; I ask you.  Why would setting a field as an indexed column break a query?!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://whatsthesharepoint.com/2009/08/why-does-making-a-lookup-site-column-an-indexed-field-break-my-caml-query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
