Ошибка перемещения документов с помощью расширений SharePoint 3 и FrontPage - PullRequest
1 голос
/ 14 июля 2009

Во-первых, простой вопрос - кто-нибудь имел опыт программного переименования / перемещения папки в структуре каталогов в SharePoint?

Фон:

Я унаследовал какую-то работу, и я нахожусь в процессе исправления нескольких дефектов в ней. По большей части дела идут хорошо, но есть одна проблема, с которой я бью головой о стену.

Приложение представляет собой веб-приложение ASP.NET (C #) с хранилищем документов SharePoint 3. Приложение поддерживает структуру папок на сервере, имена папок зависят от данных в приложении и могут быть изменены (в режиме реального времени).

Текущий подход заключается в использовании расширений FrontPage для обработки некоторых запросов к SharePoint, как описано здесь: http://msdn.microsoft.com/en-us/library/ms443099.aspx

В настоящее время папка будет правильно переименована, если папка не существует, но если она существует, она выдаст ошибку (и логически так). В этом случае мы хотим переместить содержимое папки в существующую папку. Из документации я считаю, что наш подход должен работать ...... но это не так, поэтому я надеюсь, что есть кое-что, что можно легко изменить.

код:

const string renameOption = "findbacklinks";
const string putOption = "overwrite,createdir,migrationsemantics";
string method = "method=move+document%3a12.0.4518.1016&service_name=%2f&oldUrl={0}&newUrl={1}&url_list=[]&rename_option={2}&put_option={3}&docopy={4}";

method = String.Format(method, oldUrl, newUrl, renameOption, putOption, bool.FalseString.ToLower());
// then submit and handle the request

Я попытался изменить вышеуказанные опции пут, и подумал бы, что описанные выше опции «перезаписать» предотвратили бы полученное нами сообщение об ошибке, кишки которого:

method=move document:12.0.0.6219
status=131097
osstatus=0
msg=Cannot rename value to value: destination already exists.

Мой предпочтительный подход состоял бы в том, чтобы заставить работать вышеупомянутую реализацию, а не полностью переписывать с использованием других методов (хотя, конечно, если есть фундаментальный недостаток в вышеприведенном, я понимаю, что перезапись может потребоваться).

Из того исследования, которое я провел, может показаться, что это довольно трудная задача, и в любом подходе есть сложности?

Спасибо Chris

1 Ответ

1 голос
/ 29 июля 2009

Я считаю, что метод move document работает только в одном и том же списке и не предназначен для перемещения между локациями. Это действительно должно называться rename document. Это объясняет, почему вы получаете сообщение об ошибке «пункт назначения уже существует».

Похоже, что компания HubKey разработала бесплатную бета-версию библиотеки, которая делает это, если вы читаете комментарии к этому посту .

Лично я бы разработал собственный веб-сервис, который делает это (на самом деле я не думаю, что вообще буду использовать RPC). Это вариант для вас?

...