Меню

Расширение стандартных инфотипов SAP ERP HCM: быстро и эффективно

|

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

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

Для большинства стандартных инфотипов SAP доступны расширения единых экранов. Оформление дополнительных полей можно изменить с помощью редактора экранов — Screen Painter. Редактор экрана входит в состав инструментальных средств ABAP Workbench и предназначен для создания и редактирования экранов и логики выполнения ABAP-программ. Он содержит графические инструменты для изменения внешнего вида полей на экране.

   

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

Сначала вкратце рассмотрим, что такое расширение инфотипа и какая транзакция позволяет выполнить расширение. Кроме того, во вступлении приведен список инфотипов, для которых неприменима концепция расширения. Затем подобно рассмотрим действия по расширению экранов стандартных инфотипов, включая создание пользовательской include-программы, изменение оформления с помощью редактора экранов и создание кода для проверки достоверности пользовательских полей (последний шаг включает в себя создание кода в Business Add-In [BAdI] для класса проверки отделенных инфотипов).

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

   

Расширение инфотипов: пошаговый обзор

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

Расширение экранов инфотипа обладает следующими преимуществами:

  • Не требуется изменения исходного кода SAP (отсутствуют проблемы с кодом после обновлений).
  • Добавленные поля и проверки применимы как к ERP Central Component (ECC) (код транзакции PA30), так и к порталу информационного сервиса для сотрудников и менеджеров (Employee Self-Services/Manager Self-Services; ESS/MSS).
  • Поведение любого нового поля, добавленного в инфотип, не отличается от поведения стандартных полей инфотипа. Например, при создании отчетов, динамических мероприятий или журнала изменений инфотипа расширенные инфотипы выполняют те же функции, что и стандартные.
  • Кроме того, можно удалить или сбросить более поздние изменения.

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

   

Номер инфотипа

Описание

0000

Мероприятия

0005

Право на отпуск

0080

Отпуск по уходу за ребенком

0081

Военная служба

0083

Компенсация за неиспользованный отпуск

0302

Дополнительные мероприятия

0416

Компенсация лимита времени

2NNNN

Управление временными данными

4000

Заявка

Табл. 1. Список инфотипов, которые нельзя расширить

   

Примечание

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

   

Подробная процедура расширения инфотипа

В этом разделе описываются шаги по расширению реального инфотипа, например, инфотипа 0555.

Для изменения единого экрана инфотипа необходимо выполнить следующие шаги:

  1. Создание include-программы для настройки инфотипа, в которой указываются поля для расширения.
  2. Редактирование оформления по умолчанию, созданного на шаге 1 (при необходимости).
  3. Создание кода для проверки достоверности данных, введенных пользователем.
  4. Тестирование результатов.

Далее указанные шаги описываются подробнее.

   

Шаг 1. Создание include-программы CL_PNNNN для настройки инфотипа

Для добавления полей, специфичных для компании, на экран стандартного инфотипа в первую очередь нужно создать include-программу 
CI_PNNNN в таблице базового инфотипа. В программе настройки поля изначально не заданы, поэтому необходимо выбрать соответствующие поля данных. Затем эти поля войдут в таблицу PANNNN и структуру PNNNN базового инфотипа и будут использоваться для хранения данных, введенных пользователем.

Например, вам нужно добавить поля, специфичные для компании, в стандартный инфотип 0555 (Военная служба). Include-программа CI_P0555 изначально не содержит полей. Дополнительные поля, выбранные с помощью include-программы CI_P0555, станут частью таблицы PA0555 и структуры P0555 в инфотипе.

Для создания include-программы настройки выполните код транзакции PM01. На появившемся экране (рис. 1) выберите вкладку «Отд. экран» (отдельный экран).

   

Рис. 1. Ввод номера и версии инфотипа

   

Введите номер инфотипа (в нашем примере — 0555) и номер версии в соответствующие поля, затем нажмите кнопку «Сгенерир. объекты» (Сгенерировать объекты). Откроется всплывающий экран «Создать объект словаря», показанный на рис. 2.

   

Рис. 2. Создание include-программы настройки

   

Нажмите кнопку «Создать». Откроется экран транзакции «ABAP Dictionary» (ABAP-словарь), на которое можно выбрать поля для include-программы настройки CI_P0555 (рис. 3).

Рис. 3. Добавление новых полей в include-программу CI_P0555

      

Примечание

Существует три вида инфотипов военной службы: 0081 и 0555. Инфотип 0081 нельзя расширить, а инфотип 0555 — можно.

   

Укажите поля, которые нужно добавить на единый экран стандартного инфотипа. Имена всех полей должны начинаться с «ZZ». (Если это правило не выполняется, появится предупреждающее сообщение.) В нашем примере были добавлены три поля: ZZ_SPECIAL, ZZ_START_DATE и ZZ_SERVICE_YEARS.

   

Примечание

Используйте справку F4 для поиска стандартных элементов данных (типов компонентов), выступающих в качестве основы для дополнительных полей.

Как видите, было задано односимвольное поле ZZ_SPECIAL, которое будет использоваться как флажок для индикации того, что служба была завершена. Выберите строку ZZ_SPECIAL и нажмите кнопку «Тип компонента» ,как показано на рис. 3. Поля «Тип данных», «Длина» и «Краткое описание» (Короткий текст) станут доступны для редактирования (рис. 4). Теперь можно ввести необходимые данные.

   

Рис. 4. Выбор типа данных, длины записи и краткого описания поля

   

Для создания поля ZZ_START_DATE использован стандартный тип данных BEGDA. Третье поле ZZ_SERVICE_YEARS создано на основе существующего пользовательского элемента данных ZZ_SERVICE_YEARS со стандартным доменом NUMC.

После ввода данных нажмите клавиши CTRL+F3, чтобы сохранить и активировать include-программу.

Убедитесь, что include-программа активирована. Для этого нажмите CTRL+F3. Затем нажмите кнопку «Назад» на ленте (рис. 3).

   

Примечание

Существует ограничение для применения этого метода. Общая длина полей в структуре «PSnnnn»данного инфотипа и include-программы не должна превышать 1500 байтов.

   

Будет сгенерирована программа ZP055500 и создан экран 0002 с дополнительными полями для инфотипа. Кроме того, будут автоматически созданы все необходимые записи в таблице T582C «Экраны Include для инфотипов». При переходе к экрану инфотипа с помощью кода транзакции PA30 отобразятся три дополнительных поля (рис. 5).

Рис. 5. Дополнительные поля на экране инфотипа

   

Далее рассмотрим, как изменить оформление блоков добавленных полей.

   

Шаг 2. Изменение оформления дополнительных полей

Экран созданной программы нуждается в настройке. Как правило, требуется изменить его оформление. На этом шаге мы рассмотрим, как изменить внешний вид созданных полей. Например, можно настроить отображение односимвольного поля в виде флажка. Можно также изменить названия полей, их расположение на экране и т. д. С помощью редактора экрана можно сделать поля обязательными (или необязательными) для ввода.

Перейдите на вкладку расширения экрана в транзакции PM01 (рис. 1), чтобы проверить правильность указанных номера и версии инфотипа. Затем в разделе «Подобъекты», показанном на рис. 6, выберите зависимую кнопку «Экран Include» (в поле экрана уже введено значение 0200) и нажмите кнопку «Обработать».

Оформите подписку sappro и получите полный доступ к материалам SAPPRO

У вас уже есть подписка?

Войти