SharePoint: GetListItemChangesSinceToken vs GetListItemChangesWithKnowledge? - PullRequest
3 голосов
/ 04 января 2012

Что есть разница между GetListItemChangesSinceToken и GetListItemChangesWithKnowledge?

Вот удивительно итоговая документация и обо всем, что сказано по этому вопросу:

GetListItemChangesSinceToken: Возвращает изменения, внесенные в список с даты и времени, указанных в токене [change].

GetListItemChangesWithKnowledge: Возвращает все элементы списка, которые соответствуют заданным критериям и изменились с даты-времени, указанного в параметре знаний для указанного списка.

Один получает «токен изменения», а другой - «знание».Тем не менее, я не смог найти какой-либо документации (или обоснования) относительно того, какое преимущество одно имеет над другим, почему они оба существуют, как они принципиально различны или какой из них подходит для использования вклиенты протокола.

Эти службы SOAP формально определены в протоколе спецификации протокола веб-службы [MS-LISTSWS]: , но они кажутся идентичными, за исключением ожидаемого и испускаемого токена.(Возможно, это просто количество недокументированных ошибок?)

В то время как GetListItemChangesWithKnowledge имеет дополнительный параметр syncScope, MS-LISTWS говорит:

[syncScope] ДОЛЖЕН быть нулевым или пустым ... [syncScope] зарезервирован и ДОЛЖЕН быть принят на вход

Любой ввод - особенно знание из первых рук - высоко ценится.

1 Ответ

3 голосов
/ 04 января 2012

Вы, вероятно, правы относительно количества ошибок, являющихся разницей ...

Вот что я мог бы найти об обоих методах:

GetListItemChangesWithKnowledge( другая документация MSDN )

  • SharePoint 2010: метод Lists.GetListItemChangesWithKnowledge предполагает, что этот метод был введен с синхронизацией SharePoint 2010 и SharePoint Workspace - я не смогt проверить это, хотя
  • Важный бит "возвращает все элементы списка, которые соответствуют заданным критериям и которые изменились с даты-времени, указанной в параметре знаний дляуказанный список "
  • Дайвинг далее в: элемент knowledge содержит" структуру данных знаний Microsoft Sync Framework "(MSDN), что, например, объясняется здесь ( Microsoft Sync Framework, часть 2: Синхронизация метаданных ).

GetListItemChangesSinceToken ( другая документация MSDN )

  • Следует будь намиed вместо GetListItemChanges в соответствии с MSDN (см. ссылку выше).Я предполагаю, что его следует использовать, потому что элемент Change дополнительно определяет элемент списка для получения, как он говорит «Если ничего не передано, возвращаются все элементы в списке.»
  • На самом деле changeToken содержит что-то из Журнала изменений , который, в свою очередь, содержит информацию о добавлениях, удалениях, переименованиях и т. Д. -> Это полезно, если в вашем приложении есть глубокая синхронизация
  • Вкл. Синхронизация с Windows SharePoint Services, часть 1 объяснена синхронизация, включая небольшую информацию о changeToken.

Описание: Мне кажется, что ... метод WithKnowledge немного сложнее, так как он использует синтаксис запроса Microsoft Sync Framework, который включает временные ограничения для изменений.Метод ... SinceToken запрашивает только все изменения с указанным действием (например, Удалить) без ограничения по времени.
Задайте себе вопрос: Вы действительно хотите реализовать такие сложные методы с отсутствием документации, которая может быть изменена?Я бы предложил сделать две вещи: проанализировать (например, через Fiddler) трафик, который генерирует Microsoft Workspace 2010 (также проверьте Word / Outlook).Какие методы использует?Не могли бы вы реализовать нечто подобное?Разве GetListItemChanges не достаточно для большинства приложений?

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