Sharepoint UpdateListItems список не обновляется - PullRequest
3 голосов
/ 01 сентября 2009

Я отправляю обновление в UpdateListItems. Возвращает успех, но элемент списка не обновляется. Любой совет, как бы я отследил, что идет не так?

Ниже генерируется XML:

<Batch OnError='Continue' ListVersion='1' ViewName=''>
   <Method ID='1' Cmd='Update'>
      <Field Name='ID'>11707</Field>
      <Field Name='Business_x0020_Area'>Consumer</Field>
      <Field Name='Team'>6;#IT Support</Field>
      <Field Name='Job_x0020_Number'>TEMP</Field>
      <Field Name='Media_x0020_Outlet2'>13;#BBC Parliament</Field>
      <Field Name='Publication_x0020_Date'>2009-09-01 14:40:10</Field>
      <Field Name='Narrative2'></Field>
      <Field Name='Page_x0020_Number'>1</Field>
      <Field Name='Media_x0020_Value'></Field>
      <Field Name='Information_x0020_Only'>0</Field>
      <Field Name='Date_x0020_Added'></Field>
   </Method>
</Batch>

Обновление

Я получаю ошибку в U2U:

0x81020014 Один или несколько типов полей установлены неправильно. Перейдите на страницу настроек списка, чтобы удалить эти поля.

Ответы [ 4 ]

2 голосов
/ 02 сентября 2009

У меня было внутреннее поле в CAML, которого не было в базе данных. Это заставляло его сработать.

1 голос
/ 28 марта 2012

Мое первое предложение - сохранить имена полей, такие как «Сфера бизнеса» вместо «Business_x0020_Area». Я знаю, когда при поиске списка XML-файла имена полей отображаются так. Второе предложение касается вашего поля даты. Убедитесь, что ваша дата построена правильно. Формат поля даты: ГГГГ-ММ-ДДЧЧ: ММ: ССЗ. T и Z важны. Надеюсь, это поможет.

0 голосов
/ 08 мая 2012

Я сделал что-то вроде этого на дату

public DateTime dateForSp(string s)
{
    string[] sd = s.Split('/');
    string[] yd = sd[2].Split(' ');
    string[] hd = yd[1].Split(':');

    DateTime dt = new DateTime(Int32.Parse(yd[0]),
                               Int32.Parse(sd[0]),
                               Int32.Parse(sd[1]),
                               Int32.Parse(hd[0]),
                               Int32.Parse(hd[1]),
                               Int32.Parse(hd[2]));

    return dt;
}

и в коде

"<Field Name='SubmissionTime'>" + String.Format("{0:u}", dateForSp(this.rProperty["SubmissionTime"])) + "</Field>" 
0 голосов
/ 01 сентября 2009

401 указывает, что вы не вошли в систему или что пользователь, вошедший в систему как пользователь, не имеет разрешений в этом списке. Убедитесь, что пользователь, «выполняющий» пакетный скрипт, может войти на сайт и внести изменения в список.

...