Vodič za dijaloško programiranje: Spremnik modula u SAP ABAP

⚡ Pametni sažetak

Programiranje dijaloga u SAP ABAP gradi programe za skup modula koji komuniciraju s korisnikom putem ekrana i mijenjaju sadržaj baze podataka. Ova stranica objašnjava kodove transakcija, ekrane, status GUI-ja, logiku toka ekrana, dynpros i strukturu skupa modula.

  • 💬 Osnovna definicija: Dijaloški program obrađuje bilo koju korisničku interakciju, poput unosa podataka, odabira stavke izbornika ili klika na gumb, te može ažurirati bazu podataka.
  • 🅼 Vrsta programa: Dijaloški programi su moduli tipa M, ne mogu se izvršavati samostalno i moraju biti pridruženi barem jednom transakcijskom kodu s početnim zaslonom.
  • 🧩 Komponente: Transakcijski kod, ekrani, status GUI-ja, ABAP moduli i logika toka zajedno tvore jednu dijalošku aplikaciju.
  • 🔄 Logika toka: PBO se pokreće prije nego što se pojavi zaslon, PAI se pokreće nakon korisničke akcije, POH odgovara na F1, a POV odgovara na F4.
  • 🖥️ Dynpro: Zaslon plus njegova logika toka je dynpro, a svaki dynpro kontrolira točno jedan korak dijaloga.
  • ???? Skup modula: Svi dynpro-ovi pozvani unutar jedne transakcije odnose se na zajednički skup modula koji sadrži dijaloške module.
  • 🛠️ Put stvaranja: SE80 kreira skup modula, SE51 dizajnira ekran, SE41 gradi status GUI-ja, a SE93 povezuje kod transakcije.

SAP ABAP programiranje dijaloga

Što je dijaloško programiranje?

SAP-ABAP podržava dvije vrste programa – Report Program i Dialog Program.

Ako vaš ABAP program zahtijeva korisnički unos, koristi se dijaloško programiranje.

Korisnički dijalog je bilo koji oblik interakcije između korisnika i programa i može biti bilo koji od sljedećih

  • Unos podataka
  • Odabir stavke izbornika
  • Klikom na gumb
  • Klik ili dvostruki klik na unos

Dijaloški program također se koristi kada se trebamo kretati naprijed-natrag između ekrana

Dijaloški programi se kreiraju s tipom 'M' – Skup modula. Ne mogu se izvršiti neovisno i moraju biti pridruženi barem jednom kodu transakcije u kojem navedete početni zaslon.

Razlika između izvješća i dijaloških programa

Razlika između izvješća i dijaloških programa

Program izvješća:

Izvješće je program koji obično čita i analizira podatke u tablicama baze podataka bez mijenjanja baza podataka.

Dijaloški program:

Dijaloški program omogućuje vam interaktivni rad sa sustavom i promjenu sadržaja tablica baze podataka. Svaki dijaloški program ima određeni niz ekrana koje sustav obrađuje jedan za drugim.

Kriteriji Program izvješća Program dijaloga
Vrsta programa Tip 1, izvršna datoteka Tip M, bazen modula
Pristup bazi podataka Čita i analizira podatke Čita i mijenja podatke
Izvršenje Radi samostalno Radi samo putem transakcijskog koda
kontrola Događaji iz izvješća Logika toka zaslona svakog dynpro-a

Slijed prikaza na zaslonu dijaloške transakcije lakše je pratiti na primjeru.

Uzorak obrade transakcija u dijaloškom programiranju

Uzorak obrade transakcije

Dijagram prati jednu transakciju od prvog zaslona do ažuriranja baze podataka. Korisnik unosi podatke na zaslonu 100, PAI potvrđuje unos i odlučuje o sljedećem zaslonu, zaslon 200 prikuplja preostale podatke, a zadatak ažuriranja konačno zapisuje zapis. Svaki od tih koraka proizvode komponente navedene u nastavku.

