Как переместить документ в другую папку в библиотеке SharePoint с помощью веб-служб - PullRequest
3 голосов
/ 20 августа 2009

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

Я использую метод UpdateListItems для пакетной обработки XML следующим образом:

<Batch>
 <Method ID="1" Cmd="Update">
    <Field Name="ID">14</Field>
    <Field Name="ServerUrl">personal/blabla/Documents/CT-5/image.jpg</Field>
 </Method>
</Batch>

Я попытался обновить различные поля вместо ServerUrl выше - нет, если повезет ...

Спасибо за любые подсказки ...

Ответы [ 3 ]

2 голосов
/ 28 августа 2009

Так что в конце концов я нашел способ обойти это, используя WebDAV. И извините, вопрос был задан неправильно - мне действительно не нужны были веб-сервисы, а все, что было доступно для меня с удаленного сайта ASP.NET. Вот (простой) код для перемещения файла:

WebRequest lRequest = WebRequest.Create(sourceUrl);
lRequest.Credentials = CredentialCache.DefaultCredentials;
lRequest.Method = "MOVE";

lRequest.Headers.Add("Destination", targetUrl);
var lResponse = lRequest.GetResponse();
1 голос
/ 20 августа 2009

Да, используйте Копировать веб-сервис, как предлагает Колин. Это единственный способ с веб-сервисами OOB. Но имейте в виду, что вы потеряете всю информацию об авторе и дате, а также историю версий. Copy WS не сохраняет эту информацию.

Если это ограничитель показа, вы можете взглянуть на CopyMove для SharePoint . Он также поставляется с веб-службой, которая позволяет копировать или перемещать документы, элементы и папки без потери метаданных.

1 голос
/ 20 августа 2009

Я не думаю, что это возможно с помощью готовых веб-сервисов. Вы могли бы написать свой собственный веб-сервис и развернуть его на sharepoint.

Также возможно использование 2 веб-служб: веб-службы copy и веб-службы списков. Сначала сделайте копию, затем используйте сервис Lists для удаления оригинала.

...