ЛБД PNPCE служит для выбора данных модуля PA и является более новой версией ЛБД PNP c функциями для работы с центральным лицом(CE). На сегодняшний день в 100% случаях используется именно она, даже если работа с CE вам не нужна. Как и в случае с организационным менеджментом при разработке отчетов для администрирования персонала необходимо использовать ЛБД. Не буду повторятся о необходимости использования, почитайте.
Для разработчиков, не знакомых с HCM, будет полезным узнать подходе к разработке, основанном на логических базах данных. Если кратко, то ЛБД позволяет извлекать типовые данные HCM, не используя SELECT и даже FM-ы для чтения. Они, конечно, используются в глубине логики ЛБД, но скрыты от разработчика. Небольшая оговорка для не HCM программистов - когда вы используете для доступа к инфо-типам SELECT, в 99% случаях вы делаете не правильно. Бегом читать курс HR350. Модуль HCM работает с персональными данными людей, данная информация всегда жестко защищена законодательством и несанкционированный доступ к ней карается. Если вы не используете ЛБД или специализированные ФМ-мы необходимо проверять полномочия отдельно. Кроме того, ЛБД создает экран программы(рис 1.), который удовлетворяет большинство потребностей HCM приложений. Будем честны, как правило, они не так уж и сложны. При этом экран можно настраивать. Разберем создание отчета на базе ЛБД PCH, данная ЛБД используется для доступа к данным организационного менеджмента, т.к. очень хорошо работает с организационной структурой.
ЛБД очень полезный инструмент при программировании в HR. А экраны, которые они создают, подходят в 90% случаях. Но что же делать если некоторые поля надо скрыть от шаловливых рук пользователей. Для этого и существует класс отчета. Даже если вы никогда его не прописывали для ЛБД, поверьте, он существует и используется в ваших отчетах.
Допустим, для нашего тестового отчета мы хотим оставить на экране только поле "Табельный номер". И еще два поля "Вид мероприятия" и "Причина мероприятия" мы можем выбрать, но по умолчанию их на экране не должно быть.
Немного сумбурных мыслей. Информация для разработчиков, которые ранее не работали с модулем HR и не очень понимают, зачем при разработке в данном модуле использовать ЛБД или ФМ для выборки данных вместо селектов. Как всегда более подробно в курсах. В данном случае это HR350. Не претендую на идеальное и полное изложение материала.
Бывает, что табельный номер не попадает в выборку события GET pernr. Одна из причин - нехватка полномочий на один из инфо-типов или даже подтипов. Если у нас нет возможности добавить полномочий пользователю, можно использовать макрос pnp_sw_skip_pernr = N. Табельный номер не будет пропущен, но данные выберутся только из подтипов на которые есть полномочия.
Буфер PS - используется, когда для обновления основных данных вызывается функциональный модуль 'HR_INFOTYPE_OPERATION'. При чтении основных данных с помощью функционального модуля 'HR_READ_INFOTYPE'.
Буфер PRELP - также называется буфером PNP. Предназначен для работы с огромными объемами данных. В программах PNP не следует вызывать функции, считывающие инфо-типы с буфером PS или другим буфером. Потому что это вызывает задержку в чтении.
При чтении данным классом используется тот же буфер, который использует ЛБД.