ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.04.2021
Просмотров: 767
Скачиваний: 3
56
Глава 6: Особенности для ERP-систем
Содержание
Эта глава об особенностях языка для ERP-систем. Она фокусируется на
использовании объектов блокировки.
Обоснование
Все программы в среде SAP (независимо от языка их создания) используют
блокировки, чтобы избежать несогласованности данных. Данная глава является
прекрасным введением в эту тему.
Требование
Вы должны закончить все упражнения из главы 5.
57
Задание 1: Вход в систему SAP
Краткое описание
: Используя SAPGui, войдите в систему с вашим именем
пользователя и паролем.
Запустите SAPGui и войдите в систему, используя предоставленное имя
пользователя и пароль. Вы можете найти их в главе 1.
Задание 2: Использование объекта блокировки
Краткое описание:
Используйте объекты блокировки в своей программе из главы 5,
чтобы избежать противоречивости данных об авиарейсе.
Для начала нужно взглянуть, как выглядит объект блокировки. Запустите словарь
данных из меню SAP Easy Access, используя следующий путь:
Инструменты
•
ABAP-
инструментальные средства
•
Разработки
•
ABAP-
словарь
Также вы можете воспользоваться номером транзакции
SE11
.
Выберите «
ОбъектБлокиров»
и введите название объекта «
ESFLIGHT
». Нажмите
«
Просмотр
», чтобы продолжить. Система выдаст сведения об объекте блокировки.
Переключитесь на вкладку
«ПарамБлокировки»
и взгляните на параметры. Вы
видите, что объект использует первичный ключ таблицы «SFLIGHT», чтобы
блокировать данные в таблице.
Совет:
Названия пользовательских объектов блокировки должно отвечать принятым нормам.
Называйте все свои объекты блокировки EZ_<название_таблицы>. Создать новый
объект блокировки можно после создания соответствующей ему таблицы.
Теперь воспользуемся объектом блокировки в программе из главы 5. Лучшим
способом использовать его является создание двух блокировок: одна общая
блокировка при чтении данных из таблицы
SPFLI
и одна монопольная блокировка при
записи
данных
в
таблицу
SPFLI
.
Начнем
с
общей
блокировки
в
«
USER_COMMAND_0100
». Запустите среду разработки ABAP (
SE80
)
и откройте этот
модуль. Он находится в папке «
PAI-
модули»
. Переключитесь в режим изменения.
Добавьте общую блокировку прямо перед конструкцией «
SELECT
» - поместите курсор
перед «
SELECT
» и нажмите кнопку «
Модель
». Выберите вызов «
Call Function
» и
наберите название функции постановки в очередь. Нажмите «
Enter
».
Вход
Путь в меню
ESFLIGHT
Совет
Вызов
функции
58
Данное действие вставит вызов функции постановки в очередь. Чтобы
воспользоваться ею, измените параметры вызова так, как это представлено на
примере ниже:
Для вызова функции, вы должны использовать уже выбранные «
CARRID
» и
«
CONNID
» из структуры
SPFLI
. Также вы должны определить тип блокировки («
S
» –
общая блокировка) и текущий мандант (считывается из системной переменной «
SY-
MANDT
»). Сохраните, проверьте и активируйте модуль.
Исходный код
Сохраните,
проверьте и
активируйте
59
Эта общая блокировка будет завершена после того, как пользователь нажмет кнопку
на втором экране программы. Откройте модуль «
USER_COMMAND
_0200»
.
Общая
блокировка должна быть завершена прямо перед конструкцией
CASE
.
Расположите
курсор перед инструкцией
CASE
и нажмите кнопку
«Модель»
.
Выберите «
Call
Function
» и наберите название функции вывода из очереди. Нажмите «
Enter
».
Параметры вызова функции очень важны, так что внимательно определите тип
блокировки «
S
», «
CARRID
» и «
CONNID
». Убедитесь, что ввели все правильно:
USER_COMMA
ND_0200
Разблокировка
60
Теперь, разблокировав данные, вам позволено поставить монопольную блокировку на
изменение данных. Еще раз нажмите кнопку
«Модель»
и вставьте вызов функции,
чтобы создать монопольную блокировку и затем разблокировать данные после их
изменения. Код должен выглядеть следующим образом:
Удостоверьтесь, что не забываете поставить точку после каждого вызова функции!
Сохраните, проверьте и активируйте программу.
При тестировании программы, вы можете следить за созданием общей блокировки в
транзакции
SM12
. При запуске транзакции введите название таблицы «
SPFLI
» и
нажмите кнопку «
Список
». Вы увидите список текущих существующих блокировок.
Сохраните,
проверьте,
активируйте