Логическая база данных






n Логическая база данных выполняет три основных функции:

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

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

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

n Логическая база данных включает драйвер базы данных SAPDBPNP. Если Вам необходимо создать собственный аналитический отчет с помощью логической базы данных, то при ведении атрибутов отчета следует активировать драйвер базы данных.

 

 



n Структура Pnnnn содержит поля ключа и данных инфо-типа.

n Чтобы при определении данных по возможности избежать избыточности данных, поля данных в структуре PSnnnn объединяются. В дальнейшем при определении других структур и таблиц в ABAP-словаре можно использовать структуру PSnnnn в качестве подструктуры.

n Структура Qnnnn содержит специальные поля экрана соответствующего инфо-типа.

n В таблицах баз данных PAnnnn (Администрирование персонала) и PBnnnn (Набор новых сотрудников) хранятся записи данных инфо-типа nnnn. В таблицах базы данных PCLn данные вводятся в память в кластерной форме (например, результаты табельного учета, расчета командировочных расходов или зарплаты).

n Таблицы баз данных PAnnnn и PBnnnn прозрачны, то есть:

Ÿ Каждый инфо-тип имеет собственную базу данных.

Ÿ Каждый инфо-тип имеет индивидуальную длину, поэтому нет необходимости резервировать в базе данных дополнительное свободное место.

Ÿ Ускоряется поиск информации (через индексный поиск).

Ÿ Инфо-типы могут быть проанализированы с помощью любых SQL-инструментов.

 



n Структура Pnnnn используется в отчетах в форме строки полей как интерфейс между программой и базой данных. Она содержит поля данных структуры PSnnnn и дополнительные поля данных, которые присутствуют во всех инфо-типах. Ключ PSKEY содержит поля структуры PAKEY плюс одно дополнительное поле для инфо-типа nnnn. Поле Мандант в этой структуре не используется.

 

 



n Поля, которые появляются на экране для всех инфо-типов (например колонтитулы), хранятся в структуре RP50M.

n Для многих инфо-типов дополнительно существует структура Qnnnn. В ней содержатся поля экрана для ввода данных. Например, в поле P0002-ANRED хранится обращение для сотрудника с цифровым ключом. Однако на экране необходимо иметь возможность просматривать и вводить не цифровое значение, а соответствующее название. В этом случае используется дополнительное поле Q0002-ANREX.

 



n Структура PERNR содержит стандартные выборки для отчетов по основным данным HR. Они состоят из табельного номера, полей инфо-типов 0000 и 0001, а также некоторых других полей.

n В момент GET структуры данных указанных инфо-типов заполняются всеми имеющимися записями табельного номера.

 



n Под языковым элементом момента GET PERNR представлены структуры инфо-типов, заполненные в оперативной памяти.

n Структуры инфо-типов - это внутренние таблицы, которые обрабатываются в цикле РROVIDE-ENDPROVIDE.

n Записи инфо-типов, находящиеся в выбранном периоде (BETWEEN-AND), поочередно предоставляются в структуре Pnnnn. В качестве периода, как правило, используется период выбора данных, представленный на экране выбора в виде переменных PN-BEGDA и PN-ENDDA.

 



n Обработка данных персонала происходит в двух циклах, которые вложены друг в друга:

n Цикл GET PERNR - по количеству выбранных табельных номеров. Он неявно закрывается следующим событием, например END-OF-SELECTION.

n Нижестоящие циклы каждого инфо-типа используются для обработки всех записей инфо-типа.

 

 



n Данные в инфо-типах являются зависимыми от периода. Это означает, что они действительны только в течение ограниченного периода времени. Поэтому каждая запись имеет дату начала и дату конца срока действия.

n В данном примере показана динамика служебного роста сотрудницы за период одного года.

n Решение о том, как должны быть представлены данные, принимается для каждого инфо-типа.

 



n Решающим обстоятельством для обоих видов выбора данных является период выбора данных, указанный на экране выбора.

n Команда PROVIDE выдает данные в зависимости от периода, то есть согласно указанному периоду выбора данных.

n Во многих случаях требуются не все записи инфо-типов, а только последняя или первая запись в выбранном периоде. В таких случаях можно воспользоваться макросами RP_PROVIDE_FROM_LAST и RP_PROVIDE_FROM-FRST.

 

 



n При предварительном отборе различают два вида выбора: выбор лиц и выбор данных.

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

n Период выбора данных ограничивает интервал времени, в котором будут анализироваться данные.

n На экране выбора можно изменить последовательность сортировки записей данных персонала.

 



n Цель выбора лиц - определить группу сотрудников, для которых будет выполнен анализ.

n Сотрудников можно выбирать, например, по следующим критериям:

n интервал табельных номеров;

n признаки организационного присвоения, например сотрудники по определенному
месту возникновения затрат, по определенному исполнителю и т.д.;

n статус работника, например активный или неактивный.

 



n С помощью периода выбора данных в цикле PROVIDE вводятся те записи инфо-типа, период действия которых пересекается с выбранным периодом хотя бы на один день.

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

 



n В момент INITIALIZATION вы можете установить значения по умолчанию для экрана выбора.

n Поля для выбора данных определены в структуре QPPNP, для поля PNPTIMED возможны следующие значения:

Ÿ D = контрольная дата

Ÿ M = месяц

Ÿ Y = год

Ÿ P = прошлый период вплоть до текущей даты

Ÿ F = будущий период, начиная с текущей даты.

n Поля для выбора лиц определены в Include-программе DBPNPSEL. В данном случае речь идет о внутренних таблицах, которые нужно заполнять с помощью APPEND.

 



n Стандартная последовательность сортировки - в восходящем порядке по табельным номерам.

n Функциональная клавиша Сортировать позволяет сортировать данные аналитического отчета по организационным критериям.

n Опция сортировки делает возможной, например, иерархическую сортировку списка по подразделам персонала и исполнителям, а также сортировку сотрудников по алфавиту.

n Для сортировки подходят все поля инфо-типа "Oрганизационное присвоение". Последовательность сортировки определяется пользователем.

n Для аналитических отчетов, относящихся к определенному периоду, можно выбрать различные типы сортировки.

n Если выбор был произведен по коду поиска, то табельные номера будут сортироваться в последовательности кода поиска.

n Если отчету в атрибутах присваивается класс (например ___X2001), который разрешает доступ через организационную структуру, то данные персонала будут выводиться согласно выбранной организационной структуре.

 



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

n 1 Поля выбора логической базы данных за исключением соединенных полей передаются непосредственно в базу данных.

n 2 При выборке массива выполняется массовое обращение к базе данных. Благодаря этому сокращается число физических обращений к базе данных и повышается скорость обработки.

3 Комбинация опций 1 и 2 дает наивысшую производительность.

n Для опций 1 и 3 необходимо проверить, имеются ли необходимые системные предпосылки (база данных, профили базы данных).

n Если выбраны опции 2 и 3, то отчет занимает больше места в оперативной памяти, поскольку при этом используются более крупные внутренние таблицы.