2014-12-27 1 views
0

Я использую этот код, чтобы обновить элемент списка Sharepoint с щелоком в Python:Обновление списка SharePoint элементы с щелоком в питона

from suds.sax.element import Element 

batch = Element('Batch') 
batch.set('OnError','Return') 
batch.set('ListVersion','1') 

method = Element('Method') 
method.set('ID','1') 
method.set('Cmd','Update') 

field1 = Element('Field').setText(1) 
field1.set('Name','ID') 

field2 = Element('Field').setText("some text") 
field2.set('Name','Title') 

method.append(field1) 
method.append(field2) 
batch.append(method) 

updates = Element('ns1:updates') 
updates.append(batch) 

client.service.UpdateListItems('mmnn', updates) 

Но я получил эту ошибку:

suds.WebFault: Server raised fault: 'Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.' 

Обратите внимание, что я использую этот код раньше и его работал, но я не знаю, почему теперь его не работает. Пожалуйста, помогите мне.

ответ

1

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

xml = r""" 
<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>PyTest</listName> 
     <updates> 
     <Batch OnError="Continue" ListVersion="0"> 
      <Method ID="1" Cmd="New"> 
       <Field Name="ID">New</Field> 
       <Field Name="Title">{0}</Field> 
       <Field Name="Sex">{1}</Field> 
       <Field Name="FirstName">{2}</Field> 
       <Field Name="LastName">{3}</Field> 
       <Field Name="CustomerNum">{4}</Field> 
      </Method> 
     </Batch> 
     </updates> 
    </UpdateListItems> 
    </soap:Body> 
</soap:Envelope> 
    """.format(st, sex, fname, lname, costname) 

res = client.service.UpdateListItems(__inject={'msg': xml}) 
Смежные вопросы