
Vvedenie_v_ABAP
.pdf
Справка/проверка значений ввода: Эта вкладка показывает ,
используются ли какие либо «проверочные таблицы», а также наличие «справки по значениям ввода».
Поля валюты/количества: Последняя вкладка используется, когда таблица содержит данные о валютах.
Вернитесь во вкладку «Поля», чтобы взглянуть на структуру таблицы.
Видно, что поля «MANDT» «CARRID» являются ключевыми. Это показывается галочкой «Клч». Также, вы видите все элементы данных. Так, к примеру, в поле «MANDT» записывается элемент данных «S_MANDT», который имеет тип «CLNT» и имеет длину 3.
Если вы хотите узнать больше об элементе данных «S_MANDT», дважды щелкните на нем. Вы перейдете в запись словаря, связанную с данным элементом и увидите его определение.
Совет:
Заметьте, что элемент данных и таблица находятся в активном состоянии. Это показывается словом «Активно» рядом с названиями таблицы и элемента данных.
31

При изменении таблицы или элемента в словаре, их статус меняется на «Новое(переработано)». Если активная версия все еще в словаре, то все программы используют активную версию, пока не будет успешно активирована новая версия.
Вернитесь к определению таблицы, нажав кнопку «Назад» и перейдите на вкладку «Справка/проверка значений ввода». Эта вкладка показывает используемые проверочные таблицы и справки по значениям. При работе с таблицей пользователь может выбрать значение для добавления в таблицу. Чтобы гарантировать целостность и правильность таблицы, справка по значению, показывает только подходящие значения. Справка по значению основывается на проверочной таблице. Эта таблица содержит только подходящие значения.
На следующем шаге вы хотите проверить связи через внешние ключи. Для этого,
запустите графическое отображение таблицы, нажав кнопку «Графика» . Запустится программа «Графический редактор SAP». Если вы не видите схемы, то сначала вам необходимо установить «графический редактор SAP». Чтобы вернуться в SAPGui нажмите кнопку «Назад» (F3).
Регулярная проверка содержания таблиц очень важна. Провести проверку можно, пройдя по следующему пути в меню:
Утилиты • Содержание таблицы • Просмотреть
Данное действие не переводит вас напрямую к содержанию таблицы, а запускает транзакцию «Браузер данных» (код транзакции - SE16). Теперь все что вам осталось сделать – нажать кнопку «Выполнить» (F8). После нажатия этой кнопки система SAP считывает все содержимое таблицы «SCARR» и отображает его:
32

Задание 3: Чтение и отображение данных из таблицы
Краткое описание: Используйте SQL-запросы, чтобы считать данные из таблицы, и выведите их на экран.
Прежде чем начать разработку, взгляните на таблицу «SPFLI». Она хранит данные о рейсах, которые в дальнейшем ваша программа выведет на экран.
Запустите Навигатор по объектам из меню SAP Easy Access, используя следующий путь:
Инструменты • ABAP-инструментальные средства • Обзор • Навигатор по объектам.
Код данной транзакции – SE80
Создайте новую программу «ZY*##FLIGHTS» в вашем пакете ZY_*##. Не используйте TOP INCLUDE, установите статус программы – «Тестовая», воспользуйтесь своим существующим запрос переноса.
В первой секции новой программы определите две переменные: it_flights, как внутреннюю таблицу, wa_flight, как переменную для обработки. Внутренняя таблица it_flights будет хранить все содержимое таблицы «SPFLI», тогда как wa_flight будет содержать одну строку из внутренней таблицы.
33

it_flights имеет тип таблицы «SPFLI». Это означает, что система SAP создаст переменную со структурой, аналогичной структуре таблицы SPFLI. wa_flight имеет ту же структуры, что и SPFLI, но это не таблица, а только единичная запись.
Так как программа должна вывести на экран содержимое таблицы, сначала это содержимое необходимо считать. Это можно выполнить, создав простой SQL-запрос, считывающий содержимое SPFLI и записывающий его во внутреннюю таблицу it_flights.
Теперь реализуйте вывод на экран содержимого it_flights. Для этого создайте цикл, проходящий построчно по таблице, записывая содержимое каждой строки в переменную wa_flight, и выводя затем содержимое этой переменной на экран.
Сохраните, проверьте и активируйте программу. Ее вывод должен выглядеть аналогично следующему рисунку:
34

Программа работает. Но как можно узнать, был ли успешно выполнен SQL-запрос или нет? Для этого имеется системная переменная «sy-subrc». Вы можете использовать данную переменную, если хотите узнать, был ли успешен последний шаг выполнения программы или нет. Воспользуйтесь условным оператором if, чтобы убедиться, что SQL-запрос выполняется успешно. В случае невыполнения запроса, программа должна выдать сообщение об ошибке.
Очень важно поместить конструкцию if сразу после текста запроса, так как переменная «sy-subrc» содержит код выхода только для последней инструкции. Разумеется, это очень простой способ обработки ошибок, но он показывает, как правильно использовать системную переменную для отклика на ошибки в ходе выполнения. Еще одним способом является использование исключений, о которых будет рассказано в главе 9.
Задание 4: Использование доменов, элементов данных и справок по значению
Short description: Воспользуйтесь словарем, чтобы создать справку по значениям для новой таблицы
Запустите словарь данных из меню SAP Easy Access, используя следующий путь:
35

