Учебное пособие по программированию диалоговых окон: пул модулей в SAP ABAP

SAP-ABAP поддерживает два типа программ: программа отчетов и программа диалога.

Если ваша программа ABAP требует ввода данных пользователем, используется диалоговое программирование.

В этом уроке вы узнаете:

Пользовательский диалог — это любая форма взаимодействия между пользователем и программой, которая может быть любой из следующих:

  • Ввод данных
  • Выбор пункта меню
  • Нажатие кнопки
  • Щелчок или двойной щелчок по записи

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

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

Разница между отчетными и диалоговыми программами

Разница между отчетными и диалоговыми программами

Программа доклада:

Отчет — это программа, которая обычно считывает и анализирует данные в таблицах базы данных без изменения база данных.

Диалоговая программа:

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

Пример обработки транзакции в диалоговом программировании

Пример обработки транзакции

Компоненты диалоговой программы

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

Компонентами диалоговой программы являются:

Код транзакции

  • Код транзакции запускает последовательность экранов.
  • Коды транзакций создаются в браузере репозитория в инструментальных средствах ABAP или с помощью транзакции SE93.
  • Код транзакции связан с программой ABAP и начальным экраном.
  • Вы можете запустить последовательность экранов из любой программы ABAP, используя оператор CALL SCREEN.

Экраны

  • Каждый диалог в SAP система управляется с помощью одного или нескольких экранов.
  • Вы создаете экраны с помощью Screen Painter в ABAP Workbench посредством транзакции SE51
  • Каждый экран принадлежит ABAP-программа.
  • Эти экраны состоят из «маски экрана» или «макета» и логики потока. Экран имеет макет, определяющий положение полей ввода/вывода и других графических элементов, таких как флажки и переключатели. Логика потока определяет логическую обработку на экране.

Статус графического интерфейса

  • Каждый экран имеет статус(ы) графического интерфейса, которые являются независимыми компонентами программы.
  • Это управляет строками меню, стандартной панелью инструментов, панелью инструментов приложения, с помощью которой пользователь может выбирать функции в приложении.
  • Вы создаете их в ABAP Workbench с помощью меню Painter.

ABAP-программа

  • Каждый экран и статус графического пользовательского интерфейса в системе R/3 принадлежат одной программе ABAP.
  • Программа ABAP содержит диалоговые модули, которые вызываются логикой потока экрана, а также обрабатывают ввод пользователя из состояния графического интерфейса.
  • Программы ABAP, использующие экраны, также известны как диалоговые программы.
  • В пуле модулей (программа типа М); первый вызываемый блок обработки всегда является диалоговым модулем. Однако вы также можете использовать экраны в других программах ABAP, например, в исполняемых программах или функциональных модулях. Тогда первый блок обработки называется по-другому; например, средой выполнения или вызовом процедуры. Затем последовательность экранов запускается с помощью оператора CALL SCREEN.

Логика потока экрана

Логика Screen Flow в основном разделена на четыре компонента.

  • Процесс перед выводом (ПБО) событие: которое обрабатывается перед отображением экрана
  • Процесс после ввода (PAI) событие: которое обрабатывается после действия пользователя на экране.
  • Обработка запроса на помощь (РОН): который обрабатывается при нажатии F1
  • Обработка запроса значения (POV): который обрабатывается при нажатии F4

Динпро

  • Экран вместе с его логикой потока называется Dynpro («Динамическая программа», поскольку логика потока экрана влияет на ход программы).
  • Каждый dynpro контролирует ровно один шаг вашей диалоговой программы.
  • Экраны, принадлежащие программе, нумерованный. Последовательность действий на экране может быть линейной или циклической. Из цепочки экранов вы даже можете вызвать другую цепочку экранов и после ее обработки вернуться к исходной цепочке. Вы также можете переопределить статически определенный следующий экран из диалоговых модулей программы ABAP.

Пул модулей ABAP

  • При событии PBO или PAI Dynpro вызывает диалоговую программу ABAP. Коллекция таких программ называется пулом модулей ABAP.
  • Например, модули, вызываемые при событии PAI, используются для проверки ввода пользователя и запуска соответствующих шагов диалога, таких как задача обновления.
  • Все динпросы будут вызваны изнутри one транзакции относятся к общему пулу модулей.

Структура диалоговой программы

Структура диалоговой программы

Последовательность действий для диалоговой программы

Последовательность действий для диалоговой программы