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.

  • 💬 Põhidefinitsioon: Dialoogiprogramm tegeleb mis tahes kasutaja toimingutega, näiteks andmete sisestamise, menüüpunkti valimise või nupu klõpsamisega, ning saab andmebaasi värskendada.
  • 🅼 Programmi tüüp: Dialoogiprogrammid on M-tüüpi moodulikogumid, ei saa iseseisvalt töötada ja need peavad olema seotud vähemalt ühe tehingukoodiga, millel on algne ekraan.
  • 🧩 Komponendid: Tehingukood, ekraanid, GUI olek, ABAP moodulite kogum ja vooloogika moodustavad koos ühe dialoogirakenduse.
  • 🔄 Vooluloogika: PBO käivitub enne ekraani ilmumist, PAI käivitub pärast kasutaja toimingut, POH vastab F1-le ja POV vastab F4-le.
  • 🖥️ Dynpro: Ekraan koos selle vooloogikaga on dynpro ning iga dynpro juhib täpselt ühte dialoogi sammu.
  • 📦 Moodulite kogum: Kõik ühe tehingu raames kutsutud dynpro-d viitavad ühisele moodulite kogumile, mis sisaldab dialoogi mooduleid.
  • 🛠️ Loomise tee: SE80 loob moodulite kogumi, SE51 kujundab ekraani, SE41 koostab GUI oleku ja SE93 lingib tehingukoodi.

SAP ABAP-dialoogi programmeerimine

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

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

Tehingu töötlemise näidis

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

Dialoogiprogrammi struktuur

Struktuuriskeem näitab, kuidas tehingukood, ekraanid, graafilise kasutajaliidese olek ja moodulite kogum on seotud sama põhiprogrammiga.

Dialoogiprogrammi protsessivoog

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.

  1. 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.
  2. Deklareerige globaalsed andmed: Pane TABLES-lause ja globaalsed muutujad TOP include'i, mida iga basseini dialoogimoodul saab lugeda.
  3. Ekraani kujundus: Loo ekraan 100 ekraani abil Painter (SE51), asetage sisestusväljad paigutusele ja sisestage ekraani atribuutidesse järgmise ekraani number.
  4. Kirjuta vooloogika: Vahekaardil Vooluloogika kutsuge üks moodul PBO ja teine ​​PAI jaoks, nagu allpool näidatud.
  5. 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.
  6. 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.

KKK

CALL SCREEN avab uue ekraani ja hoiab kutsuva ekraani pinus, seega töötlemine naaseb sellele. LEAVE TO SCREEN asendab praeguse ekraani ja kutsujale ei tagastata midagi.

Moodulite kogum nimega SAPMZDEMO jaguneb globaalsete andmete jaoks MZDEMOTOP-iks, PBO moodulite jaoks MZDEMOO01-ks, PAI moodulite jaoks MZDEMOI01-ks ja alamprogrammide jaoks MZDEMOF01-ks. Töölaud genereerib need automaatselt.

Andke nupu funktsioonile graafilise kasutajaliidese olekus tüüp E ja kutsuge selle moodul välja käsuga MODULE exit AT EXIT-COMMAND. Seejärel käivitub moodul enne väljade valideerimist, nii et kasutaja saab vigaste kirjetega ekraanilt lahkuda.

Jah. ABAP-i arendustööriistades olevad tehisintellekti assistendid joonistavad PBO ja PAI moodulid, CASE-lause SY-UCOMM-il ja väljade valideerimised ekraani kirjelduse põhjal. Paigutus ise joonistatakse endiselt ekraanile. Painter.

Dynpros korraldab endiselt kõiki klassikalisi kontserte. SAP GUI-tehing. Uued kasutajaliidesed luuakse tavaliselt Fiori abil ja tehisintellekti tööriistad aitavad olemasolevat vooloogikat lugeda ning pakkuda välja samaväärse teenuse ja rakenduse kujunduse.

Võta see postitus kokku järgmiselt: