Sharepoint: Фильтрация представлений по статусу рабочего процесса

Когда Вы добавляете рабочий процесс (Workflow, далее по тексту — РП) к списку после первого запуска в списке создается поле (столбец), имя которого равно имени РП. В этом поле записывается статус рабочего процесса, а рендерится он в виде имени статуса РП и ссылкой на страницу состояния этого РП.

Крайне полезным бывает создавать представления, в которых список отфильтрован по состоянию РП. Например представление “Завершенные РП”. Но тут могут возникнуть проблемы – если Вы попытаетесь в фильтре выбрать поле РП, а затем указать значение фильтра в “Завершен”, то такой фильтр работать не будет.

Причина тому – тип поля РП. Поле РП имеет тип int (целочисленное), и соответственно хранит в себе цифровое обозначение текущего состояния РП. Стандартные состояния и их значение таковы (см. SPWorkflowStatus Enumeration (Microsoft.SharePoint.Workflow)):

Текстовое значение Числовое значение
Не запущен*  
Ошибка при старте 1
В ходе выполнения 2
Ошибка 3
Отменен 4
Завершен 5
Ошибка при старте. Перезапуск. 6
Ошибка. Перезапуск. 7

*Для не начатых РП значение этого поля – “пусто”, хотя в API используется значение, равное нулю.

Т.е. для того, что отфильтровать данное поле необходимо в фильтре выбрать поле РП, а в значение подставить соответствующее числовое значение.

Эту особенность следует учитывать и при сортировке – не удивляйтесь, что элементы со значением поле равной “Ошибка” идут раньше, чем со значением “Завершен”.

Есть еще одно замечание – при использовании кастомного статуса РП нужно помнить, что новые статусы будут начинаться с 15 (SPWorkflowStatus.Max).

PS Информация актуальна как для WSS3\MOSS2007, так и для Sharepoint Foundation\MOSS2010.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: