Первоначально статья опубликвована Хитер О'Кулл () на английском языке здесь.

В предыдущей записи блога описывались некоторые улучшения, внесенные в расписания Project Web App (PWA) 2013 для удобства конечных пользователей. И хотя эти улучшения, безусловно, важны и необходимы, поскольку затрагивают самую большую аудиторию приложения PWA, мы ни в коем случае не забываем и об администраторах с разработчиками.

На самом деле, некоторые из подобных улучшений касаются в равной степени и конечных пользователей, и администраторов. Они же в итоге упрощают жизнь всем, а кто может быть против обоюдной выгоды?

Внепроектная работа

Наши пользователи часто просят добавить в расписания PWA поддержку таких строк, которые не относятся к конкретному проекту, но и не являются личными задачами. Такой работой, к примеру, может быть обработка запросов в службу поддержки или текущее обслуживание. В PWA 2013 мы включили данную форму работы в понятие категорий административного времени, и теперь в административную категорию каждого расписания можно добавлять по нескольку строк.

 

Обратите внимание, что в интерфейс параметров PWA для настройки категорий административного времени был добавлен дополнительный флажок Allow Multiple Lines (Разрешить использование нескольких строк). В этом примере я настроил категорию Service Tickets (Запрос в службу поддержки), с помощью которой сотрудники моего отдела смогут отслеживать время, потраченное на задачи обслуживания, которые не относятся к конкретному проекту.

Заметьте, что в пользовательском интерфейсе параметр Administrative Time (Административное время) теперь называется Non-Project Work (Внепроектная работа). Это изменение отражает обширную тематику строк, которые могут попасть в эту категорию. Если я, будучи конечным пользователем, хотел бы отследить время, потраченное на обработку запроса в службу поддержки, то теперь для этого мне нужно лишь добавить в свое расписание непроектную строку.

Появляется диалоговое окно, в котором можно выбрать категорию и добавить к ней описание.

Помимо этого, можно по-прежнему добавлять такие строки, как Vacation (Отпуск) и Sick Time (Временная нетрудоспособность). Для этого достаточно выбрать соответствующую категорию. Поскольку в этих двух категориях не реализована поддержка нескольких строк, то и добавляются строки точно так же, как и в предыдущих версиях. Мы решили отделить категории с несколькими строками от категорий без их поддержки, чтобы не создавать трудностей для тех пользователей, которым новая возможность не нужна. Кроме того, иногда требуется разрешить пользователям добавлять за один период только одну строку отпуска, при этом в других категориях строк может быть несколько.

Итак, я ввел номер запроса, временные затраты на который я планирую отслеживать, и могу добавить его в свое расписание, нажав кнопку OK.

Как видно, теперь в моем расписании две задачи (для запросов 3423 и 3437), и обе в категории Service Tickets (Запросы в службу поддержки). Возможно, из моей предыдущей записи вы помните, что теперь административные строки переносятся в новые расписания на будущие периоды. Это новшество дополняет сценарий внепроектной работы: теперь эти строки запросов на поддержку будут автоматически доступны в будущие периоды. Иными словами, если мне нужно будет и впредь отслеживать работу по ним, то никаких специальных действий от меня не потребуется.

В этом примере мы показали, как добавлять строки в расписание вручную. Однако можно добиться более тесной интеграции со сторонней системой обработки запросов на обслуживание. Для этого используются обработчики событий, которые позволяют автоматически добавлять строки для назначенных запросов в расписание пользователя, а затем при сдаче или утверждении расписания проверять данные строк и импортировать их обратно в такую систему. Чуть ниже я подробно остановлюсь на улучшениях обработчиков событий, которые были реализованы для поддержки этого сценария.

Фильтрация административных категорий по отделу

В предыдущем примере вы, возможно, заметили еще одно новшество на странице настройки категорий административного времени, а именно — возможность сопоставить эти категории отделам.

Эта возможность была реализована в ответ на еще одну распространенную просьбу наших заказчиков. В частности, большим организациям требовалась фильтрация административных категорий, поскольку отдельному пользователю обычно необходима лишь малая часть их множества. В версии 2013 можно указать отдел, который будет добавлять в расписание ту или иную строку (если отдел не указан, значит, категория доступна для всех). Можно указать и несколько отделов. В изображенном примере категория Customer Travel (Поездки к заказчику) будет отображаться для руководителей и маркетингового отдела, а категория Service Tickets (Запросы в службу поддержки) — только для сотрудников технического отдела.

Важно отметить, что фильтрация административных категорий не является мерой безопасности — это сделано для удобства работы с интерфейсом. Данная функция влияет только на то, какие категории административного времени видят конечные пользователи в раскрывающемся списке при выборе одной из них, когда добавляют в свое расписание административную строку. Пользователи будут по-пре��нему видеть в своем расписании строку, которую они ранее добавили, даже если при изменении настроек эта категория будет недоступна для добавления в их расписание (к примеру, если их переведут в другой отдел или их отдел будет удален из административной категории). Не влияет новая функция и на ранее созданные расписания (даже при их повторном вызове). Это позволит сохранить единообразие архивных данных расписаний.

