Dialoogi programmeerimise õpetus: mooduli kogum SAP ABAP
⚡ Nutikas kokkuvõte
Dialoogiprogrammeerimine SAP ABAP loob moodulikogumi programme, mis suhtlevad kasutajaga ekraanide kaudu ja muudavad andmebaasi sisu. See leht selgitab tehingukoode, ekraane, graafilise kasutajaliidese olekut, ekraanivoo loogikat, dynprosid ja moodulikogumi struktuuri.
Mis on dialoogprogrammeerimine?
SAP-ABAP toetab kahte tüüpi programme – aruandeprogrammi ja dialoogiprogrammi.
Kui teie ABAP-programm nõuab kasutaja sisestust, kasutatakse dialoogiga programmeerimist.
Kasutajadialoog on igasugune kasutaja ja programmi vaheline interaktsioon ning see võib olla ükskõik milline järgmistest:
- Andmete sisestamine
- Menüüelemendi valimine
- Nupu klõpsamine
- Kirjel klõpsamine või topeltklõps
Dialoogiprogrammi kasutatakse ka siis, kui peame liikuma ekraanide vahel edasi-tagasi
Dialoogiprogrammid luuakse tüübiga 'M' – Module Pool. Neid ei saa iseseisvalt käivitada ja need peavad olema lisatud vähemalt ühele tehingukoodile, milles määrate algkuva.
Aruande- ja dialoogiprogrammide erinevus
Aruandeprogramm:
Aruanne on programm, mis tavaliselt loeb ja analüüsib andmebaasi tabelites olevaid andmeid muutmata andmebaas.
Dialoogiprogramm:
Dialoogiprogramm võimaldab süsteemiga interaktiivset tööd teha ja andmebaasi tabelite sisu muuta. Igal dialoogiprogrammil on teatud ekraanide jada, mida süsteem üksteise järel töötleb.
| Kriteeriumid | Aruandeprogramm | Dialoogiprogramm |
|---|---|---|
| Programmi tüüp | Tüüp 1, käivitatav | Tüüp M, moodulbassein |
| Juurdepääs andmebaasile | Loeb ja analüüsib andmeid | Loeb ja muudab andmeid |
| Täitmine | Töötab iseseisvalt | Töötab ainult tehingukoodi kaudu |
| Kontroll | Aruande sündmused | Iga dynpro ekraanivoo loogika |
Dialoogitehingu ekraanijärjestust on näite abil lihtsam jälgida.
Tehingu töötlemise näidis dialoogiprogrammeerimises
Diagramm jälgib ühte tehingut esimeselt ekraanilt kuni andmebaasi värskendamiseni. Kasutaja sisestab andmed ekraanile 100, PAI valideerib kirje ja otsustab järgmise ekraani, ekraan 200 kogub ülejäänud andmed ja värskendamisülesanne kirjutab lõpuks kirje. Kõik need sammud on loodud allpool loetletud komponentide abil.
Dialoogiprogrammi komponendid
Erinevalt aru mis üldiselt hõlmab ühe autonoomse programmi loomist, mida saab käivitada teistest objektidest sõltumatult, dialoogiprogrammi arendamine hõlmab mitme objekti arendamist, millest ükski ei saa iseseisvalt käivitada. Selle asemel seotakse kõik objektid hierarhiliselt põhiprogrammiga ja käivitatakse dialoogi põhiprogrammi dikteeritud järjestuses.
Dialoogiprogrammi komponendid on järgmised:
Tehingu kood
- Tehingukood käivitab ekraanijärjestuse.
- Tehingukoodid saate luua ABAP Workbenchi hoidla brauseris või tehingu SE93 abil.
- Tehingukood on lingitud ABAP programmi ja algkuvaga.
- Saate käivitada ekraanijada mis tahes ABAP-programmist, kasutades käsku CALL SCREEN.
Ekraanid
- Iga dialoog an SAP süsteemi juhitakse ühe või mitme ekraaniga.
- Saate luua ekraane kasutades Ekraani Painter ABAP Workbenchis tehingu SE51 kaudu
- Iga ekraan kuulub an ABAP programm.
- Need ekraanid koosnevad "ekraanimaskist" või "paigutusest" ja selle vooluloogikast. Ekraanil on paigutus, mis määrab sisend-/väljundväljade ja muude graafiliste elementide, nagu märkeruudud ja raadionupud, asukohad. Vooluloogika määrab loogilise töötlemise ekraanil.
GUI olek
- Igal ekraanil on GUI olekud, mis on programmi sõltumatud komponendid.
- See juhib menüüribasid, standardset tööriistariba, rakenduse tööriistariba , mille abil kasutaja saab rakenduses funktsioone valida.
- Saate need luua ABAP Workbenchis menüü abil Painter.
ABAP programm
- Iga ekraan ja GUI olek süsteemis R/3 kuulub ühele ABAP-programmile.
- ABAP-programm sisaldab dialoogimooduleid, mida ekraanivoo loogika kutsub, ja töötleb ka kasutaja sisendit GUI olekust.
- Ekraani kasutavaid ABAP-programme nimetatakse ka dialoogiprogrammideks.
- Moodulikogumis (tüüp M programm); esimene väljakutsutav töötlemisplokk on alati dialoogimoodul. Siiski saate ekraane kasutada ka teistes ABAP-programmides, näiteks käivitatavates programmides või funktsioonimoodulites. Esimest töötlemisplokki nimetatakse siis erinevalt; näiteks käituskeskkonna või protseduurikutse kaudu. Seejärel käivitatakse ekraani jada, kasutades käsku CALL SCREEN.
Ekraani vooluloogika
Screen Flow loogika jaguneb peamiselt neljaks komponendiks.
- Protsess enne väljundit (PBO) sündmus: mida töödeldakse enne ekraani kuvamist
- Protsess pärast sisestamist (PAI) sündmus: mida töödeldakse pärast kasutaja toimingut ekraanil
- Töötle abipalve alusel (P.O.H.): mida töödeldakse, kui vajutada F1
- Töötle väärtuse nõudmisel (POV): mida töödeldakse, kui vajutada F4
POH ja POV on üksikasjalikult selgitatud lehel väärtustaotluse ja abitaotluse protsess.
Dynpro
- Ekraani koos selle vooloogikaga nimetatakse Dynpro'ks („dünaamiline programm”, kuna ekraani vooloogika mõjutab programmi voogu).
- Iga dynpro juhib täpselt ühte sammu teie dialoogiprogrammist.
- Programmi kuuluvad ekraanid on nummerdatudEkraanivoo järjestus võib olla kas lineaarne või tsükliline. Ekraaniahela seest saate isegi kutsuda teise ekraaniahela ja pärast selle töötlemist naasta algsesse ahelasse. Samuti saate ABAP-programmi dialoogimoodulites staatiliselt määratletud järgmise ekraani üle kirjutada.
ABAP mooduli bassein
- PBO või PAI sündmuse korral kutsub Dynpro välja ABAP dialoogiprogrammi. Selliste programmide kogumit nimetatakse ABAP moodulite kogumiks.
- Näiteks PAI sündmusel kutsutud mooduleid kasutatakse kasutaja sisendi kontrollimiseks ja sobivate dialoogisammude käivitamiseks, nagu värskendusülesanne.
- Kõik dünprod tuleb kutsuda seestpoolt üks tehing viitab ühisele moodulikogumile.
Dialoogiprogrammi struktuur
Struktuuriskeem näitab, kuidas tehingukood, ekraanid, graafilise kasutajaliidese olek ja moodulite kogum on seotud sama põhiprogrammiga.
Dialoogiprogrammi protsessivoog
Protsessi vooskeem näitab ekraani ja ABAP-programmi vaheldumist: PBO täidab ekraaniväljad, kasutaja tegutseb ja PAI töötleb sisendit enne järgmise ekraani kutsumist.
Kuidas luua moodulite kogumi programmi
Ülaltoodud komponendid luuakse fikseeritud järjekorras. Allolevad sammud loovad tühjast moodulite kogumist toimiva tehingu.
- Loo moodulite kogum: Looge SE80-s või SE38-s programm, mille nimi algab tähega SAPMZ ja määrake programmi tüübiks M – moodulite kogumTüüpi ei saa hiljem objekti kustutamata muuta.
- Deklareerige globaalsed andmed: Pane TABLES-lause ja globaalsed muutujad TOP include'i, mida iga basseini dialoogimoodul saab lugeda.
- Ekraani kujundus: Loo ekraan 100 ekraani abil Painter (SE51), asetage sisestusväljad paigutusele ja sisestage ekraani atribuutidesse järgmise ekraani number.
- Kirjuta vooloogika: Vahekaardil Vooluloogika kutsuge üks moodul PBO ja teine PAI jaoks, nagu allpool näidatud.
- GUI oleku loomine: Loo staatus menüü abil Painter (SE41) ja määrake see PBO moodulis SET PF-STATUS käsuga, nii et salvestamine, tagasiminek ja väljumine jõuaksid programmi funktsioonikoodidena.
- Tehingukoodi linkimine: Loo SE93-s dialoogitehing, nimeta moodulikogum ja sisesta algkuvaks 100.
* 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.
💡 Näpunäide: LEAVE TO SCREEN 0 sulgeb praeguse ekraani ja naaseb kõnepunkti, mis on standardne viis dialoogitehingust puhtalt lahkumiseks.





