Dialogprogrammeringshandledning: Modulpool in SAP ABAP
SAP-ABAP stöder två typer av program – Rapportprogram och Dialogprogram.
Om ditt ABAP-program kräver användarinput används dialogprogrammering.
I den här handledningen kommer du att lära dig:
- Skillnad mellan rapport- och dialogprogram
- Exempel på transaktionsbearbetning i dialogprogrammering
- Komponenter i dialogprogrammet
En användardialog är vilken som helst form av interaktion mellan användaren och programmet och kan vara något av följande
- Mata in data
- Att välja ett menyalternativ
- Klicka på en knapp
- Klicka eller dubbelklicka på en post
Dialogprogram används även när vi behöver navigera fram och tillbaka mellan skärmarna
Dialogprogram skapas med typen som 'M' – Modulpool. De kan inte utföras oberoende och måste bifogas till minst en transaktionskod där du anger en startskärm.
Skillnad mellan rapport- och dialogprogram
Rapportprogram:
En rapport är ett program som vanligtvis läser och analyserar data i databastabeller utan att ändra databas.
Dialogprogram:
Ett dialogprogram låter dig arbeta interaktivt med systemet och ändra innehållet i databastabellerna. Varje dialogprogram har en viss sekvens av skärmar som bearbetas av systemet efter varandra.
Ett exempel på transaktionsbearbetning i dialogprogrammering
Komponenter i dialogprogrammet
Till skillnad från rapport vilket i allmänhet innebär skapandet av ett autonomt program som kan exekveras oberoende av andra objekt, utveckling av dialogprogram innebär utveckling av flera objekt av vilka inget kan exekveras på egen hand. Istället länkas alla objekt hierarkiskt till huvudprogrammet och exekveras i en sekvens som dikteras av dialogens huvudprogram.
Komponenterna i ett dialogprogram är:
Transaktion kod
- Transaktionskoden startar en skärmsekvens.
- Du skapar transaktionskoder i Repository Browser i ABAP Workbench eller med Transaction SE93.
- En transaktionskod är kopplad till ett ABAP-program och en startskärm.
- Du kan starta en skärmsekvens från vilket ABAP-program som helst med CALL SCREEN-satsen.
Skärmar
- Varje dialog i en SAP systemet styrs av en eller flera skärmar.
- Du skapar skärmar med hjälp av skärmen Painter i ABAP Workbench genom transaktion SE51
- Varje skärm tillhör en ABAP-program.
- Dessa skärmar består av en "skärmmask" eller "layout" och dess flödeslogik. Skärmen har en layout som bestämmer positionerna för inmatnings-/utdatafält och andra grafiska element som kryssrutor och radioknappar. En flödeslogik bestämmer den logiska behandlingen på skärmen.
GUI-status
- Varje skärm har en eller flera GUI-statusar som är oberoende komponenter i ett program.
- Detta styr menyraderna, standardverktygsfältet, applikationsverktygsfältet, med vilka användaren kan välja funktioner i applikationen.
- Du skapar dem i ABAP Workbench med hjälp av menyn Painter.
ABAP-program
- Varje skärm och GUI-status i R/3-systemet tillhör ett ABAP-program.
- ABAP-programmet innehåller dialogmodulerna som anropas av skärmflödeslogiken och bearbetar även användarinmatningen från GUI-statusen.
- ABAP-program som använder skärmar är också kända som dialogprogram.
- I en modulpool (typ M-program); det första bearbetningsblocket som ska anropas är alltid en dialogmodul. Men du kan också använda skärmar i andra ABAP-program, som exekverbara program eller funktionsmoduler. Det första bearbetningsblocket kallas då annorlunda; till exempel av runtime-miljön eller ett proceduranrop. Skärmsekvensen startas sedan med CALL SCREEN-satsen.
Skärmflödeslogik
Skärmflödeslogik är i första hand uppdelad i fyra komponenter.
- Process före utdata (PBO) händelse: som bearbetas innan skärmen visas
- Process efter inmatning (PAI) händelse: som bearbetas efter en användaråtgärd på skärmen
- Process på begäran om hjälp (P.O.H.): som bearbetas när F1 trycks ned
- Process på värdeförfrågan (POV): som bearbetas när F4 trycks ned
Dynpro
- En skärm tillsammans med dess flödeslogik kallas för ett Dynpro ("Dynamiskt program" eftersom skärmflödeslogiken påverkar programflödet)
- Varje dynpro styr exakt ett steg i ditt dialogprogram.
- Skärmarna som hör till ett program är numrerad. Skärmflödessekvensen kan vara antingen linjär eller cyklisk. Inifrån en skärmkedja kan du till och med anropa en annan skärmkedja och, efter att ha bearbetat den, återgå till den ursprungliga kedjan. Du kan också åsidosätta den statiskt definierade nästa skärm från dialogmodulerna i ABAP-programmet.
ABAP-modulpool
- På en PBO- eller PAI-händelse anropar en Dynpro ett ABAP-dialogprogram. Samling av sådana program kallas ABAP-modulpoolen.
- Till exempel används moduler som anropas vid PAI-händelsen för att kontrollera användarinmatningen och för att utlösa lämpliga dialogsteg, såsom uppdateringsuppgiften.
- Alla dynpros ska kallas inifrån ett transaktion hänvisar till en gemensam modulpool.
Struktur för ett dialogprogram
Processflöde för ett dialogprogram