2009-09-01 2 views
3

Я отправляю обновление UpdateListItems. Он возвращает успех, но элемент списка ahs не обновляется. Любые советы о том, как я буду отслеживать, что происходит не так?Sharepoint 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> 

Update

Ошибка я получаю в u2u является

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

+0

Не могли бы вы опубликовать фрагмент кода? – DevinB

+0

Используете ли вы C# для обработки партии? Используете ли вы функцию ProcessBatchData? Если да, то какова строка результата? – DevinB

+0

Я просто использую метод UpdateListItems в lists.asmx. – Jack

ответ

2

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

0

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

+0

При входе в систему я могу редактировать элементы в списке – Jack

+0

Эта проблема возникла из-за того, что я пытался обновить список на сервере вне домена. На том же сервере, что и share point, я могу обновить его. – Jack

+0

Прохладный! Спасибо за обновление. Вы должны добавить свой собственный ответ на вопрос. Или отредактируйте его в самом вопросе, нажмите «отправить ответ» внизу. – DevinB

1

Мое первое предложение содержит имена полей, такие как «Бизнес-зона», а не «Business_x0020_Area». Я знаю, когда, когда вы просматриваете список xml-файлов, имена полей отображаются так. Второе предложение касается вашего поля даты. Убедитесь, что дата создана правильно. Формат поля даты - YYYY-MM-DDTHH: MM: SSZ. Т и Z важны. Я надеюсь, что это помогает.

0

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

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>" 
Смежные вопросы