Dialogiohjelmoinnin opetusohjelma: Moduulivarasto sisään SAP ABAP
⚡ Älykäs yhteenveto
Dialogiohjelmointi SAP ABAP rakentaa moduulipooliohjelmia, jotka ovat vuorovaikutuksessa käyttäjän kanssa näyttöjen kautta ja muuttavat tietokannan sisältöä. Tällä sivulla selitetään tapahtumakoodit, näytöt, graafisen käyttöliittymän tila, näyttöjen työnkulkulogiikka, dynpro-toiminnot ja moduulipoolin rakenne.

Mitä on dialogiohjelmointi?
SAP-ABAP tukee kahden tyyppisiä ohjelmia – Report Program ja Dialog Program.
Jos ABAP-ohjelmasi vaatii käyttäjän syötteitä, käytetään dialogiohjelmointia.
Käyttäjädialogi on minkä tahansa muotoinen vuorovaikutus käyttäjän ja ohjelman välillä, ja se voi olla mikä tahansa seuraavista:
- Tietojen syöttäminen
- Valikkokohdan valinta
- Napsauttamalla painiketta
- Napsauttamalla tai kaksoisnapsauttamalla merkintää
Dialogiohjelmaa käytetään myös silloin, kun meidän on navigoitava edestakaisin näyttöjen välillä
Dialogiohjelmat luodaan tyypiltään 'M' – Module Pool. Niitä ei voida suorittaa itsenäisesti, ja ne on liitettävä vähintään yhteen tapahtumakoodiin, jossa määrität aloitusnäytön.
Ero raportti- ja dialogiohjelmien välillä
Raporttiohjelma:
Raportti on ohjelma, joka yleensä lukee ja analysoi tietokantataulukoiden tietoja muuttamatta sitä tietokanta.
Dialogiohjelma:
Dialogiohjelman avulla voit työskennellä vuorovaikutteisesti järjestelmän kanssa ja muuttaa tietokantataulukoiden sisältöä. Jokaisella dialogiohjelmalla on tietty sarja näyttöjä, jotka järjestelmä käsittelee peräkkäin.
| Kriteeri | Raporttiohjelma | Dialogiohjelma |
|---|---|---|
| Ohjelman tyyppi | Tyyppi 1, suoritettava | Tyyppi M, moduuliallas |
| Pääsy tietokantaan | Lukee ja analysoi tietoja | Lukee ja muuttaa tietoja |
| Teloitus | Toimii itsenäisesti | Toimii vain transaktiokoodin kautta |
| Valvonta: | Raportin tapahtumat | Kunkin dynpron näytön työnkulkulogiikka |
Dialogitapahtuman näyttöjärjestystä on helpompi seurata esimerkin avulla.
Esimerkki tapahtuman käsittelystä Dialog Programmingissa
Kaavio seuraa yhtä tapahtumaa ensimmäiseltä näytöltä tietokannan päivitykseen. Käyttäjä syöttää tiedot näytölle 100, PAI vahvistaa syötteen ja valitsee seuraavan näytön, näyttö 200 kerää loput tiedot ja päivitystehtävä lopulta kirjoittaa tietueen. Jokainen näistä vaiheista tuotetaan alla luetelluilla komponenteilla.
Dialogiohjelman osat
Toisin kuin raportti joka yleensä sisältää yhden autonomisen ohjelman luomisen, joka voidaan suorittaa muista objekteista riippumatta, dialogiohjelman kehittäminen edellyttää useiden objektien kehittämistä, joista yhtäkään ei voida suorittaa yksinään. Sen sijaan kaikki objektit linkitetään hierarkkisesti pääohjelmaan ja suoritetaan Dialogin pääohjelman sanelemassa järjestyksessä..
Dialogiohjelman komponentit ovat:
Tapahtumakoodi
- Tapahtumakoodi aloittaa näyttösarjan.
- Luot tapahtumakoodit ABAP Workbenchin arkistoselaimessa tai Transaction SE93:n avulla.
- Tapahtumakoodi on linkitetty ABAP-ohjelmaan ja aloitusnäyttöön.
- Voit aloittaa näyttösarjan mistä tahansa ABAP-ohjelmasta käyttämällä CALL SCREEN -käskyä.
Näytöt
- Jokainen valintaikkuna SAP järjestelmää ohjataan yhdellä tai useammalla näytöllä.
- Voit luoda näyttöjä käyttämällä Näyttöä Painter ABAP Workbenchissä tapahtuman SE51 kautta
- Jokainen näyttö kuuluu an ABAP ohjelma.
- Nämä näytöt koostuvat "näytön maskista" tai "asettelusta" ja sen kulkulogiikasta. Näytössä on asettelu, joka määrittää syöttö-/tulostuskenttien ja muiden graafisten elementtien, kuten valintaruutujen ja valintanappien, sijainnit. Vuologiikka määrittää loogisen käsittelyn näytössä.
GUI tila
- Jokaisella näytöllä on GUI-tila(t), jotka ovat ohjelman itsenäisiä osia.
- Tämä ohjaa valikkopalkkeja, vakiotyökaluriviä, sovelluksen työkaluriviä, joilla käyttäjä voi valita sovelluksen toimintoja.
- Voit luoda ne ABAP Workbenchissä valikon avulla Painter.
ABAP-ohjelma
- Jokainen näyttö ja GUI-tila R/3-järjestelmässä kuuluu yhdelle ABAP-ohjelmalle.
- ABAP-ohjelma sisältää dialogimoduulit, joita näytön kulkulogiikka kutsuu, ja käsittelee myös käyttäjän syötteen GUI-tilasta.
- Näyttöjä käyttävät ABAP-ohjelmat tunnetaan myös dialogiohjelmina.
- Moduulipoolissa (tyyppi M-ohjelma); ensimmäinen kutsuttava käsittelylohko on aina dialogimoduuli. Voit kuitenkin käyttää näyttöjä myös muissa ABAP-ohjelmissa, kuten suoritettavissa ohjelmissa tai toimintomoduuleissa. Ensimmäistä käsittelylohkoa kutsutaan sitten eri tavalla; esimerkiksi ajonaikaisen ympäristön tai proseduurikutsun avulla. Näyttösarja käynnistetään sitten käyttämällä CALL SCREEN -käskyä.
Näytön kulkulogiikka
Screen Flow -logiikka on jaettu ensisijaisesti neljään osaan.
- Prosessi ennen tulostusta (PBO) tapahtuma: joka käsitellään ennen kuin näyttö tulee näkyviin
- Prosessi syötteen jälkeen (PAI) tapahtuma: joka käsitellään sen jälkeen, kun käyttäjä on suorittanut näytöllä toiminnon
- Käsittele avun pyynnöstä (P.O.H.): joka käsitellään, kun F1 painetaan
- Käsittele arvopyynnöstä (POV): joka käsitellään, kun F4 painetaan
POH ja POV selitetään yksityiskohtaisesti sivulla, joka käsittelee arvopyynnön käsittely ja avunpyynnön käsittely.
Dynpro
- Näyttöä yhdessä sen Flow-logiikan kanssa kutsutaan Dynproksi ("dynaaminen ohjelma", koska näytön virtauslogiikka vaikuttaa ohjelman kulkuun).
- Jokainen dynpro hallitsee täsmälleen yhtä vaihetta Dialog-ohjelmassasi.
- Ohjelmaan kuuluvat näytöt ovat numeroituNäyttövuon järjestys voi olla joko lineaarinen tai syklinen. Näyttöketjun sisältä voit jopa kutsua toista näyttöketjua ja palata sen käsittelyn jälkeen alkuperäiseen ketjuun. Voit myös ohittaa staattisesti määritellyn seuraavan näytön ABAP-ohjelman dialogimoduuleista.
ABAP-moduulipooli
- PBO- tai PAI-tapahtuman yhteydessä Dynpro kutsuu ABAP-dialogiohjelmaa. Tällaisten ohjelmien kokoelmaa kutsutaan ABAP-moduulipooliksi.
- Esimerkiksi PAI-tapahtumassa kutsuttuja moduuleja käytetään tarkistamaan käyttäjän syötteet ja käynnistämään sopivat dialogivaiheet, kuten päivitystehtävä.
- Kaikki dynprot kutsutaan sisältä yksi tapahtuma viittaa yhteiseen moduulipooliin.
Dialogiohjelman rakenne
Rakennekaavio näyttää, miten tapahtumakoodi, näytöt, graafisen käyttöliittymän tila ja moduulipooli on linkitetty samaan pääohjelmaan.
Dialogiohjelman prosessi
Prosessivuokaavio näyttää näytön ja ABAP-ohjelman vuorottelun: PBO täyttää näytön kentät, käyttäjä toimii ja PAI käsittelee syötteen ennen seuraavan näytön kutsumista.
Moduulipooliohjelman luominen
Yllä olevat komponentit luodaan kiinteässä järjestyksessä. Alla olevat vaiheet rakentavat toimivan transaktion tyhjästä moduulipoolista.
- Luo moduulipooli: Luo SE80:ssä tai SE38:ssa ohjelma, jonka nimi alkaa merkeillä SAPMZ ja aseta ohjelmatyypiksi M – ModuulipooliTyyppiä ei voi muuttaa myöhemmin poistamatta kohdetta.
- Ilmoita globaalit tiedot: Sijoita TABLES-lauseke ja globaalit muuttujat TOP include -muuttujaan, jonka jokainen poolin dialogimoduuli voi lukea.
- Suunnittele näyttö: Luo näyttö 100 näytöllä Painter (SE51), sijoita syöttökentät asetteluun ja syötä seuraavan näytön numero näytön ominaisuuksiin.
- Kirjoita vuon logiikka: Kutsu Flow logic -välilehdellä yksi PBO-moduuli ja yksi PAI-moduuli alla olevan kuvan mukaisesti.
- GUI-tilan luominen: Luo tila valikon avulla Painter (SE41) ja aseta se PBO-moduulissa SET PF-STATUS-lausekkeella, jotta Tallenna-, Takaisin- ja Poistu-toiminnot saavuttavat ohjelma funktiokoodeina.
- Linkitä tapahtumakoodi: Luo SE93:ssa dialogitapahtuma, nimeä moduulipooli ja kirjoita aloitusnäytöksi 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.
💡 Vinkki: LEAVE TO SCREEN 0 lopettaa nykyisen näytön ja palaa kutsupisteeseen, mikä on vakiotapa poistua dialogitapahtumasta siististi.




