<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: A SharePoint Design Question</title>
	<atom:link href="http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/feed/" rel="self" type="application/rss+xml" />
	<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/</link>
	<description>Another resource for MS SharePoint information.</description>
	<lastBuildDate>Wed, 19 May 2010 17:18:14 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Marc D Anderson</title>
		<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/comment-page-1/#comment-45</link>
		<dc:creator>Marc D Anderson</dc:creator>
		<pubDate>Fri, 05 Feb 2010 01:43:00 +0000</pubDate>
		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=140#comment-45</guid>
		<description>David:

This is a pretty classic problem.  Company entity hierarchies are always problematic; every time you think you have a perfect model, someone comes up with some other off-shore entity joint owned by three parent companies which are in a blind holding entity or something.  Bottom line is that you&#039;ll only be able to deal with certain circumstances.  The most common is certainly the parent-child relationship.

I think that you&#039;ll be fine on the display side with a DVWP.  You can build recursive templates fairly easily that &quot;crawl&quot; the tree to the top node.  However, Boris is right that the volume of documents will impose performance issues at some point, probably sooner rather than later.  I think the real question back to you is what the use cases are and what are reasonable SLAs?  If your users are going to look at the company structures once or twice a day and it takes 30 seconds to come up, that&#039;s very different than hundreds of views an hour.

The &quot;2000 item limit&quot;, like Mel Brooks&#039; 2000 year old man, is fictional.  I&#039;ve seen lists with a few hundred items crawl and items with tens of thousands sail. There are lots of variables in all of this.  I&#039;m in the middle of &lt;a href=&quot;http://www.endusersharepoint.com/2009/11/23/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-real-world-example-part-1/&quot; rel=&quot;nofollow&quot;&gt;a series over at EndUserSharePoint.com&lt;/a&gt; which talks about a real world scenario where I had a similar set of challenges, focused on software development projects.  In the next installment (if I ever get it written), I&#039;m going to talk about how I built a customized bulk upload page which saved documents to folders based on their metadata using the SharePoint Web Services and my &lt;a href=&quot;http://spservices.codeplex.com/&quot; rel=&quot;nofollow&quot;&gt;jQuery Library for SharePoint Web Services&lt;/a&gt;.  So whatever you decide about the optimal document storage approach, it&#039;s do-able, and it&#039;s potentially do-able with no server-side code.


