Получение опубликованных элементов списка

Существует поле списка, показывающий текущий статус публикации его элемента.

Название этого поля - _Level.

Данное поле равно 1, если элемент опубликован и 2, если не опубликован.

Вот простое выражение CAML для получения опубликованных в настоящее время элементов списка:

<Where<Eq><FieldRef Name='_Level' /><Value Type='Number'>1</Value></Eq></Where>.

Следует отметить, что данное поле отражает только сам факт публикации последней версии элемента.

Если уже существуют опубликованные версия 1.0, но последняя (2.0, например) находится на рассмотрении, то значение поле для элемента будет 2.

Для более гранулированного управления поведением запроса, можно дополнительно проверять поле _ModerationStatus, которое равно 0, если элемент одобрен.

Следует отметить, что это поле работает по-разному, для разных групп пользователей: для "нередакторов" она возвращает 0, если существует хотя бы одна опубликованная версия элемента. Для уполномоченных редакторов, она возвращает 1, если последняя версия находится на рассмотрении.

Остается открытым вопрос, как редакторам узнать есть ли опубликованная версия документа?

Есть предположение, что через CAML, к сожалению, это узнать невозможно :(

Comments