Tutorial de programare cu dialog: Pool de module SAP ABAP
โก Rezumat inteligent
Programare cu dialoguri รฎn SAP ABAP construieศte programe de tip pool de module care interacศioneazฤ cu utilizatorul prin intermediul ecranelor ศi modificฤ conศinutul bazei de date. Aceastฤ paginฤ explicฤ codurile de tranzacศii, ecranele, starea interfeศei grafice, logica fluxului ecranelor, dynpros ศi structura pool-ului de module.

Ce este programarea dialogicฤ?
SAP-ABAP acceptฤ douฤ tipuri de programe โ Programul de raportare ศi Programul de dialog.
Dacฤ programul ABAP solicitฤ intrarea utilizatorului, se utilizeazฤ programarea cu dialog.
Un dialog cu utilizatorul este orice formฤ de interacศiune รฎntre utilizator ศi program ศi poate fi oricare dintre urmฤtoarele
- Introducerea datelor
- Alegerea unui element de meniu
- Fฤcรขnd clic pe un buton
- Fฤcรขnd clic sau dublu clic pe o intrare
Programul de dialog este folosit ศi atunci cรขnd trebuie sฤ navigฤm รฎnainte ศi รฎnapoi รฎntre ecrane
Programele de dialog sunt create cu tipul โMโ โ Pool de module. Acestea nu pot fi executate independent ศi trebuie ataศate la cel puศin un cod de tranzacศie รฎn care specificaศi un ecran iniศial.
Diferenศa dintre programele de raport ศi de dialog
Programul de raportare:
Un raport este un program care de obicei citeศte ศi analizeazฤ datele din tabelele bazei de date fฤrฤ a modifica Baza de date.
Program de dialog:
Un program de dialog vฤ permite sฤ lucraศi interactiv cu sistemul ศi sฤ modificaศi conศinutul tabelelor bazei de date. Fiecare program de dialog are o anumitฤ secvenศฤ de ecrane care sunt procesate de sistem una dupฤ alta.
| Criterii | Program de raportare | Program de dialog |
|---|---|---|
| Tipul programului | Tipul 1, executabil | Tip M, piscinฤ de module |
| Acces la baza de date | Citeศte ศi analizeazฤ datele | Citeศte ศi modificฤ datele |
| Execuศie | Funcศioneazฤ singur | Ruleazฤ doar printr-un cod de tranzacศie |
| Mod de control: | Evenimentele raportului | Logica fluxului de ecran pentru fiecare dynpro |
Secvenศa de afiศฤri a unei tranzacศii de dialog este mai uศor de urmฤrit cu un exemplu.
Un exemplu de procesare a tranzacศiilor รฎn Dialog Programming
Diagrama urmฤreศte o tranzacศie de la primul ecran pรขnฤ la actualizarea bazei de date. Utilizatorul introduce date pe ecranul 100, PAI valideazฤ intrarea ศi decide asupra urmฤtorului ecran, ecranul 200 colecteazฤ datele rฤmase, iar sarcina de actualizare scrie รฎn final รฎnregistrarea. Fiecare dintre aceศti paศi este produs de componentele enumerate mai jos.
Componentele programului de dialog
Spre deosebire de raporteazฤ care implicฤ รฎn general crearea unui program autonom care poate fi executat independent de alte obiecte, dezvoltarea programului de dialog implicฤ dezvoltarea mai multor obiecte, dintre care niciunul nu poate fi executat singur. รn schimb, toate obiectele sunt legate ierarhic la programul principal ศi sunt executate รฎntr-o secvenศฤ dictatฤ de programul principal de dialog..
Componentele unui program de dialog sunt:
Cod de tranzacศie
- Codul tranzacศiei รฎncepe o secvenศฤ de ecran.
- Creaศi coduri de tranzacศie รฎn Browserul de depozit din ABAP Workbench sau folosind Transaction SE93.
- Un cod de tranzacศie este legat de un program ABAP ศi de un ecran iniศial.
- Puteศi porni o secvenศฤ de ecran din orice program ABAP utilizรขnd instrucศiunea CALL SCREEN.
Ecrane
- Fiecare dialog รฎntr-un SAP sistemul este controlat de unul sau mai multe ecrane.
- Creaศi ecrane folosind ecranul Painter รฎn ABAP Workbench prin tranzacศia SE51
- Fiecare ecran aparศine unui program ABAP.
- Aceste ecrane constau dintr-o โmascฤ de ecranโ sau โaspectโ ศi logica sa de flux. Ecranul are un aspect care determinฤ poziศiile cรขmpurilor de intrare/ieศire ศi a altor elemente grafice, cum ar fi casetele de selectare ศi butoanele radio. O logicฤ de flux determinฤ procesarea logicฤ din ecran.
Stare GUI
- Fiecare ecran are o stare GUI care sunt componente independente ale unui program.
- Aceasta controleazฤ barele de meniu, bara de instrumente standard, bara de instrumente a aplicaศiei, cu care utilizatorul poate alege funcศiile din aplicaศie.
- Le creaศi รฎn ABAP Workbench folosind Meniu Painter.
Program ABAP
- Fiecare ecran ศi starea GUI din sistemul R/3 aparศine unui program ABAP.
- Programul ABAP conศine modulele de dialog care sunt apelate de logica fluxului de ecran ศi, de asemenea, proceseazฤ intrarea utilizatorului din starea GUI.
- Programele ABAP care folosesc ecrane sunt cunoscute ศi ca programe de dialog.
- รntr-un pool de module (program de tip M); primul bloc de procesare care trebuie apelat este รฎntotdeauna un modul de dialog. Cu toate acestea, puteศi utiliza ecrane ศi รฎn alte programe ABAP, cum ar fi programe executabile sau module funcศionale. Primul bloc de procesare este apoi numit diferit; de exemplu, de mediul de rulare sau de un apel de procedurฤ. Secvenศa de ecran este apoi pornitฤ folosind instrucศiunea CALL SCREEN.
Logica fluxului de ecran
Logica de flux de ecran este รฎmpฤrศitฤ รฎn primul rรขnd รฎn patru componente.
- Proces รฎnainte de ieศire (PBO) eveniment: care este procesat รฎnainte ca ecranul sฤ fie afiศat
- Proces dupฤ introducere (PAI) eveniment: care este procesat dupฤ o acศiune a utilizatorului pe ecran
- Proces la cererea de ajutor (P.O.H.): care este procesat atunci cรขnd este apฤsat F1
- Procesare la cerere de valoare (POV): care este procesat atunci cรขnd este apฤsat F4
POH ศi POV sunt explicate รฎn detaliu pe pagina despre proces privind cererea de valoare ศi proces privind cererea de ajutor.
Dynpro
- Un ecran รฎmpreunฤ cu logica sa de flux se numeศte Dynpro (โProgram dinamicโ, deoarece logica fluxului ecranului influenศeazฤ fluxul programului).
- Fiecare dynpro controleazฤ exact un pas al programului de dialog.
- Ecranele aparศinรขnd unui program sunt numerotatSecvenศa fluxului de ecrane poate fi liniarฤ sau ciclicฤ. Din cadrul unui lanศ de ecrane, puteศi chiar apela un alt lanศ de ecrane ศi, dupฤ procesarea acestuia, puteศi reveni la lanศul original. De asemenea, puteศi suprascrie ecranul urmฤtor definit static din modulele de dialog ale programului ABAP.
Bazin de module ABAP
- La un eveniment PBO sau PAI, un Dynpro apeleazฤ un program de dialog ABAP. Colecศia de astfel de programe se numeศte pool de module ABAP.
- De exemplu, modulele apelate la evenimentul PAI sunt folosite pentru a verifica intrarea utilizatorului ศi pentru a declanศa paศii de dialog corespunzฤtori, cum ar fi sarcina de actualizare.
- Toศi dynpros sฤ fie chemaศi din interior unu tranzacศia se referฤ la un grup comun de module.
Structura unui program de dialog
Diagrama structurii aratฤ modul รฎn care codul tranzacศiei, ecranele, starea interfeศei grafice ศi setul de module sunt legate de acelaศi program principal.
Fluxul de proces pentru un program de dialog
Diagrama fluxului procesului aratฤ alternanศa dintre ecran ศi programul ABAP: PBO completeazฤ cรขmpurile ecranului, utilizatorul acศioneazฤ, iar PAI proceseazฤ datele de intrare รฎnainte de apelarea urmฤtorului ecran.
Cum se creeazฤ un program de grup de module
Componentele de mai sus sunt create รฎntr-o ordine fixฤ. Paศii de mai jos construiesc o tranzacศie funcศionalฤ dintr-un pool de module gol.
- Creaศi pool-ul de module: รn SE80 sau รฎn SE38, creaศi un program al cฤrui nume รฎncepe cu SAPMZ ศi setaศi tipul de program la M โ Grup de moduleTipul nu poate fi modificat ulterior fฤrฤ a ศterge obiectul.
- Declaraศi datele globale: Plasaศi instrucศiunea TABLES ศi variabilele globale รฎn include-ul TOP, pe care fiecare modul de dialog al pool-ului รฎl poate citi.
- Proiectaศi ecranul: Creaศi ecranul 100 cu ajutorul funcศiei Screen Painter (SE51), plasaศi cรขmpurile de introducere pe layout ศi introduceศi urmฤtorul numฤr de ecran รฎn atributele ecranului.
- Scrieศi logica fluxului: รn fila Logicฤ de flux, apelaศi un modul pentru PBO ศi unul pentru PAI, aศa cum se aratฤ mai jos.
- Construiศi starea interfeศei grafice: Creaศi o stare cu ajutorul Meniului Painter (SE41) ศi setaศi-l รฎn modulul PBO cu instrucศiunea SET PF-STATUS, astfel รฎncรขt Save, Back ศi Exit sฤ ajungฤ รฎn program ca ศi coduri de funcศie.
- Asociaศi un cod de tranzacศie: รn SE93, creaศi o tranzacศie de dialog, denumiศi grupul de module ศi introduceศi 100 ca ecran iniศial.
* Screen 100, flow logic PROCESS BEFORE OUTPUT. MODULE status_0100. PROCESS AFTER INPUT. MODULE user_command_0100. * Module pool SAPMZDEMO MODULE status_0100 OUTPUT. SET PF-STATUS 'STATUS_100'. SET TITLEBAR 'TITLE_100'. ENDMODULE. MODULE user_command_0100 INPUT. CASE sy-ucomm. WHEN 'SAVE'. PERFORM save_data. WHEN 'BACK' OR 'EXIT'. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE.
๐ก Sfat: LEAVE TO SCREEN 0 รฎncheie ecranul curent ศi revine la punctul de apelare, aceasta fiind modalitatea standard de a pฤrฤsi curat o tranzacศie de dialog.