M.</description>
		<content:encoded><![CDATA[<p>David:</p>
<p>This is a pretty classic problem.  Company entity hierarchies are always problematic; every time you think you have a perfect model, someone comes up with some other off-shore entity joint owned by three parent companies which are in a blind holding entity or something.  Bottom line is that you&#8217;ll only be able to deal with certain circumstances.  The most common is certainly the parent-child relationship.</p>
<p>I think that you&#8217;ll be fine on the display side with a DVWP.  You can build recursive templates fairly easily that &#8220;crawl&#8221; the tree to the top node.  However, Boris is right that the volume of documents will impose performance issues at some point, probably sooner rather than later.  I think the real question back to you is what the use cases are and what are reasonable SLAs?  If your users are going to look at the company structures once or twice a day and it takes 30 seconds to come up, that&#8217;s very different than hundreds of views an hour.</p>
<p>The &#8220;2000 item limit&#8221;, like Mel Brooks&#8217; 2000 year old man, is fictional.  I&#8217;ve seen lists with a few hundred items crawl and items with tens of thousands sail. There are lots of variables in all of this.  I&#8217;m in the middle of <a href="http://www.endusersharepoint.com/2009/11/23/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-real-world-example-part-1/" rel="nofollow">a series over at EndUserSharePoint.com</a> which talks about a real world scenario where I had a similar set of challenges, focused on software development projects.  In the next installment (if I ever get it written), I&#8217;m going to talk about how I built a customized bulk upload page which saved documents to folders based on their metadata using the SharePoint Web Services and my <a href="http://spservices.codeplex.com/" rel="nofollow">jQuery Library for SharePoint Web Services</a>.  So whatever you decide about the optimal document storage approach, it&#8217;s do-able, and it&#8217;s potentially do-able with no server-side code.</p>
<p>M.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Petersen</title>
		<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/comment-page-1/#comment-44</link>
		<dc:creator>David Petersen</dc:creator>
		<pubDate>Thu, 04 Feb 2010 22:09:04 +0000</pubDate>
		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=140#comment-44</guid>
		<description>Ahhhhh. SharePoint 2010.  If I had a dollar for every time I blurted - If only we had 2010! - I&#039;d be able to retire and never think about this again! :)</description>
		<content:encoded><![CDATA[<p>Ahhhhh. SharePoint 2010.  If I had a dollar for every time I blurted &#8211; If only we had 2010! &#8211; I&#8217;d be able to retire and never think about this again! <img src='http://whatsthesharepoint.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Clark</title>
		<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/comment-page-1/#comment-43</link>
		<dc:creator>Andrew Clark</dc:creator>
		<pubDate>Thu, 04 Feb 2010 22:00:08 +0000</pubDate>
		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=140#comment-43</guid>
		<description>sounds to me like your client has a training issue with SharePoint search. Custom views is one way of viewing data, but the client should have more power by setting up search queries (especially for the items that are related to a company). Those queries could be saved, alerts could be attached to the result set, etc.

There was a really good post recently talking about what you can and can&#039;t do with folders and metadata. http://www.endusersharepoint.com/2010/01/29/sharepoint-folders-vs-metadata/comment-page-1/ 
 

In regards to enforcing where items are stored. That reeks of content organizers in sp2010. I&#039;m thinking the setting of metadata based on the parent would be an event handler. You could save your document library as a content type and then attach the event receiver to that content type when you deploy. 

hope that helps</description>
		<content:encoded><![CDATA[<p>sounds to me like your client has a training issue with SharePoint search. Custom views is one way of viewing data, but the client should have more power by setting up search queries (especially for the items that are related to a company). Those queries could be saved, alerts could be attached to the result set, etc.</p>
<p>There was a really good post recently talking about what you can and can&#8217;t do with folders and metadata. <a href="http://www.endusersharepoint.com/2010/01/29/sharepoint-folders-vs-metadata/comment-page-1/" rel="nofollow">http://www.endusersharepoint.com/2010/01/29/sharepoint-folders-vs-metadata/comment-page-1/</a> </p>
<p>In regards to enforcing where items are stored. That reeks of content organizers in sp2010. I&#8217;m thinking the setting of metadata based on the parent would be an event handler. You could save your document library as a content type and then attach the event receiver to that content type when you deploy. </p>
<p>hope that helps</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Petersen</title>
		<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/comment-page-1/#comment-42</link>
		<dc:creator>David Petersen</dc:creator>
		<pubDate>Thu, 04 Feb 2010 21:54:28 +0000</pubDate>
		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=140#comment-42</guid>
		<description>Chris - I concur about the use of folders.  I have advocated getting away from the use of folders since I was introduced to Document management.  So, my first design did not use folders.  Then I found out about the volume and started thinking about folders.  That presented more problems so I am back to finding a solution that doesn&#039;t require folders.  We&#039;ll see. 

Thanks for the comments so far!  I love collaboration!</description>
		<content:encoded><![CDATA[<p>Chris &#8211; I concur about the use of folders.  I have advocated getting away from the use of folders since I was introduced to Document management.  So, my first design did not use folders.  Then I found out about the volume and started thinking about folders.  That presented more problems so I am back to finding a solution that doesn&#8217;t require folders.  We&#8217;ll see. </p>
<p>Thanks for the comments so far!  I love collaboration!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boris Gomiunik</title>
		<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/comment-page-1/#comment-41</link>
		<dc:creator>Boris Gomiunik</dc:creator>
		<pubDate>Thu, 04 Feb 2010 21:36:17 +0000</pubDate>
		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=140#comment-41</guid>
		<description>Much of these requirements have certain requirement for an event receiver. If you have a   lot of levels below company, you&#039;d have to do a recursive loop in the data view wepbart which might slow down performance. If you&#039;re plannine 45K documents or more, you shouldn&#039;t do a dvwp XSLT filtering, has to be absolutely CAML filter (otherwise you&#039;ll wait for some minutes beforre webpart is rendered). 
What about following:
1. Make additional list &quot;Company Groups&quot;
2. In Companies list you can add a lookup to the list mentioned above (Group). You can even hide it using content types
3. Make a SPD workflow: if &quot;Parent&quot; field is empty (meaning it&#039;s a parent), copy its name in &quot;Groups list&quot; and add a lookup to the record. If it&#039;s a child, copy its parent&#039;s &quot;group&quot; value.
That way you can filter by Group, having an excellent condition for your non XSLT filter. The problem with this scenario is that you can&#039;t do queries from specific level down.

Other alternative is to create a content type that inherits from folder and name it Company. Then add all needed additional columns to the &quot;company/folder&quot; content type. And use the &quot;Financial Statements&quot;, &quot;Agency Reports&quot;, &quot;Parent Guarantees&quot;, &quot;Other&quot; as an additional column instead of folders. And then you can do CAML queries in your DVWP based on 1. Document type column, and RootFolder. 
It would require some digging in, but it could lead to somewhere. 

Kind regards,
Boris Gomiunik</description>
		<content:encoded><![CDATA[<p>Much of these requirements have certain requirement for an event receiver. If you have a   lot of levels below company, you&#8217;d have to do a recursive loop in the data view wepbart which might slow down performance. If you&#8217;re plannine 45K documents or more, you shouldn&#8217;t do a dvwp XSLT filtering, has to be absolutely CAML filter (otherwise you&#8217;ll wait for some minutes beforre webpart is rendered).<br />
What about following:<br />
1. Make additional list &#8220;Company Groups&#8221;<br />
2. In Companies list you can add a lookup to the list mentioned above (Group). You can even hide it using content types<br />
3. Make a SPD workflow: if &#8220;Parent&#8221; field is empty (meaning it&#8217;s a parent), copy its name in &#8220;Groups list&#8221; and add a lookup to the record. If it&#8217;s a child, copy its parent&#8217;s &#8220;group&#8221; value.<br />
That way you can filter by Group, having an excellent condition for your non XSLT filter. The problem with this scenario is that you can&#8217;t do queries from specific level down.</p>
<p>Other alternative is to create a content type that inherits from folder and name it Company. Then add all needed additional columns to the &#8220;company/folder&#8221; content type. And use the &#8220;Financial Statements&#8221;, &#8220;Agency Reports&#8221;, &#8220;Parent Guarantees&#8221;, &#8220;Other&#8221; as an additional column instead of folders. And then you can do CAML queries in your DVWP based on 1. Document type column, and RootFolder.<br />
It would require some digging in, but it could lead to somewhere. </p>
<p>Kind regards,<br />
Boris Gomiunik</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Geier</title>
		<link>http://whatsthesharepoint.com/2010/02/a-sharepoint-design-question/comment-page-1/#comment-40</link>
		<dc:creator>Chris Geier</dc:creator>
		<pubDate>Thu, 04 Feb 2010 20:32:37 +0000</pubDate>
		<guid isPermaLink="false">http://whatsthesharepoint.com/?p=140#comment-40</guid>
		<description>1. No folders needed.  But in the future with 2010 they may become more useful.
2. With that many docs and possible filters you will have some level of decreased perf.  But i would think you could accomidate this to make it neglidgable.
3. CODE BABY! Workflow
4. You may be able to enforce this with workflow.  Force people (permission wise) to only upload to a staging area and use WF to route.  (in 2010 this is easier.  using a &quot;drop off library&quot; etc.
5. You could do this with WF (not sure if SPD, but definately with a good event receiver and some WF code)
6.  i dont know of a way if they have perms to the library.  I am atleast 65% sure that in 2010 you may be able to....</description>
		<content:encoded><![CDATA[<p>1. No folders needed.  But in the future with 2010 they may become more useful.<br />
2. With that many docs and possible filters you will have some level of decreased perf.  But i would think you could accomidate this to make it neglidgable.<br />
3. CODE BABY! Workflow<br />
4. You may be able to enforce this with workflow.  Force people (permission wise) to only upload to a staging area and use WF to route.  (in 2010 this is easier.  using a &#8220;drop off library&#8221; etc.<br />
5. You could do this with WF (not sure if SPD, but definately with a good event receiver and some WF code)<br />
6.  i dont know of a way if they have perms to the library.  I am atleast 65% sure that in 2010 you may be able to&#8230;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
