ЛБД PNPCE

ЛБД PNPCE служит для выбора данных модуля PA и является более новой версией ЛБД PNP c функциями для работы с центральным лицом(CE). На сегодняшний день в 100% случаях используется именно она, даже если работа с CE вам не нужна.
Как и в случае с организационным менеджментом при разработке отчетов для администрирования персонала необходимо использовать ЛБД. Не буду повторятся о необходимости использования, почитайте.

Это не полное руководство, а лишь обзор ЛБД PNPCE

ЛБД PNPCE также как и как и остальные ЛБД, осуществляет выборку данных, указанных инфо-типов. И имеет следующие события:
Get person - в данном событии производится выбор данных всех ТН пользователя;
Get peras - самое часто используемое событие. Осуществляет выборку данных для текущего ТН.
Get group -  новое событие, позволяет выбирать всех пользователей группы.  НЕ использовал данное событие. Более подробно рассказать не могу. 
Для того, что бы ИТ был прочитан в определенном событии надо установить режим. 
INFOTYPES nnnn                                                        - для get peras
INFOTYPES nnnn AS PERSON TABLE                  - для get group
INFOTYPES nnnn AS PERSON TABLE MODE P  - для get person
Рассмотрим простой пример использования ЛБД.
1. Пропишем ЛБД в свойствах отчета.

NODES - указываем  какие события мы хотим использовать.
INFOTYPES -  указываем список инфо-типов для выборки данных. При этом автоматически создаются и заполняются в событии GET peras  внутренние таблицы PXXXX, для обрабатываемого ТН.  Надо обратить внимание, что каждый раз при чтении ИТ происходит проверка полномочий, и если у пользователя нет данных хотя бы на один подтип ИТ, ВЕСЬ ТАБЕЛЬНЫЙ НОМЕР БУДЕТ ПРОПУЩЕН. Как избежать данной ситуации можно прочитать здесь. 
 Также необходимо объявить TABLES pernr. Без этого селекционный экран не будет создан.


GET peras -   Позволяет обрабатывать данные в цикле  GET peras - END-OF-SELECTION
После запуска получим следующий экран.

 
Данный экран можно настраивать под свои нужды при помощи класса отчета.

Также ЛБД имеет несколько макросов и параметров, которые позволяют ей менять свои настройки.  Рассмотрим самые используемые.
Макросы RP_SET_DATA_INTERVAL, RP_SET_DATA_INTERVAL_INFTY и
RP_SET_DATA_INTERVAL_ALL - позволяют изменить период выборки данных для инфо-типов, если их указать в событии START-OF-SELECTION. 
ФЛАГ pnp_sw_skip_pernr если установить значение в N, ЛБД перестанет пропускать табельный номер при отсутствии полномочий на какой-либо отдельный объект. Будет выведена вся доступная информация для ТН, согласно полномочиям.
RP_PROVIDE_FROM_LAST pXXXX subty begda endda - макрос возвращает последнюю запись ИТ указанного подтипа или любого в случае space  на даты. При использовании ООП подхода запрещено использовать таблицы с заголовками и не будет работать.
RP_PROVIDE_FROM_FRST pXXXX subty begda endda - первая запись в периоде.
Флаг  PNP-SW-FOUND - флаг взводится в 1, если макросы RP_PROVIDE_FROM_FRST или RP_PROVIDE_FROM_LAST нашли запись. Некий аналог sy-subrc при READ TABLE. 
Выглядит это примерно так:

Макросов и возможностей ЛБД гораздо больше, о всем этом можно узнать в документации. Однако, на реальных проектах, как правило, используются в основном эти макросы и событие GET PERAS.  Только пару раз видел событие GET GROUP  в стандартном отчете. Остальные макросы типа чтения инфо-типа, получения результата расчета, апдейт данных и т.д. не используются По крайней мере за 8 лет работы в модуле HCM, я  не видел. При необходимости можно прочитать про их использование в сети.


Если у вас есть дополнения или замечания по использованию PNPCE, пишите поправлю статью.


Дополнительная информация:
Pnpce Help
Еще немного

ЛБД PNPCE: 2 комментария

  1. Добрый день! Хорошо пишете – стало понятнее с лбд. Спасибо!
    было удобно карту блога сделать, чтобы легче было бы ориентироваться.
    И можете описать как работать с pdf документами в HR?

    1. PDF документы в HR такие же, как и в других модулях. Только на практике встречается реже в Zпрограммах. Возможно, в будущем добавлю в блог заметку по работе с PDF.

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

Ваш адрес email не будет опубликован.