Dialogprogrammeringsveiledning: Modulpool in SAP ABAP
SAP-ABAP støtter to typer programmer – Rapportprogram og Dialogprogram.
Hvis ABAP-programmet krever brukerinndata, brukes dialogprogrammering.
I denne opplæringen lærer du:
- Forskjellen mellom rapport- og dialogprogrammer
- Eksempel på transaksjonsbehandling i dialogprogrammering
- Komponenter i dialogprogrammet
En brukerdialog er enhver form for interaksjon mellom brukeren og programmet og kan være en av følgende
- Legger inn data
- Velge et menyelement
- Klikk på en knapp
- Klikke eller dobbeltklikke på en oppføring
Dialogprogram brukes også når vi skal navigere frem og tilbake mellom skjermer
Dialogprogrammer lages med type som 'M' – Module Pool. De kan ikke utføres uavhengig og må være knyttet til minst én transaksjonskode der du spesifiserer en startskjerm.
Forskjellen mellom rapport- og dialogprogrammer
Rapportprogram:
En rapport er et program som vanligvis leser og analyserer data i databasetabeller uten å endre database.
Dialogprogram:
Et dialogprogram lar deg jobbe interaktivt med systemet og endre innholdet i databasetabellene. Hvert dialogprogram har en bestemt sekvens av skjermbilder som behandles av systemet etter hverandre.
Et eksempel på transaksjonsbehandling i dialogprogrammering
Komponenter i dialogprogrammet
I motsetning til rapporterer som generelt innebærer opprettelse av ett autonomt program som kan kjøres uavhengig av andre objekter, dialogprogramutvikling innebærer utvikling av flere objekter, hvorav ingen kan kjøres på egen hånd. I stedet er alle objekter koblet hierarkisk til hovedprogrammet og og blir utført i en sekvens diktert av dialogens hovedprogram.
Komponentene i et dialogprogram er:
Transaksjons kode
- Transaksjonskoden starter en skjermsekvens.
- Du oppretter transaksjonskoder i Repository Browser i ABAP Workbench eller ved å bruke Transaction SE93.
- En transaksjonskode er knyttet til et ABAP-program og en startskjerm.
- Du kan starte en skjermsekvens fra et hvilket som helst ABAP-program ved å bruke CALL SCREEN-setningen.
Skjermer
- Hver dialog i en SAP systemet styres av en eller flere skjermer.
- Du lager skjermer ved å bruke skjermen Painter i ABAP Workbench gjennom transaksjon SE51
- Hver skjerm tilhører en ABAP-program.
- Disse skjermene består av en "skjermmaske" eller "layout" og dens flytlogikk. Skjermen har et oppsett som bestemmer plasseringen av inn-/utdatafelt og andre grafiske elementer som avmerkingsbokser og radioknapper. En flytlogikk bestemmer den logiske behandlingen på skjermen.
GUI-status
- Hver skjerm har en GUI-status(er) som er uavhengige komponenter i et program.
- Dette styrer menylinjene, standardverktøylinjen, applikasjonsverktøylinjen, som brukeren kan velge funksjoner i applikasjonen med.
- Du lager dem i ABAP Workbench ved å bruke menyen Painter.
ABAP-program
- Hver skjerm og GUI-status i R/3-systemet tilhører ett ABAP-program.
- ABAP-programmet inneholder dialogmodulene som kalles opp av skjermflytlogikken, og behandler også brukerinndata fra GUI-statusen.
- ABAP-programmer som bruker skjermer er også kjent som dialogprogrammer.
- I en modulpool (type M-program); den første behandlingsblokken som skal kalles er alltid en dialogmodul. Du kan imidlertid også bruke skjermer i andre ABAP-programmer, for eksempel kjørbare programmer eller funksjonsmoduler. Den første prosesseringsblokken kalles da annerledes; for eksempel av kjøretidsmiljøet eller et prosedyrekall. Skjermsekvensen startes deretter ved å bruke CALL SCREEN-setningen.
Skjermflytlogikk
Skjermflytlogikk er primært delt inn i fire komponenter.
- Prosess før utdata (PBO) hendelse: som behandles før skjermen vises
- Prosess etter inndata (PAI) hendelse: som behandles etter en brukerhandling på skjermen
- Prosess på forespørsel om hjelp (P.O.H.): som behandles når F1 trykkes
- Prosess på verdiforespørsel (POV): som behandles når F4 trykkes
Dynpro
- En skjerm sammen med dens flytlogikk kalles et Dynpro ("Dynamisk program" siden skjermflytlogikken påvirker programflyten)
- Hver dynpro kontrollerer nøyaktig ett trinn i dialogprogrammet.
- Skjermene som tilhører et program er nummerert. Skjermflytsekvensen kan være enten lineær eller syklisk. Fra en skjermkjede kan du til og med ringe en annen skjermkjede og, etter å ha behandlet den, gå tilbake til den opprinnelige kjeden. Du kan også overstyre det statisk definerte neste skjermbildet fra dialogmodulene til ABAP-programmet.
ABAP-modulpool
- På en PBO- eller PAI-hendelse kaller en Dynpro et ABAP-dialogprogram. Samling av slike programmer kalles ABAP-modulpoolen.
- For eksempel brukes moduler som kalles ved PAI-hendelsen til å sjekke brukerinndata og for å utløse passende dialogtrinn, for eksempel oppdateringsoppgaven.
- Alle dynpros skal kalles innenfra en transaksjon refererer til en felles modulpool.
Strukturen til et dialogprogram
Prosessflyt for et dialogprogram