Инструменты • ABAP-инструментальные средства • Разработки • ABAP-словарь
Также вы можете воспользоваться номером транзакции SE11.
На первом шаге вы создадите новый домен как высший уровень иерархии в словаре ABAP. Название нового домена - «ZY_*##_CHAR30». Выберите «Домен» и введите название в поле ввода. Затем нажмите кнопку «Создать». Система SAP откроет экран определения домена, где вы должны ввести описание и тип данных. Вы можете выбрать описание самостоятельно. Тип данных введите «CHAR» и число знаков ограничьте 30.
Теперь сохраните и активируйте ваш новый домен. Вернитесь в словарь ABAP, нажав кнопку «Назад»(F3).
На следующем шаге создайте новый тип данных «ZY_*##_EN_CHAR30». Выберите «Тип данных» и введите название. Нажмите «Создать».
Система спросит вас, должен ли это быть новый элемент данных, структура или таблица. Выберите «Элемент данных». Добавьте описание и домен нового элемента данных. Выберите домен, созданный на предыдущем шаге.
36

Переключитесь на вкладку «Метка поля» и введите метки поля. Вы можете определить максимальную длину каждой метки.
Сохраните и активируйте новый элемент данных, используя существующий запрос переноса и пакет.
Следующий шаг – создание таблицы базы данных. Таблица будет содержать ученые степени, и использоваться в качестве проверочной таблицы. Название новой таблицы
«ZY*##_TITLE». Введите описание и выберите «Прикладная таблица (основные и переменные данные)» в качестве класса поставки, а также «Просмотр/ведение разрешены» в поле «Ведение брауз. Дан./ракурса табл.».
37

Переключитесь на вкладку «Поля», чтобы ввести поля таблицы, и определить первое поле «Title». Это поле также будет и ключевым, поэтому поставьте галочку «Клч». Для первого поля вы должны определить элемент данных. Выберите созданный ранее элемент «ZY_*##_EN_CHAR30». Воспользуйтесь справкой F4, чтобы избежать опечаток.
Теперь перейдите в «Технические параметры настройки», нажав соответствующую кнопку.
Технические параметры настройки описывают, как таблица будет храниться в дальнейшем, и записывается ли содержимое таблицы буфер. Выберите «APPL0» в качестве вида данных и категорию размера «0».
Не меняя остальных параметров, сохраните технические параметры. После сохранения, вернитесь (F3) к ведению таблицы. Активируйте ее.
На следующем шаге вы введете некоторые данные в таблицу. Это делается через «Браузер данных». Зайдите в него, используя следующий путь:
Утилиты • Содержимое таблицы • Ввод записей
Система перейдет в новую транзакцию, где вы сможете добавить новые записи в таблицу. Чтобы добавить запись, введите звание в поле ввода и нажмите кнопку
«Сохранить».
38

Введите следующие степени: бакалавр, магистр, кандидат наук, доктор наук. После ввода всех степеней вернитесь в словарь
На следующем шаге мы хотим создать еще одну таблицу «ZY*##_PERSON». Таблица будет содержать данные о сотрудниках. Вы создадите связь между таблицами «ZY*##_TITLE» и «ZY*##_PERSON» с помощью внешнего ключа. Создайте таблицу со следующими полями: PERSONID, NAME, FAMILY_NAME и TITLE.
Совет:
При определении полей таблицы вы можете использовать либо встроенные типы данных, либо элементы данных. Простейший способ – сначала определить все поля со встроенным типом данных, а затем определить поля с элементами данных.
Переключайте режим ввода кнопкой /
.
Теперь вы хотите определить внешний ключ так, чтобы поле «TITLE» было связано с таблицей «ZY*##_TITLE». Выберите поле «TITLE» и нажмите кнопку «Внешний
ключ» . Появится окно для проверочной таблицы. Выберите таблицу «ZY*##_TITLE» и нажмите «Enter». Система автоматически считает информацию из репозитория и предложит определение внешнего ключа, используя названия полей из обеих таблиц.
39

Сохраните и активируйте новую таблицу. Чтобы удостовериться, что проверочная таблица определена верно, вы создадите новую программу. Выйдите из словаря.
Запустите Навигатор по объектам из меню SAP Easy Access, используя следующий путь:
Инструменты • ABAP-инструментальные средства • Обзор • Навигатор по объектам.
Код данной транзакции – SE80
Создайте программу «ZY_*##_PERSON». Добавьте следующий фрагмент кода в программу:
Сохраните, проверьте и активируйте программу. При тестировании в поле ввода «PA_TITLE» появится справка по значению. Все значения берутся из таблицы ученых степеней.
40