SharePoint Lists.asmx UpdateListItems SET Field1 = NewValue WHERE Field1 = OldValue (отфильтровать, чтобы обновить поле) - PullRequest
3 голосов
/ 11 февраля 2011

То, что я хотел бы сделать, кажется простым, у меня есть приложение, которое взаимодействует с некоторыми списками SharePoint (MOSS 2007) через SharePoint Services. За один сервисный звонок я бы хотел обновить один или несколько элементов списка. Проблема в том, что я хочу обновить только те элементы, для которых поле, которое нужно обновить, равно старому значению. Я думал о том, чтобы использовать Lists.UpdateListItems и фильтровать, а затем обновлять, но я не смог найти синтаксис для него.

В псевдо: обновить [Имя] до «NewName» всех элементов в [ListA], где [Name] = «OldName»

Одно решение, которое я бы хотел избежать: получить идентификатор всех элементов ListItems, где Name = "OldName", и выполнить для них итерацию, вызывая отдельный вызов службы для каждого обновления Name = "NewName".

Я не могу ссылаться на сборки Microsoft.SharePoint, поэтому в идеале это нужно сделать одним вызовом службы.

1 Ответ

1 голос
/ 12 февраля 2011

Вам нужно будет сделать 2 звонка , один для получения соответствующих элементов и один для обновления (ей).

Это может быть довольно сложным, поэтому я написал блогпост (включая необходимый код) об этом здесь: http://www.wirebear.com/blog/2011/02/11/batch-updates-with-sharepoint-2007-services/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...