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

«Как эффе­кти­вно испо­льзо­ва­ть инфотипы пла­ни­ру­е­мо­го во­зна­гра­жде­ния для по­стро­е­ния стратегии во­зна­гра­жде­ний»
Юрий Щербаков:
В статье достаточно подробно и, в то же время, компактно описано назначение инфо-типа 1005 (Нормативная оплата), используемого для штатных должностей (объекты типа S). Примечание: Из этих объектов...
«Создание деревьев принятия решений с помощью ста­нда­ртных операций SAP»
Александр Иванов:
Автор описывет использование функции IF в схеме расчёта, приводит понятный пример. Знания, нужные любому консультанту.   Я бы добавил, что в конструкции IF ENDIF можно использовать функцию...
«Стру­кту­рные по­лно­мо­чия»
Михаилй Братковский:
Небольшое уточнение: 1. Для роли табельного учета и роли по заработной плате должны быть созданы разные профили структурных полномочий. 2. Если присвоить профиль структурных полномочий...

База знаний

Вы можете подписаться на эту колонки этого автора, если авторизируетесь или зарегистрируетесь

Записки о модуле Human Resources системы SAP ERP. ABAP-структуры (типы данных, таблица, структура, домен, экран)

25 июля 2016, 02:57

1.4 ABAP-структуры (типы данных, таблица, структура, домен, экран)

ABAP – это язык программирования в системе SAP. Сам по себе язык несложный, но есть определенные моменты и технологии, которые усложняют жизнь программистам. На текущем этапе необходимо знать минимальную базу про структуры этого языка. Это позволит читать программы и быстрее разбираться в настройках системы. Например, во многих российских отчетах проще прочитать исходный текст программы, чем пытаться настроить систему методом проб и ошибок. Основные понятия, которые нам необходимы, рассмотрим ниже.

Типы данных

Как и в любом языке программирования, в ABAP есть понятие типов данных.
Для чтения программ достаточно знать основные типы:

  • C (CHAR) – символ. Любой текстовый видимый символ (включая пробел);
  • D (DATE) – дата. Любая дата (без времени);
  • F (FLOAT) – число с плавающей запятой (дробное);
  • I (INTEGER) – целое число;
  • STRING – строка.

На этих базовых типах строится хранение и манипулирование данными. Существуют и другие типы, в том числе сложные (структуры, field-symbol, классы, интерфейсы и прочие), но об этом лучше почитать специализированную книгу по ABAP.

Таблица

Таблица представляет собой набор колонок различного типа данных и хранится в базе данных на сервере. Таблицы напоминают собой файлы MS Excel, где в заголовке расположены колонки, а в строчках данные, за тем исключением, что в таблице в одной колонке всегда данные одного типа (только символьные, только даты, только числа или иные). Структуру любой таблицы можно посмотреть в транзакции SE11. Вводим имя таблицы и нажимаем кнопку «Просмотр». Изменять таблицы пользователям запрещено. Программисты могут только расширять таблицы путем добавления своих полей. Записывать данные сразу в таблицу также запрещено. Все изменения осуществляются через программы и транзакции. Просмотреть содержимое таблицы можно через транзакцию SE16. Это бывает удобно при отладке или составлении списков. Учить пользователей этим транзакциям крайне не рекомендуется.

В таблице стоит обратить внимание на следующие элементы. Ключевые поля – поля, которые обязательны для заполнения и должны быть уникальными для всей таблицы. Если эти поля не заполнены, то система не даст сохранить запись в таблице. Ключевые поля определяются в SE11 для таблицы на закладке «Поля», столбец «Клч». Если галочка стоит, то поле ключевое. Все ключевые поля всегда находятся в самом верху (начале) определения таблицы. Второе, на что следует обратить внимание, это средства поиска и проверочные таблицы. Это закладка «Справка/проверка знач. ввода». Здесь можно найти таблицы, на которые ссылается каждое поле нашей таблицы. Например, таблица T512W «Оценка видов оплаты» ссылается на ряд других таблиц. Примером может быть поле MOLGA «Группировка стран», которое ссылается на таблицу T500L. Если дважды кликнуть на эту таблицу, то откроются ее параметры. Так, можно посмотреть в каких таблицах, какие хранятся настройки.

