Урок за диалогово програмиране: Модулен пул в SAP ABAP

SAP-ABAP поддържа два вида програми – програма за докладване и програма за диалог.

Ако вашата ABAP програма изисква потребителско въвеждане, се използва диалогово програмиране.

В този урок ще научите:

Потребителският диалог е всяка форма на взаимодействие между потребителя и програмата и може да бъде всяко от следните

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

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

Диалоговите програми се създават с тип 'M' – Модулен пул. Те не могат да бъдат изпълнени независимо и трябва да бъдат прикрепени към поне един код на транзакция, в който посочвате начален екран.

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

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

Програма за докладване:

Отчетът е програма, която обикновено чете и анализира данни в таблици на база данни, без да променя база данни.

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

Диалоговата програма ви позволява да работите интерактивно със системата и да променяте съдържанието на таблиците на базата данни. Всяка диалогова програма има определена последователност от екрани, които се обработват от системата един след друг.

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

Обработка на примерна транзакция

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

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

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

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

  • Кодът на транзакцията започва екранна последователност.
  • Създавате кодове на транзакции в браузъра на хранилището в ABAP Workbench или с помощта на транзакция 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.

Логика на екрана

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

  • Процес преди извеждане (РВО) събитие: което се обработва преди показването на екрана
  • Процес след въвеждане (PAI) събитие: което се обработва след действие на потребителя на екрана
  • Процес при поискване за помощ (P.O.H.): който се обработва при натискане на F1
  • Обработка на заявка за стойност (POV):който се обработва при натискане на F4

Dynpro

  • Екран заедно с неговата логика на потока се нарича Dynpro („Динамична програма“, тъй като логиката на потока на екрана влияе върху потока на програмата)
  • Всеки dynpro контролира точно една стъпка от вашата диалогова програма.
  • Екраните, принадлежащи към дадена програма, са номерирани. Последователността на потока на екрана може да бъде линейна или циклична. От една екранна верига можете дори да извикате друга екранна верига и след като я обработите, да се върнете към оригиналната верига. Можете също така да замените статично дефинирания следващ екран от диалоговите модули на програмата ABAP.

ABAP модулен пул

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

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

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

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

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