Навчальний посібник з діалогового програмування: пул модулів у SAP ABAP

SAP-ABAP підтримує два типи програм – програму звіту та програму діалогу.

Якщо ваша програма ABAP вимагає введення користувача, використовується діалогове програмування.

У цьому посібнику ви дізнаєтесь:

Діалог користувача — це будь-яка форма взаємодії між користувачем і програмою, яка може бути будь-якою з наведених нижче

  • Введення даних
  • Вибір пункту меню
  • Натискання кнопки
  • Клацання або подвійне клацання запису

Діалогова програма також використовується, коли нам потрібно переходити вперед і назад між екранами

Діалогові програми створюються з типом «M» – пул модулів. Вони не можуть бути виконані незалежно і мають бути додані принаймні до одного коду транзакції, у якому ви вказуєте початковий екран.

Різниця між програмами для звітів і діалогів

Різниця між програмами для звітів і діалогів

Програма звіту:

Звіт — це програма, яка зазвичай читає й аналізує дані в таблицях бази даних, не змінюючи їх база даних.

Діалогова програма:

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

Зразок обробки транзакцій у діалоговому програмуванні

Зразок обробки транзакції

Компоненти діалогової програми

на відміну від звітом що, як правило, передбачає створення однієї автономної програми, яка може виконуватися незалежно від інших об’єктів, розробка діалогової програми передбачає розробку кількох об’єктів, жоден з яких не може бути виконаний сам по собі. Замість цього всі об’єкти ієрархічно пов’язані з головною програмою та виконуються в послідовності, що диктується головною програмою діалогу..

Компонентами діалогової програми є:

Код транзакції

  • Код транзакції починає послідовність екранів.
  • Ви створюєте коди транзакцій у браузері репозиторію в ABAP Workbench або за допомогою Transaction SE93.
  • Код транзакції пов’язаний із програмою ABAP і початковим екраном.
  • Ви можете запустити послідовність екранів з будь-якої програми ABAP за допомогою оператора CALL SCREEN.

Екрани

  • Кожне діалогове вікно в SAP системою керують один або декілька екранів.
  • Ви створюєте екрани за допомогою екрана Painter у ABAP Workbench через транзакцію SE51
  • Кожен екран належить до Програма ABAP.
  • Ці екрани складаються з «екранної маски» або «макета» та його логіки потоку. Екран має макет, який визначає положення полів введення/виведення та інших графічних елементів, таких як прапорці та перемикачі. Логіка потоку визначає логічну обробку на екрані.

Статус GUI

  • Кожен екран має статус(и) GUI, які є незалежними компонентами програми.
  • Це керує панелями меню, стандартною панеллю інструментів, панеллю інструментів програми, за допомогою яких користувач може вибирати функції в програмі.
  • Ви створюєте їх у ABAP Workbench за допомогою меню Painter.

Програма ABAP

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

Логіка потоку екрана

Логіка потоку екрана в основному поділяється на чотири компоненти.

  • Обробка перед виведенням (PBO) подія: яка обробляється перед відображенням екрана
  • Процес після введення (PAI) подія: яка обробляється після дії користувача на екрані
  • Обробка запиту на допомогу (P.O.H.): який обробляється при натисканні F1
  • Обробити запит на значення (POV):який обробляється при натисканні F4

Динпро

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

Пул модулів ABAP

  • Під час події PBO або PAI Dynpro викликає діалогову програму ABAP. Набір таких програм називається пулом модулів ABAP.
  • Наприклад, модулі, викликані під час події PAI, використовуються для перевірки введених користувачем даних і для запуску відповідних діалогових кроків, таких як завдання оновлення.
  • Усі dynpro викликаються зсередини один транзакції посилаються на загальний пул модулів.

Структура діалогової програми

Структура діалогової програми

Потік процесу для діалогової програми

Потік процесу для діалогової програми