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.

  • 💬 Ydinmääritelmä: Dialogiohjelma käsittelee kaikki käyttäjän toiminnot, kuten tietojen syöttämisen, valikkokohdan valitsemisen tai painikkeen napsauttamisen, ja voi päivittää tietokantaa.
  • 🅼 Ohjelman tyyppi: Dialogiohjelmat ovat M-tyypin moduulipooleja, eivätkä ne voi toimia yksinään, ja ne on liitettävä vähintään yhteen tapahtumakoodiin, jolla on aloitusnäyttö.
  • 🧩 Komponentit: Transaktiokoodi, näytöt, graafisen käyttöliittymän tila, ABAP-moduulipooli ja työnkulkulogiikka muodostavat yhdessä yhden dialogisovelluksen.
  • 🔄 Virtauslogiikka: PBO suoritetaan ennen näytön avautumista, PAI suoritetaan käyttäjän toimenpiteen jälkeen, POH vastaa F1-näppäimeen ja POV vastaa F4-näppäimeen.
  • 🖥️ Dynpro: Näyttö ja sen työnkulkulogiikka ovat dynpro, ja jokainen dynpro ohjaa täsmälleen yhtä dialogin vaihetta.
  • 📦 Moduulipooli: Kaikki yhden transaktion sisällä kutsutut dynpro-funktiot viittaavat yhteiseen moduulipooliin, joka sisältää dialogimoduulit.
  • 🛠️ Luontipolku: SE80 luo moduulipoolin, SE51 suunnittelee näytön, SE41 rakentaa graafisen käyttöliittymän tilan ja SE93 linkittää tapahtumakoodin.

SAP ABAP-dialogiohjelmointi

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ä

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

Esimerkki tapahtuman käsittelystä

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

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

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.

  1. 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.
  2. Ilmoita globaalit tiedot: Sijoita TABLES-lauseke ja globaalit muuttujat TOP include -muuttujaan, jonka jokainen poolin dialogimoduuli voi lukea.
  3. 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.
  4. Kirjoita vuon logiikka: Kutsu Flow logic -välilehdellä yksi PBO-moduuli ja yksi PAI-moduuli alla olevan kuvan mukaisesti.
  5. 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.
  6. 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.

UKK

CALL SCREEN avaa uuden näytön ja pitää kutsuvan näytön pinossa, joten käsittely palaa siihen. LEAVE TO SCREEN korvaa nykyisen näytön, eikä soittajalle palauteta mitään.

Moduulipooli nimeltä SAPMZDEMO on jaettu MZDEMOTOPiin globaaleja tietoja varten, MZDEMOO01:een PBO-moduuleja varten, MZDEMOI01:een PAI-moduuleja varten ja MZDEMOF01:een aliohjelmia varten. Työpöytä luo ne automaattisesti.

Anna painikkeen funktiolle graafisen käyttöliittymän tilassa tyyppi E ja kutsu sen moduulia komennolla MODULE exit AT EXIT-COMMAND. Moduuli suoritetaan ennen kenttien validointia, joten käyttäjä voi poistua näytöltä, jossa on virheellisiä syötteitä.

Kyllä. ABAP-kehitystyökalujen tekoälyavustajat luonnostelevat PBO- ja PAI-moduulit, CASE-lausekkeen SY-UCOMM:ssa ja kenttien validoinnit näytön kuvauksen perusteella. Itse asettelu piirretään edelleen näytölle. Painter.

Dynpros pyörittää edelleen kaikkia klassisia SAP GUI-tapahtuma. Uudet käyttöliittymät rakennetaan yleensä Fiorilla, ja tekoälytyökalut auttavat lukemalla olemassa olevaa työnkulkulogiikkaa ja ehdottamalla vastaavaa palvelu- ja sovellussuunnittelua.

Tiivistä tämä viesti seuraavasti: