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

0. Задача

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

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

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

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

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

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

Рисунок 1.

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

Рисунок 2.

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

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

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

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

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

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

Рисунок 3.

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

Рисунок 4.

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

Рисунок 5.

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

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

Рисунок 6.

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

Рисунок 7.

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

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

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

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

Рисунок 10.

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

Рисунок 11.

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

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

Рисунок 12.

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

Рисунок 13.

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

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

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

Рисунок 14.

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

Рисунок 15.

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

Рисунок 16.

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

Рисунок 17.

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

Рисунок 18.

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

Рисунок 19.

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

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

Рисунок 20.

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

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

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

Рисунок 21.

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

  • Employment Status
  • Organizational Unit

Рисунок 22.

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

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

Рисунок 23.

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

Рисунок 24.

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

Рисунок 25.

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

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

Рисунок 26.

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

Рисунок 27.

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

Рисунок 28.

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

Рисунок 29.

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

Рисунок 30.

Резюме

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