ЛБД PCH

Для разработчиков, не знакомых с HCM, будет полезным узнать подходе к разработке, основанном на логических базах данных.
Если кратко, то ЛБД позволяет извлекать типовые данные HCM, не используя SELECT и даже FM-ы для чтения. Они, конечно, используются в глубине логики ЛБД, но скрыты от разработчика.
Небольшая оговорка для не HCM программистов - когда вы используете для доступа к инфо-типам SELECT, в 99% случаях вы делаете не правильно. Бегом читать курс HR350. Модуль HCM работает с персональными данными людей, данная информация всегда жестко защищена законодательством и несанкционированный доступ к ней карается. Если вы не используете ЛБД или специализированные ФМ-мы необходимо проверять полномочия отдельно.
Кроме того, ЛБД создает экран программы(рис 1.), который удовлетворяет большинство потребностей HCM приложений. Будем честны, как правило, они не так уж и сложны. При этом экран можно настраивать.
Разберем создание отчета на базе ЛБД PCH, данная ЛБД используется для доступа к данным организационного менеджмента, т.к. очень хорошо работает с организационной структурой.

Создание отчета на основе ЛБД PCH

  1. Необходимо прописать логическую базу данных в свойствах. В нашем случае PCH

Далее необходимо написать код(пример в блоке ниже). Все, готово. Если вы запустите программу  увидите экран. Далее, согласно параметрам селекционного экрана, внутренние таблицы будут наполнятся данными объектов.

 

Рассмотрим подробнее.
TABLES:  Непосредственно влияет на экран отчета и выбор данных.
 а) OBJEC - позволяет объявить событие GET OBJEC.  Также в ходе выполнения события GET OBJEC  можно будет обращаться к структуре OBJEC  за информацией о текущем объекте. 
б) GDSTR- Переключает режимы выборки. Если ее не указывать, то объекты выбираются по ключам. Если же указывать, на экране появляется дополнительный блок полей, в котором можно указать путь анализа для поиска объектов.(рис.3.) Чаще всего так и нужно делать.

   
Рис. 3 Блок ПараметрСтруктуры
Рассмотрим получившийся экран подробнее:
Вариант плана( PCHPLVAR) - вариант плана отображения структуры. В Российских проектах почти всегда это 01.
Тип объекта ( PCHOTYPE ) - тип объекта HR . Например О - организационная единица, S - штатная должность, С - должность и т.д.
Ид. объекта (PCHOBJID)-  Ид. объекта HR. 
Критерий поиска( PCHSEARK ) -  в теории можно  указать *Часть_имени*  и должно выбирать объекты согласно этому. Но я ни разу не использовал
Статус объекта и Статус данных - позволяет выбирать объекты и данные в разных состояниях. Например Активно, Запланировано. Но на практике обычно в системе только Активные объекты.
Путь Анализа(PCHWEGID) -  собственно путь анализа. Позволяет искать объекте в структуре организационного менеджмента.
Глубина просмотра( PCHDEPTH ) - позволяет указать на сколько уровней мы поднимаемся или опускаемся по организационной структуре.
Остальные поля ( Вектор статуса и Перекрытие статуса) в своей практике не использовал. Их работа связанна со статусом планирования данных, что в Российских реалиях практически не применяется.

Как это все работает.

После заполнения экрана программы и запуска, в цикле отрабатывает событие GET OBJEC. Которое предоставляет последовательный доступ к выбранным данным, согласно условиям селекционного экрана. При этом происходит заполнение внутренних таблиц pnnnn данными инфо-типов. Каких таблиц, что ты несешь? спросите вы. А вот тех, которые мы объявили в операторе INFOTYPES:. Да, да, это не просто  какое-то перечисление инфо-типов, а именно объявление таблиц для последующего автоматического сбора данных.
Все очень удобно. Однако, при работе с PCH  есть небольшая особенность.  Отдельные инфо-типы организационного менеджмента являются табличными. Т.е. данные хранятся не только в таблицe HRP*, а еще и в таблице HRT*, связанной по ключу TABNR с первой. Вот тут возникает необходимость выбрать их в дополнительную таблицу на основе структуры HRT*.  Есть два пути.
1. Использование макроса ЛБД PCH RH-GET-TBDAT

Этот способ самый быстрый, макрос выбирает данные из буфера ЛБД. Но если вы используете ООП, он не применим.
2. Лично мне больше нравится выбор при помощи ИТ. Тем более в HR  отчетах не такие огромные объемы данных, чтобы просадка производительности была заметна.


Макросы PCH

Самые распространенные макросы при работе с ЛБД PCH следующие:

RH-GET-TBDAT - выбор табличной части ИТ;

RH_SEL_ONE_OBJID - используется в событии INITIALIZATION, чтобы гарантировать, что пользователь может ввести только один идентификатор объекта на экране выбора;

RH_SEL_KEYDATE - оставляет на экране выбора только контрольную дату;

Последовательность макросов, позволяющая выбирать данные из инфо-типов по значению поля. В данном примере выберем данные ИТ 1003 с полем ABTEL = 'X'.

Более подробно можно прочитать в курсе HR350

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

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