Обновить элемент списка с помощью элемента списка SharePoint - PullRequest
0 голосов
/ 05 августа 2011

Я пытаюсь обновить элемент списка SharePoint с помощью метода «UpdateListItems» в веб-службе списков.CAML-запрос:

"<Method ID='1' Cmd='Update'>" +
           "<Field Name='ID'>" + itemID + "</Field>" +
           "<Field Name='Status'>" + itemStatus + "</Field></Method>"

itemID, itemStatus и передается из интерфейса в качестве параметров.Это дает следующую ошибку

<Result ID="1,Update">
<ErrorCode>0x80070005</ErrorCode>
<ErrorText>The operation failed because an unexpected error occurred. (Result Code: 0x80070005)
</ErrorText>
</Result>

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

Спасибо

Ответы [ 2 ]

1 голос
/ 04 июня 2015

В данный момент вам может не понадобиться, однако это может быть полезно для кого-то, кто сталкивается с той же проблемой.

Иногда причиной этой ошибки являются заголовки в действии SOAP.Чтобы сделать обновления, вам нужно установить следующее.функция для отправки обновлений в списки Sharepoint:

function sendupdates(location,listName,command,fieldnames,fieldvalues){
      var updatesvar;
      for(x=0;x<fieldnames.length;x++){
      updatesvar =   updatesvar + '<Field Name="'+fieldnames[x]+'">'+fieldvalues[x]+'</Field>'
         }

      var batchvar = '<Batch OnError="Continue" ListVersion="0"><Method ID="1" Cmd="'+command+'">'+updatesvar+'</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>'+listName+'</listName>'+
                  '<updates>'+batchvar+'</updates>'+
                  '</UpdateListItems>'+
                  '</soap:Body>'+
                  '</soap:Envelope>';

           $.ajax({
                  url: location+"/_vti_bin/Lists.asmx",
                  beforeSend: function(xhr) { xhr.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems");},
                  type: "POST",
                  dataType: "xml",
                  data: soapEnv,
                  complete: complete,   
                  contentType: "text/xml; charset=\"utf-8\""
              });

  }
0 голосов
/ 09 августа 2011

Попробуйте использовать один из следующих инструментов CAML: http://msdn.microsoft.com/en-us/library/ff648040.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...