В HR основные таблицы, где хранятся данные по персоналу, – это:

  • PA****, где **** – номер инфотипа основных данных;
  • PB****, где **** – номер инфотипа кандидатов (из модуля «Подбор персонала»);
  • HRP****, где **** – номер инфотипа организационного менеджмента.
  • Напомню, что сами номера инфотипов делятся на группы:
  • 0000 — 0999 – HR основные данные;
  • 1000 — 1999 – планирование персонала;
  • 2000 — 2999 – временные данные;
  • 4000 — 4999 – подбор персонала;
  • 9000 — 9999 – пользовательские.

Структура

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

Домен. Элемент данных

Домен – это набор возможных значений. Например, в такую-то переменную можно вводить только цифры от 1 до 9. Это указывается в домене. Или можно вводить только определенные символы или значения из определенной таблицы. Это позволяет уйти от многих ошибок пользовательского ввода. Система сама проверит значение и выдаст ошибку. Использование домена позволяет унифицировать систему, так как создается один домен для каких-то общих понятий и используется во всей системе. Появилось новое значение с развитием системы – нужно изменить только один домен, а не всю систему.

Элемент данных – это своего рода пользовательский тип данных. Например, CHAR100 – элемент данных типа символ с размерностью 100 символов. Либо элемент данных GVALA «Идентификационный вид оплаты», который состоит из домена LGART «Вид оплаты труда». Он используется в таблицах как унифицированный способ указания вида оплаты. Стоит указать этот элемент данных в таблице, как система будет с помощью домена проверять введенное значение на корректность с таблицей видов оплаты T512W. Для элемента данных характерны такие свойства, как «ИдПараметра» (закладка «ДополнитСвойства» позволяет устанавливать значение по умолчанию из параметров пользователя, транзакция SU3), метка поля (закладка «Метка поля» определяет название элемента, которое будет видно в столбцах отчетов, программах).

Экран

Экран – это то, что вы видите на экране монитора, когда запускаете отчет, транзакцию, программу. Именно то место, куда вводятся различные буквы и цифры, где нажимается кнопка «Сохранить» или «Выполнить». Это и есть экран с точки зрения системы. У отчетов первый экран, который появляется после запуска, называется «селекционный экран», от английского слова «select» – выбирать. Вы выбираете значения (задаете параметры отчета) и нажимаете «Выполнить». Каждый экран имеет свой четырехзначный номер. Этот номер уникален в пределах одной программы. Получается такая связь, что экран отображает и позволяет вводить информацию, а программа управляет экраном: сохраняет, обрабатывает, записывает в экран информацию. Для селекционных экранов SAP зарезервировал номер 1000. Для HR основные экраны в транзакциях PA30/PA20 это:

  • 2000 – экран инфотипа в режиме просмотра/редактирования/удаления;
  • 3000 – экран обзора инфотипов (при просмотре списком инфотипов одного типа, например, все ИТ0014);
  • 5000 – экран быстрого ввода инфотипа для транзакции PA70.

Основное, что нужно знать консультантам об экранах, – это способ их обработки: событийную модель. У каждого экрана есть основные события:

  • Вывод (PBO – Process Before Output – обработать перед выводом). В этот момент времени программа подготавливает информацию, записывает ее в переменные, которые отражаются на экране.
  • Ввод (PAI – Process After Input – обработать после ввода). Событие вызывается, когда вы нажимаете на любую управляющую кнопку на экране (Enter, Esc, любую иконку, кнопку). В этот момент программа проверяет все поля экрана и в зависимости от нажатой кнопки выполняет отдельные действия.
  • Запрос значений (POV – Process On Value – обработать при запросе значения). Событие вызывается, когда вы нажимаете кнопку выбора значения или F4 на поле. Программа формирует справку по возможным значениям или вызывается средство поиска значений.
  • Справка (POH – Process On Hel – обработать при запросе справки). Вызывается при нажатии на кнопку F1 на поле.