Komponente dijaloškog programa

Za razliku od prijaviti koji općenito podrazumijeva stvaranje jednog autonomnog programa koji se može izvršavati neovisno o drugim objektima, razvoj dijaloškog programa podrazumijeva razvoj više objekata od kojih se niti jedan ne može izvršiti sam za sebe. Umjesto toga, svi su objekti hijerarhijski povezani s glavnim programom i izvršavaju se u slijedu koji diktira glavni program dijaloga.

Komponente dijaloškog programa su:

Kod transakcije

  • Šifra transakcije pokreće niz zaslona.
  • Transakcijske kodove kreirate u Repository Browseru u ABAP Workbenchu ​​ili koristeći Transaction SE93.
  • Šifra transakcije povezana je s ABAP programom i početnim zaslonom.
  • Možete pokrenuti sekvencu ekrana iz bilo kojeg ABAP programa koristeći naredbu CALL SCREEN.

Paravani

  • Svaki dijalog u SAP sustavom upravlja jedan ili više ekrana.
  • Zaslone stvarate pomoću Zaslona Painter u ABAP Workbench kroz transakciju SE51
  • Svaki zaslon pripada ABAP program.
  • Ti se ekrani sastoje od "zaslonske maske" ili "rasporeda" i njegove logike toka. Zaslon ima raspored koji određuje položaje ulazno/izlaznih polja i drugih grafičkih elemenata kao što su potvrdni okviri i radio gumbi. Logika toka određuje logičku obradu unutar zaslona.

GUI status

  • Svaki zaslon ima GUI status(e) koji su neovisne komponente programa.
  • Ovo kontrolira trake izbornika, standardnu ​​alatnu traku, alatnu traku aplikacije, pomoću kojih korisnik može odabrati funkcije u aplikaciji.
  • Stvarate ih u ABAP Workbenchu ​​pomoću izbornika Painter.

ABAP program

  • Svaki zaslon i GUI status u sustavu R/3 pripada jednom ABAP programu.
  • Program ABAP sadrži dijaloške module koji se pozivaju logikom toka zaslona, ​​a također obrađuju korisnički unos iz GUI statusa.
  • ABAP programi koji koriste zaslone poznati su i kao dijaloški programi.
  • U skupu modula (program tipa M); prvi blok obrade koji se poziva uvijek je dijaloški modul. Međutim, također možete koristiti zaslone u drugim ABAP programima, kao što su izvršni programi ili funkcijski moduli. Prvi blok obrade tada se naziva drugačije; na primjer, okruženjem vremena izvođenja ili pozivom procedure. Slijed zaslona se tada pokreće korištenjem naredbe CALL SCREEN.

Logika protoka zaslona

Logika Screen Flow prvenstveno je podijeljena u četiri komponente.

  • Proces prije izlaza (PBO) događaj: koji se obrađuje prije nego što se prikaže ekran
  • Proces nakon unosa (PAI) događaj: koji se obrađuje nakon radnje korisnika na zaslonu
  • Proces na zahtjev za pomoć (P.O.H.): koji se obrađuje kada se pritisne F1
  • Proces na zahtjev vrijednosti (POV):koji se obrađuje kada se pritisne F4

POH i POV detaljno su objašnjeni na stranici o obrada zahtjeva za vrijednost i obrada zahtjeva za pomoć.

Dynpro

  • Zaslon zajedno sa svojom logikom toka naziva se Dynpro („Dinamički program“ jer logika toka zaslona utječe na tok programa)
  • Svaki dynpro kontrolira točno jedan korak vašeg dijaloškog programa.
  • Zasloni koji pripadaju programu su numeriranSlijed toka zaslona može biti linearan ili ciklički. Iznutra lanca zaslona možete čak pozvati drugi lanac zaslona i, nakon njegove obrade, vratiti se na izvorni lanac. Također možete nadjačati statički definirani sljedeći zaslon unutar dijaloških modula ABAP programa.

