Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

Another question about the Very Large List I referenced in this question: http://sharepoint.stackexchange.comquestions/445/deleting-old-versions-in-a-document-library

This Document Library has over 5000 items and has outgrown its britches. The Document Library is an artifact repository for the SDLC process at one of my clients. Given this, each document belows to a specific project, which is specified in the item's metadata.

All of the documents currently live in the root of the Document Library. What we'd like to do is move the documents into folders by project to both improve performance as well as to reduce the likelihood of filename repetition causing destruction by overwrite.

This is a "no managed code" environment (don't ask), so I'm trying to use SharePoint's Lists and Copy Web Services to move the documents. The Copy Web Service copies the docs just fine, but we want to preserve the Created and Created By column values if at all possible. I've tried to set the Created and Created By columns ReadOnly=False to update them using the Lists Web Service's UpdateListItems operation, but can't make that work.

Any ideas?

Update 2009-11-12 - The Copy Web Service seems to preserve the Created and Created By column values just fine. Turns out that the last hurdle is unlinking the copy from its source. I can't figure out a way to empty out the _CopySource column. No combination of setting things like ReadOnly="False" on the column, etc. seems to work. This is one capability that I would expect to be part of the Copy Web Service, as it's exposed in the UI on the page when you look at the newly created item. If I delete the source item, then the _CopySource is still there, but with an invalid link back.

share|improve this question
    
Looks like the "Move" command is probably an SP2010 behavior. Darn MSDN docs. I wish I was in charge of them! See: msdn.microsoft.com/en-us/library/dd955870.aspx –  Marc D Anderson Nov 10 '09 at 18:16
add comment

4 Answers

What about doing it manually using the explorer view?

You might want to update the filenames through the web services to prefix the files with the projectname (I hope you can perform something like a SystemUpdate() that preserves the user and datetime), so that you can easily select all files for a project (sort by filename) and move them in one go.

When all files are moved, rename back again using the webservices.

share|improve this answer
    
Interesting idea. I'll have to think about that one. –  Marc D Anderson Nov 11 '09 at 3:38
    
I looked into the Explorer view, and I don't think it'll work. While the metadata is on each document in the Explorer view (I can see it by right clikcing and looking at the properties), there's no way to see it in the view. I'm on a Windows XP machine here. I don't think that Vista or Windows 7 would improve on this, would it? I may just end up with the tedious task of moving documents one by one. All 5000 of them. Erg. –  Marc D Anderson Nov 12 '09 at 15:56
    
Sorry, what metadata do you not see in what view before of after what action? :) –  Jaap Vossers Nov 12 '09 at 20:46
add comment

Marc,

Don't know if these stsadm extensions would be off limits to you or not, but you may find using them you can create some scripts to move the data for you based on the metadata? I would start here if you are able to use them. http://stsadm.blogspot.com/2007/08/stsadm-commands_09.html

Lori

share|improve this answer
    
If I could touch the server in any way, there are options. But I can't. Thanks, though. It just seems to me that the Web Services ought to let me do this. –  Marc D Anderson Nov 10 '09 at 18:17
add comment

Marc, is it an option to split the documentlibrary into a library per project as this would do wonders performancewise ?

share|improve this answer
    
I think that the folder per project approach will be fine performance-wise. The 2000 item per list container "rule" wouldn't be violated. Even if I did want to go to a library per project, I think I'd have the same moving problem. –  Marc D Anderson Nov 11 '09 at 3:40
add comment
up vote 0 down vote accepted

After seeing my tweets about this, Peter Senescu at Metavis Technology suggested I look at their MetaVis Architect for SharePoint product. I've fired up the trial version, and it looks like it will get me where I want to go on this. I have no association with Metavis, and I've got to say that the product is really cool. It's going to let me move large groups of documents in one go based on their metadata values, which is exactly what I wanted to do. The one drawback is that we will lose the original Created and Created By column values, but we've decided that is an OK price to pay.

One nice thing about this tool is that there's no server-side install, which was a must-have in this case. It looks like it uses the Web Services (my recent favorite domain!) to get things done. I was trying to build my own Web Serivce-based solution, but I was never going to get anywhere near this level of sophistication.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.