4

Microsoft SharePoint 用の iOS クライアントを作成しています。私の目標は、リスト アイテムの日時フィールドを更新し、エラーの詳細を取得することです。カスタムのサーバー側検証を備えた日時フィールドがあります。

/_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>

応答は次のとおりです。

?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...

この応答は、このフィールドの有効範囲について何も述べていません。ただし、SharePoint サイトで無効な日付を設定しようとすると、適切なエラーが発生します。

SharePoint はエラーの詳細を提供します

Q: SharePoint SOAP サービスを使用してエラーの詳細を取得する方法は?

4

1 に答える 1

1

私の間違いはどこにあるのか分かりました。フィールドは日付のみであるため、おそらく SharePoint は値を として受け入れません2000-08-08 07:00:00 +0000。日付のみを送信する場合:

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

適切なエラー テキストが表示されます。

<Result ID="1,Update">
   <ErrorCode>0x810200c5</ErrorCode>
   <ErrorText>[DateTime E] - [Date should be after July 1, 2007]</ErrorText>
   ...
</Result>
于 2013-04-17T08:08:04.463 に答える