Skup modula ABAP

  • Na PBO ili PAI događaju Dynpro poziva ABAP dijaloški program. Kolekcija takvih programa naziva se ABAP modularni skup.
  • Na primjer, moduli pozvani u PAI događaju koriste se za provjeru korisničkog unosa i za pokretanje odgovarajućih koraka dijaloga, kao što je zadatak ažuriranja.
  • Svi dynprosi koji se pozivaju iznutra jedan transakcije se odnose na zajednički skup modula.

Struktura dijaloškog programa

Struktura dijaloškog programa

Strukturni dijagram prikazuje kako su transakcijski kod, ekrani, status GUI-ja i skup modula povezani s istim glavnim programom.

Tijek procesa za dijaloški program

Tijek procesa za dijaloški program

Dijagram toka procesa prikazuje izmjenu između zaslona i ABAP programa: PBO ispunjava polja zaslona, ​​korisnik djeluje, a PAI obrađuje ulaz prije nego što se pozove sljedeći zaslon.

Kako stvoriti program skupa modula

Gore navedene komponente stvaraju se fiksnim redoslijedom. Koraci u nastavku izgrađuju radnu transakciju iz praznog skupa modula.

  1. Kreirajte skup modula: U SE80 ili SE38, kreirajte program čije ime počinje s SAPMZ i postavite vrstu programa na M – Modularni bazenTip se kasnije ne može promijeniti bez brisanja objekta.
  2. Deklarirajte globalne podatke: Stavite naredbu TABLES i globalne varijable u TOP include, koje svaki dijaloški modul u skupu može čitati.
  3. Dizajnirajte ekran: Napravite ekran 100 pomoću programa Screen Painter (SE51), postavite polja za unos na raspored i unesite sljedeći broj zaslona u atribute zaslona.
  4. Napišite logiku toka: Na kartici Logika toka pozovite jedan modul za PBO i jedan za PAI, kao što je prikazano dolje.
  5. Izgradite status GUI-ja: Izradite status pomoću Izbornika Painter (SE41) i postavite ga u PBO modulu naredbom SET PF-STATUS, tako da Spremi, Natrag i Izlaz dođu do programa kao funkcijski kodovi.
  6. Poveži kod transakcije: U SE93 kreirajte dijalošku transakciju, nazovite skup modula i unesite 100 kao početni ekran.
* 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.

💡 Savjet: NAPAD NA EKRAN 0 završava trenutni ekran i vraća se na pozivnu točku, što je standardni način za čisto napuštanje dijaloške transakcije.

Pitanja i odgovori

CALL SCREEN otvara novi zaslon i zadržava zaslon pozivatelja na stogu, tako da se obrada vraća na njega. LEAVE TO SCREEN zamjenjuje trenutni zaslon i ništa se ne vraća pozivatelju.

Skup modula pod nazivom SAPMZDEMO je podijeljen na MZDEMOTOP za globalne podatke, MZDEMOO01 za PBO module, MZDEMOI01 za PAI module i MZDEMOF01 za potprograme. Radni prostor ih generira automatski.

Dodijelite funkciji gumba tip E u statusu GUI-ja i pozovite njegov modul s MODULE exit AT EXIT-COMMAND. Modul se zatim pokreće prije validacije polja, tako da korisnik može napustiti zaslon s nevažećim unosima.

Da. AI asistenti unutar ABAP razvojnih alata izrađuju PBO i PAI module, CASE naredbu na SY-UCOMM-u i validacije polja iz opisa zaslona. Sam izgled se i dalje crta na zaslonu. Painter.

Dynpros još uvijek izvodi svaku klasičnu glazbu SAP Transakcija GUI-ja. Nova korisnička sučelja obično se grade pomoću Fiorija, a AI alati pomažu čitanjem postojeće logike toka i predlaganjem ekvivalentnog dizajna usluge i aplikacije.

Sažmite ovu objavu uz: