How to get error information from SOAP response from UpdateListItems?

I am writing an iOS client for Microsoft SharePoint. My goal is to update the date and time field of the list item and get detailed error information. I have a datetime field with custom server side validation.

Here is the request /_vti_bin/Lists.asmx:

<?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>{405FFE91-946E-4B2F-861E-DDB24F1629F2}</listName> <updates> <Batch OnError="Continue" ListVersion="1"> <Method ID="1" Cmd="Update"> <Field Name="ID">1</Field> <Field Name="DateTime_x0020_E">2000-08-08 07:00:00 +0000</Field> </Method> </Batch> </updates> </UpdateListItems> </soap:Body> </soap:Envelope> 

Here's the answer:

 ?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <UpdateListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/"> <UpdateListItemsResult> <Results> <Result ID="1,Update"> <ErrorCode>0x8102001c</ErrorCode> <ErrorText>Invalid date/time value. A date/time field contains invalid data. Please check the value and try again.</ErrorText> <z:row ows_ContentTypeId="0x0100D3AA6E2413CF1645A9101D3421B797AE" ows_Title="test of time" ows_DateTi... skipped... 

This answer says nothing about the valid range of this field. However, when I try to set an invalid date on a SharePoint site, I get the correct error:

SharePoint provides details on error

Q: How to get detailed error information using the SharePoint SOAP service?

+4
source share
1 answer

I found out where my mistake is. The field has only a date, so SharePoint does not accept a value like 2000-08-08 07:00:00 +0000 . When I post only the date:

 <Field Name="DateTime_x0020_E">1995-08-08</Field> 

I get the correct error text:

 <Result ID="1,Update"> <ErrorCode>0x810200c5</ErrorCode> <ErrorText>[DateTime E] - [Date should be after July 1, 2007]</ErrorText> ... </Result> 
+1
source

All Articles