ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.04.2021

Просмотров: 767

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

56 

 

Глава 6: Особенности для ERP-систем 

 
 

Содержание 

Эта  глава  об  особенностях  языка  для  ERP-систем.  Она  фокусируется  на 
использовании объектов блокировки. 
 

Обоснование 

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

Требование 

Вы должны закончить все упражнения из главы 5. 


background image

 

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 

Совет   

Вызов 

функции 


background image

 

58 

 

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

 

 
Для  вызова  функции,  вы  должны  использовать  уже  выбранные  «

CARRID

»  и 

«

CONNID

» из структуры 

SPFLI

. Также вы должны определить тип блокировки («

S

» – 

общая блокировка) и текущий  мандант (считывается из системной переменной «

SY-

MANDT

»). Сохраните, проверьте и активируйте модуль. 

 

Исходный код 

Сохраните, 

проверьте и 

активируйте 


background image

 

59 

Эта общая блокировка будет завершена после того, как пользователь нажмет кнопку 
на  втором  экране  программы.  Откройте  модуль  «

USER_COMMAND

_0200»

Общая 

блокировка  должна  быть  завершена  прямо  перед  конструкцией 

CASE

Расположите 

курсор  перед  инструкцией 

CASE

 

и  нажмите  кнопку 

«Модель»

Выберите  «

Call 

Function

» и наберите название функции вывода из очереди. Нажмите «

Enter

». 

 

 

 
Параметры  вызова  функции  очень  важны,  так  что  внимательно  определите  тип 
блокировки «

S

», «

CARRID

» и «

CONNID

». Убедитесь, что ввели все правильно: 

 

 

 
 
 

USER_COMMA

ND_0200 

Разблокировка 


background image

 

60 

Теперь, разблокировав данные, вам позволено поставить монопольную блокировку на 
изменение  данных.  Еще  раз  нажмите  кнопку 

«Модель»

 

и  вставьте  вызов  функции, 

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

 

 
 
Удостоверьтесь,  что  не  забываете  поставить  точку  после  каждого  вызова  функции! 
Сохраните, проверьте и активируйте программу.  
 
При тестировании программы, вы можете следить за созданием общей блокировки в 
транзакции 

SM12

.  При  запуске  транзакции  введите  название  таблицы  «

SPFLI

»  и 

нажмите кнопку «

Список

». Вы увидите список текущих существующих блокировок.  

 

Сохраните, 

проверьте, 

активируйте