Удаление документа через веб-сервис sharepoint с использованием JQuery - PullRequest
5 голосов
/ 06 июля 2010

Я пытаюсь удалить документ, используя веб-сервис sharepoint, если кто-то загружает документ, а затем нажимает кнопку Отмена. Я создал следующую функцию

    function DeleteDocument(libraryName, ID)
{
debug.log('DeleteDocument (Entry) libraryname = '+libraryName+' ID='+ID);
    var batch =
        "<Batch OnError='Continue'> \
            <Method ID='1' Cmd='Delete'> \
                <Field Name='ID'>" + ID + "</Field> \
            </Method> \
        </Batch>";

    var soapEnv =
        "<?xml version='1.0' encoding='utf-8'?> \
        <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' \
xmlns:xsd='http://www.w3.org/2001/XMLSchema' \
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> \
          <soap:Body> \
            <UpdateListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
              <listName>"+libraryName+"</listName> \
              <updates> \
                " + batch + "</updates> \
            </UpdateListItems> \
          </soap:Body> \
        </soap:Envelope>";
    debug.log(soapEnv);
    $.ajax({
        url: "http://<serverandsite>/_vti_bin/lists.asmx",
        beforeSend: function(xhr) {
            xhr.setRequestHeader("SOAPAction",
            "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems");
        },
        type: "POST",
        dataType: "xml",
        data: soapEnv,
        complete: function(xData, status){          
            alert(xData.responseText);
            debug.log('xData response = ' + xData.responseText);
            debug.log('status response = ' + status);
        },
        contentType: "text/xml; charset=utf-8"
    });
}

Когда я запускаю его, я получаю

0x81020030 - Неверное имя файла

Указанное вами имя файла не может использоваться. Это может быть имя существующий файл или каталог, или вы можете не имеют разрешения на доступ к файл.

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

Я попытался проверить файлы, зарегистрированные и извлеченные, и получил то же сообщение. Мне нужно, чтобы это работало с документами, которые были извлечены, фактически они никогда не будут проверены, поэтому я понятия не имею, как я могу обработать fileref

1 Ответ

4 голосов
/ 07 июля 2010

Для документов также необходимо включить FileRef

<Field Name="FileRef">http://Server/[sites/][Site/]Library/File</Field>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...