Следовательно, когда вы открываете какую-то транзакцию, инфотип или что-то еще и у вас ошибка на экране, то ее корни надо искать в модулях PBO. Если вы нажали сохранение или Enter и появилась ошибка, то надо искать в PAI.

1.5 Поиск таблицы

Часто встречается ситуация, когда нужно найти таблицу-справочник, в которой настраиваются те или иные значения. Например, открываете инфотип, нажимаете на кнопку выбора, появляются значения. А где их найти в SPRO и изменить – неизвестно. Или другой пример. Требуется настроить новую, ранее неизвестную нам таблицу, а в ней есть поля, которые ссылаются на другие справочники. Необходимо найти первоисточник. Делается это очень просто. Встаем на интересующее поле и нажимаем кнопку F1. Открывается окно с кратким описанием данного поля. На панели инструментов этого окна есть кнопка с молотком – инструменты. Нажимаем и получаем справку по технической информации поля. Рассмотрим несколько подробнее окно (Рис. 1.5).

Рис. 1.5 Техническая информация об элементе экрана

  • Имя программы – имя программы, которая управляет текущим экраном, то есть в которой реализована PAI- и PBO-логика. Даже обычные ракурсы в SM30 имеют такие экраны, управляющую логику и управляющую программу.
  • Номер экрана – непосредственно номер экрана, где расположено поле.
  • Статус – набор элементов в виде заголовка и панели инструментов, которые отражаются в программе. К HR абсолютно никакого отношения не имеет.
  • Имя таблицы – как правило, это название структуры словаря, которая описывает поля экрана. Но может быть и название физической таблицы, которая хранится в базе данных. Зависит от того, где и какое поле мы смотрим. Вид таблицы: структура или физическая таблица базы.
  • Имя поля – непосредственно поле в структуре или таблице.
  • Элемент данных – описывает тип поля. Можно два раза кликнуть на его имя, и система откроет SE11 с характеристиками этого элемента данных. Например, можно создать один элемент данных «Мой идентификатор» и использовать его в своих программах. Если надо будет увеличить разрядность идентификатора, то изменить придется только этот один элемент данных. Все остальные структуры автоматически изменятся. SAP вообще на каждое поле делает свой элемент данных. Это правильно и масштабируемо в будущем.
  • Поле экрана – так называется поле при формировании пакетного ввода. На это поле нужно будет обращать внимание, когда вы будете записывать LSMW-проекты.

Таким образом, набор манипуляций для выяснения, что за таблица скрывается за полем и как ее настроить, сводится к следующим шагам (Рис. 1.6):

  • Нажимаем F1 – Техническая информация.
  • Дважды кликаем на имя поля (или элемента данных, в зависимости от того, что нужно найти).
  • Открывается транзакция SE11 – переходим на закладку «Справка/проверка знач. ввода», смотрим проверочную таблицу.
  • Два раза кликаем на проверочную таблицу, и она открывается в транзакции SE11.
  • Теперь можно посмотреть структуру таблицы или же нажать кнопку «Where-Is» (где используется) и выяснить, где эта таблица используется системой. Часто достаточно выбрать ракурс и открыть его. Ракурс можно открывать через транзакцию SE11 и кнопку «Просмотр» либо в отдельном режиме открыть в транзакции SM30.
  • Нажимаем кнопку «Назад» (F3) до тех пор, пока не вернемся к нашему загадочному полю.

Рис. 1.6 Выбор области поиска



В данной колонке публикуются главы из книги "SAP HCM. Вид сбоку".

  

   

   

    

Ролевое назначение : SAP Консультант / Consultant

Ключевые слова : Управление персоналом / Human Resources

Функциональная область : Управление персоналом / HR