Оперативный запрос

Каждый функциональный консультант, занимающийся HR/HCM, должен «съесть собаку» при создании оперативных запросов. Потом должно пройти какое-то время, и очередная собака, простите, на подходе. Оперативный запрос — доступный инструмент для быстрого получения данных по персоналу и по объектам организационного менеджмента. В данной заметке я рассмотрю пример его создания с нуля.

0. Задача

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

1. Инфо-набор

Знакомство и погружение в тему оперативных запросов всегда начинается с инфо-наборов. Инфо-набор - это определенный пользователем (консультантом) набор инфо-типов и полей, которые будут доступны для последующего построения отчетов. Инфо-наборы могут быть созданы на основе логической базы данных (ЛБД) или на основе определенной таблицы.

Более подробно про логические базы данных можно почитать здесь: Logical Databases

Почти всегда, по крайней мере в моей практике, я сталкивался с тем, что все инфо-наборы создавались на основании стандартных логических баз данных PCH и PNPCE. Основное отличие этих ЛДБ заключается в следующем:

  • PCH - будет полезна при создании оперативных запросов по объектам организационного менеджмента (например, организационные единицы, квалификации, штатные должности, должности, функциональные сферы и т.д.);
  • PNPCE - будет полезна при создании оперативных запросов по основным данным персонала (например, организационное присвоение, персональные данные, основные выплаты, банковские данные, отсутствия, присутствия и т.д.)
    Создание инфо-набора осуществляется посредством транзакции SQ02

Стоит сразу обратить внимание на поле Query Area

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

  • Стандартная (Standard Area)

    • При использовании стандартной области, все инфо-наборы и запросы остаются в том клиенте системы, в котором вы их создали.
  • Глобальная (Global Area)

    • При использовании глобальной области, все инфо-наборы и запросы становятся доступны во всех клиентах системы, в котором они были созданы. Соответственно, при работе с ними создается транспортный запрос на перенос.

Более подробно про рабочие области можно почитать здесь: Query Areas

Итак, мы остаемся в стандартной рабочей области. Если необходимо ее переключить, выберите в меню Environment -> Query Areas

Введите наименование создаваемого инфо-набора и нажмите на кнопку Create

Еще раз введите наименование инфо-набора и введите наименование ЛБД PNPCE

Теперь необходимо выбрать инфо-типы, которые будут участвовать в создании вашего оперативного запроса. Я ограничусь инфо-типами:

  • 0000 - Мероприятия
  • 0001 - Организационное присвоение
  • 0002 - Персональные данные

Перед вами откроется редактор создаваемого инфо-набора

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

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

2. Создание пользовательской группы и присвоение ей инфо-набора

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

Введите наименование группы и нажмите на кнопку Save

Затем необходимо присвоить новой группе пользователя(ей) и инфо-набор, нажатием на кнопку .

Введите имя пользователя (я выберу свой логин), и нажмите на кнопку Assign InfoSets

Выберите из списка свой инфо-набор и нажмите на кнопку Сохранить

В результате появится информационное сообщение вида .

3. Создание оперативного запроса

Основная часть работы сделана. Приступаем к созданию оперативного запроса. Запустите транзакцию SQ01

Стоит обратить внимание на пользовательскую группу, которая выбрана при запуске транзакции. Если ваша учетная запись уже присвоена какой-нибудь пользовательской группе, то она, скорее всего, будет вам доступна по умолчанию. Если же нет, ее необходимо сменить. Для этого нажмите на кнопку  Other user group

Выберите в списке свою группу, и нажмите на кнопку Choose

Введите наименование запроса, и нажмите на кнопку 

Подтвердите выбор инфо-набора, на основании которого будет создан запрос

Перед вами откроется редактор запроса

Тут все просто. Слева вверху вы видите инфо-типы, которые были выбраны при создании инфо-набора (см. Раздел #1. Инфо-набор). На основании этих полей мы и будем формировать будущий запрос. Справа будут отображаться поля, которые мы выберем для использования в запросе. Внизу же - область предварительного просмотра данных.

Раскройте группу каких-нибудь полей, в области Field group/fields

Для каждого поля доступны свойства Selection и Output. Основное предназначение этих свойств заключается в том, что выбранное поле может участвовать либо при формировании запроса (то есть доступно на селекционном экране), либо участвовать только в результатах работы отчета (то есть будет доступно непосредственно в запросе). Возможна комбинация обоих свойств. Таким образом вам необходимо определить:

  1. Какие поля будут доступны на селекционном экране
  2. Какие поля будут доступны в результате выполнения отчета

Небольшой юзерхак: если кликнуть правой кнопкой мыши по полю в области Output, вам станет доступно меню выбора того, какие данные необходимо вывести по полю. Например, для поля Табельный номер, помимо самого табельного номера, можно вывести и текст, то есть ФИО сотрудника.

Я буду использовать следующие поля в качестве выборки:

  • Employment Status
  • Organizational Unit

В качестве полей вывода:

  • Personnel Number (включая ФИО сотрудника,  по аналогии с тем, что я показывал на Рисунке 21);
  • Company Code (включая наименование, по аналогии с тем, что показано на Рисунке 21);
  • Organizational Unit (включая наименование, по аналогии с тем, что показано на Рисунке 21);
    Достаточно. Обратите внимание на область предварительного просмотра

Приблизительно так будет выглядеть ваш отчет. Можно также просмотреть его но уже с учетом реальных данных. Для этого выберите какие-нибудь значения для тех полей у которых активирована опция Selection. В моем случае - это Employment Status и Organizational Unit. К примеру, я выберу данные по какой-нибудь организационной единице, и только по активным (не уволенным) сотрудникам

Нажмите на кнопку , затем на 

Можно сказать, что основная часть работы сделана. Сохраните свой запрос.

Небольшой юзерхак: находясь в редакторе запроса, выберите в меню Edit ->  Settings

Активируйте опцию Start via selection screen

Теперь, после запуска вашего оперативного запроса, который производится по нажатию на кнопку 

Вам станет доступен селекционный экран, который даст вам возможность установить фильтры в предназначенных для этого полях

Ах да, ну и финальный вариант отчета будет выглядеть примерно так:

Резюме

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