Комментарии по теме

«Настройка экрана инфо-типа «Основные выплаты (0008)»»
Олег Точенюк:
Все конечно интересно, только одна незадача, пользователи обычно имеют доступ к ведению собственных параметров, а это значит, что никто им не помешает поменять в случае чего 99 на 33 или обратно.
«Как эффе­кти­вно испо­льзо­ва­ть инфотипы пла­ни­ру­е­мо­го во­зна­гра­жде­ния для по­стро­е­ния стратегии во­зна­гра­жде­ний»
Юрий Щербаков:
В статье достаточно подробно и, в то же время, компактно описано назначение инфо-типа 1005 (Нормативная оплата), используемого для штатных должностей (объекты типа S). Примечание: Из этих объектов...
«Настройка экрана инфо-типа «Основные выплаты (0008)»»
Олег Точенюк:
Ну потому что по меню: Система - Профиль пользователя - Собственные данные, они попадают в экран управления параметрами по умолчанию типа установки устройства вывода, ну и заодно закладка...

База знаний

Как считывать данные из инфотипов, используя стандартные классы и методы

2574

Ключевое понятие

Объекты ABAP, глобальные интерфейсы ведутся с помощью кода транзакции SE24. В стандартных классах могут реализовываться эти интерфейсы. Любые методы, которые содержатся в реализованных интерфейсах, можно вызвать с помощью объектов этих классов.

Умение извлекать данные из различных инфотипов является существенным требованием для разработчиков SAP ERP HCM. Как правило, требуется в программах отчетов, которые пользователи HCM могут запросить, чтобы видеть данные из одного или нескольких инфотипов сотрудника. SAP предоставляет ряд полезных классов и методов для этой цели. Благодаря легкости и надежности, с которой данные из стандартных и пользовательских инфотипов можно считать в ABAP-программах, знание этих способов имеет важное значение для разработчиков SAP. Более того, использование этого объектно-ориентированного подхода рекомендуется в большей степени, чем использование других методов, таких как использование функциональных модулей или устаревших форм оператора IMPORT.

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

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

Примечание

Основная аудитория для этой статьи SAP HR разработчики и пользователи. Я показываю примеры кода программ и скриншоты, чтобы проиллюстрировать свой подход. Читатели могут легко адаптировать примеры программ, используемые в этой статье, чтобы удовлетворить под их текущие требования.

Классы и интерфейсы для доступа к данным инфотипа

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

Одним из наиболее важных классов, используемых в процессе чтения инфотипов является класс CL_HRPA_READ_INFOTYPE. Он является основным фабричным методом, GET_INSTANCE, что позволяет обработчику получать доступ к необходимым данным инфотипа. Этот обработчик относится к интерфейсу IF_HRPA_READ_INFOTYPE (смотрите следующий раздел этой статьи для получения более подробной информации об этом интерфейсе).

Интерфейс IF_HRPA_READ_INFOTYPE является одним из наиболее важных. Необходимые методы этого интерфейса и их предназначение приведены в табл. 1.

Табл. 1. Метод интерфейса IF_HRPA_READ_INFOTYPE 

Примечание

Исходный фабричный метод является одинаковым для вызова методов READ и READ_SINGLE интерфейса IF_HRPA_READ_INFOTYPE.


Другой важный класс необходимый для правильного доступа к данным —
CL_HR_PNNNN_TYPE_CAST. Данный метод превращает общий внутреннюю таблицу в осмысленную и понятную таблицу инфотипа, которую разработчики могут считывать.
И последнее, но не менее важное, давайте посмотрим на класс CL_HRPA_TEXT_CLUSTER, который предоставляет полезный метод READ для чтения длинного текста, хранящегося в конкретной записи инфотипа.

Чтение набора записей из инфотипа

После того, как вы ознакомились с интерфейсными и фабричными методами, необходимыми для считывающего данные обработчика, можно создать код для программы чтения инфотипа. Для простоты, давайте сначала рассмотрим, как прочитать набор записей, хранящихся в инфотипе. В качестве примера, давайте считывать данные из ИТ 0022-Образование. Первый шаг для извлечения набора записей в заданном периоде дат для конкретного табельного номера сотрудника:

Первый шаг заключается в вызове метода GET_INSTANCE класса CL_HRPA_READ_INFOTYPE, как показано на рис. 1.

Рис. 1. Создание обработчика чтения данных инфотипа

В этом случае используется метод READ (с переменной READING_HANDLE) интерфейса
IF_HRPA_READ_INFOTYPE для чтения набора записей из базы данных. Параметры метода READ показаны на рис. 2.

Рис. 2. Параметры метода READ

Обратите внимание, что этот метод имеет ряд обязательных и дополнительных параметров. Код для считывания данных из инфотипа 0022 показан на рис. 3.

Рис. 3. Вызов метода READ

Здесь вы считываете все записи в инфотипе 0022, для работника с табельным номером 1273, которые действительны на период с 01.01.1990 по 22.09.2015. После того, как отработал метод READ, данные возвращаются во внутреннюю таблицу IT_GENERIC_TABLE. (Это определяется на основе словаря типа таблицы HRPAD_PRELP_TAB.) Эти данные представлены еще не в очень полезной или понятной форме, как показано на рис. 4.

Рис. 4. Данные таблицы IT_GENERIC_DATA

Как вы видите, здесь, все поля данных хранятся вместе в одном поле data1, из внутренней таблицы IT_GENERIC_DATA. Этого недостаточно, так как вы не можете сказать, какие актуальные данные соответствуют полям в инфотипе 0022.

Параметр экспорта DATA_EXISTS метода READ содержит значение «X», когда данные считываются из соответствующей таблицы инфотипа. Если данные не считываются, экспортирующий параметр DATA_EXISTS содержит пробел. Вы можете проверить значение этого параметра, чтобы контролировать обработку вашей программы.

Для того, чтобы преобразовать данные в понятную форму, используйте статический метод PRELP_TO_PNNNN_TAB из класса CL_HR_PNNNN_TYPE_CAST (рис. 5).

Рис. 5. Конвертирование общих данных в формат, зависимый от инфотипа

Вы хотели бы увидеть полную версию статьи?

Если вы являетесь подписчиком журнала SAP Professional Journal, пожалуйста, авторизируйтесь на сайте.

Если вы хотите подписаться на журнала SAP Professional Journal, пожалуйста, обратитесь в редакцию или сделайте заказ на сайте.

Правила получения тестового доступа к статьям SAP Professional Journal

Ключевые слова: Инфотипы / Infotypes
Функциональная область: Управление персоналом / HR
Ролевое назначение: SAP Консультант / Consultant

Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП» Copyright © 2010 Wellesley Information Services. All rights reserved.