Конфигурация представления по умолчанию

Стремясь упростить работу конечных пользователей с расписаниями, мы выяснили, что многие компании хотели бы заранее настраивать представление расписания (параметры группировки, сортировки и др.) для пользователей, чтобы избавить их от этих забот. Поэтому в версии 2013 на страницу конфигурации представлений расписания был добавлен дополнительный раздел, в котором администраторы могут предварительно настроить ряд параметров.

Обратите внимание, что при желании конечные пользователи по-прежнему могут изменять параметры представления. При этом параметры, введенные администраторами, не будут переопределять пользовательские параметры. И вновь данная функция не затрагивает уже существующие расписания, то есть их представление останется прежним.

Список Timesheet Managers (Управляющие расписаниями)

Если не задан фиксированный маршрут утверждения, пользователи расписания могут самостоятельно выбирать следующую учетную запись, которой будет отправляться их расписание при сдаче. В рамках этой конфигурации следующую учетную запись должны выбирать и промежуточные утверждающие (у которых нет разрешения на утверждение расписаний). После промежуточного утверждения расписание отправляется выбранной учетной записи. Эта функция предназначена для использования в случаях, когда основного утверждающего нет на месте или пользователь должен каждый раз отправлять свое расписание разным утверждающим.

В предыдущих версиях список пользователей, которым можно сдавать расписание, составлялся из пользователей с разрешением на принятие расписания. Однако в результате изменений в модели безопасности в версии 2013 данное разрешение устарело. Для заполнения списка пользователей, которым могут сдаваться расписания (список управляющих расписаниями), служит вновь созданный административный интерфейс. В параметрах PWA под заголовком Time and Task Management (Управление временем и задачами) появилась новая ссылка на этот список. Щелкнув ее, вы перейдете на страницу, где можно задать управляющих расписаниями.

Если вам требуется больше возможностей настройки этого списка, вы можете воспользоваться интерфейсом Project Server Interface (PSI). Дополнительную документацию по этому интерфейсу см. по следующим ссылкам:

http://msdn.microsoft.com/ru-ru/library/office/websvcadmin.admin.readtimesheetmanagers_di_pj14mref(v=office.15).aspx

http://msdn.microsoft.com/ru-ru/library/office/websvcadmin.admin.updatetimesheetmanagers(v=office.15).aspx

Улучшенная модель обработки событий

Пользователи расписаний в Project Web App часто просят реализовать дополнительный рабочий процесс для утверждения расписаний. И хотя все возможности Windows Workflow в расписаниях версии 2013 доступны не будут, мы все же сделали некоторые улучшения в этом направлении. Теперь обработчики событий позволяют использовать базовые сценарии маршрутизации и отправки сообщений.

Чтобы включить динамическую маршрутизацию расписаний различным пользователям в зависимости от бизнес-логики, теперь можно задать аргумент ApproverUID в обработчиках событий расписания OnReviewing и OnSubmitting. Это обеспечит динамический выбор учетной записи, которой следует направлять расписания.

Аргумент CancelReason, заданный для обработчиков событий OnUpdating и OnSubmitting, позволит отправлять пользователю сообщения, которые он увидит прямо в интерфейсе расписания. Задав бизнес-логику для проверки отправленных данных расписания, вы сможете автоматически информировать пользователя о том, какие изменения ему нужно внести для успешной отправки расписания.

Рассмотрим сценарий, в котором эти обновления используются в сочетании с ранее обсуждавшимися строками внепроектной работы. Когда пользователь сдает свое расписание, логический компонент проверяет, соответствует ли каждая из строк внепроектной работы в категории Service Ticket (Запрос в службу поддержки) фактическому запросу в сторонней системе поддержки. В случае несоответствия расписание отклоняется. При использовании аргумента CancelReason пользователь информируется о том, какие строки нужно изменить. После успешной отправки расписание утверждается непосредственным руководителем пользователя, однако из-за наличия дополнительных строк внепроектной работы это расписание должен также утвердить ИТ-администратор, который может проверить запрос в службу поддержки. Благодаря аргументу ApproverUID обработчика событий OnReviewing расписание автоматически перенаправляется от непосредственного руководителя пользователя соответствующему ИТ-администратору.

Улучшенная производительность

Наконец, был сделан ряд улучшений в серверной части, благодаря которым ускорилась работа интерфейса расписаний. Главное изменение состоит в том, что процессы сохранения и сдачи расписаний были удалены из очереди и теперь выполняются синхронно, обеспечивая улучшенную производительность и немедленную обратную связь с пользователем. Благодаря этому изменению для администраторов Project Web App упрощается решение проблем с серверной частью. Теперь пользователи будут мгновенно узнавать обо всех проблемах с обработкой расписаний, а администраторы смогут находить записанные сообщения в журнале ULS, и им не придется отслеживать сбои заданий в очереди.