Оперативный запрос
Каждый функциональный консультант, занимающийся 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. Основное предназначение этих свойств заключается в том, что выбранное поле может участвовать либо при формировании запроса (то есть доступно на селекционном экране), либо участвовать только в результатах работы отчета (то есть будет доступно непосредственно в запросе). Возможна комбинация обоих свойств. Таким образом вам необходимо определить:
- Какие поля будут доступны на селекционном экране
- Какие поля будут доступны в результате выполнения отчета
Небольшой юзерхак: если кликнуть правой кнопкой мыши по полю в области 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
Теперь, после запуска вашего оперативного запроса, который производится по нажатию на кнопку
Вам станет доступен селекционный экран, который даст вам возможность установить фильтры в предназначенных для этого полях
Ах да, ну и финальный вариант отчета будет выглядеть примерно так:
Резюме
Оперативные запросы - это легко. Признаться, сам я не очень ими восхищаюсь, и стараюсь их не использовать. Ответ на вопрос "почему?" вполне может уместиться в еще одну заметку, в которой я постараюсь привести реальные примеры, чтобы было наглядно. Но тем не менее это доступный инструмент как для консультантов, так и для пользователей для быстрого получения информации по сотрудникам/штатной структуре компании. Удобство также заключается в том, что для любого оперативного запроса можно создать транзакцию, и включить ее в пользовательскую роль, тем самым облегчив жизнь себе и пользователю. Отдельно стоит отметить функцию добавления программируемых полей, которые бывают так нужны пользователям системы. Но это материал для будущих заметок. Оставайтесь на связи.