SAP ABAP jelentés programozás

⚡ Okos összefoglaló

Az ABAP Report Programming futtatható programokat hoz létre, amelyek nagy mennyiségű adatot választanak ki, dolgoznak fel és jelenítenek meg. SAP adatok. Ez az oldal ismerteti a jelentésfejlécek hozzáadását, a kijelölőképernyőt, az eseménysorozatot, a formázási parancsokat, az interaktív listákat és a logikai adatbázisokat.

  • 📊 Fő cél: Egy jelentéskészítő program több táblázatból olvassa be az adatokat, feldolgozza azokat, és listaként jeleníti meg, amely formázható, letölthető vagy elküldhető.
  • 🧾 Programtípus: Minden jelentés egy 1-es típusú végrehajtható program, amely egy alkalmazásterülethez van kötve, és teljes mértékben események vezérlik.
  • 🏁 Fejléc kiegészítések: NINCS SZABVÁNYOS OLDALFEJSZÍN, LINE-MÉRET, LINEA -COUNT és a MESSAGE-ID paraméterek az első REPORT utasításhoz tartoznak.
  • ⌨️ Kiválasztó képernyő: A PARAMETERS egyetlen értéket fogad el, a SELECT-OPTIONS pedig egy tartományt vagy értékhalmazt.
  • ⏱️ Eseménysorozat: A PROGRAM BETÖLTÉSE, INICIALIZÁLÁS, A KIVÁLASZTÓKÉPERNYŐN, A KIVÁLASZTÁS KEZDETE és a KIVÁLASZTÁS VÉGE rögzített sorrendben futnak.
  • 🖱️ Interaktív listák: A HIDE parancs a kiválasztott sor mezőértékeit tárolja, a HOTSPOT parancs pedig a listamezőt kattintható elemmé alakítja a másodlagos listában.
  • 🗄️ Logikai adatbázisok: Az SE36-ban létrehozott algoritmusok a SELECT utasításokat GET eseménnyel helyettesítik, és központi jogosultságellenőrzéseket adnak hozzá.

SAP ABAP jelentés programozás

Mi az ABAP jelentésprogramozás?

SAP-Az ABAP kétféle programot támogat – Jelentéskészítő programokat és Párbeszédprogramokat. A Jelentéskészítő programokat akkor használják, ha nagy mennyiségű adatot kell megjeleníteni.

A jelentési programok célja/használata

  • Akkor használják őket, amikor több táblázatból kell adatokat kiválasztani és feldolgozni a megjelenítés előtt.
  • Akkor használják, amikor a jelentések speciális formátumot igényelnek
  • Akkor használatos, ha a jelentést innen kell letölteni SAP egy Excel-lapra, amelyet szét kell osztani.
  • Akkor használatos, ha a jelentést egy adott személynek kell elküldeni.

Fontos megjegyzések a jelentési programmal kapcsolatban

  • A Jelentésprogramok mindig végrehajtható programok. A programtípus mindig 1.
  • Minden jelentésprogram egy adott alkalmazástípusnak felel meg, pl. Sales & Distribution, FI – CO stb. lehet Cross Application is, azaz '*' típusú.
  • A Report Programming egy eseményvezérelt programozás.
  • A jelentésprogram első sora mindig a Jelentés .
  • A lista fejlécének vagy a program nevének eltüntetéséhez a hozzáadást Nincs szabványos oldalfejléc használt.
  • Egy adott jelentés sormérete a hozzáadás használatával állítható be vonal méretű .
  • Egy adott oldal sorszáma az összeadás használatával állítható be sorszám n(n1). N az oldal sorainak száma, N1 pedig az oldal láblécéhez fenntartott sorok száma.
  • Bármilyen információ vagy hibaüzenet megjelenítéséhez hozzáadunk egy üzenetosztályt a programhoz a következő kiegészítéssel: Üzenetazonosító . Az üzenetosztályokat az SE91 karbantartja.

Ezért egy ideális jelentési programnak a következővel kell kezdődnie:

Report <report name> no standard page heading

line-size <size>

line-count <n(n1)>

message-id <message class>.

Jelentéskészítő program vs. párbeszédkészítő program

Mindkét programtípus ugyanazon a rendszeren fut, mégis ellentétes problémákat oldanak meg. Egy jelentés beolvassa és megjeleníti az adatokat, míg egy párbeszédprogram lehetővé teszi a felhasználó számára, hogy képernyőkön keresztül kezelje azokat.

Kritériumai Jelentéskészítő program Párbeszédprogram
Program típusa 1. típus, futtatható M típusú modulkészlet
Indította Program neve vagy tranzakciókód Csak egy tranzakciós kód
Flow control Események, mint például az INICIALIZÁLÁS és a KIVÁLASZTÁS STARTJA Képernyőáramlási logika PBO és PAI modulokkal
Felhasználói bevitel Egy generált kiválasztási képernyő A Screen-ben tervezett képernyők Painter
Tipikus felhasználás Nagy adatmennyiségek megjelenítése és letöltése Üzleti adatok létrehozása és módosítása

A kiválasztó képernyő az a hely, ahol a jelentés összegyűjti a bemeneti adatokat, ezért ezt ismertetjük a következőkben.

Kiválasztás képernyő

A „kiválasztó képernyő” az a képernyő, ahol megadhatjuk azokat a bemeneti értékeket, amelyekre a programnak futnia kell.

A kiválasztási képernyőt általában a

  1. paraméterek
  2. Select-Options

Szintaxis

Selection-screen begin of screen <screen #>
selection-screen begin of block <#>  with frame title <text>
.........
.........
selection-screen end of block <#>
selection-screen end of screen <screen #>

paraméterek

A paraméterek segítenek a dinamikus kiválasztásban. A program végrehajtásának egy ciklusához csak egy értéket tudnak fogadni.

Szintaxis

Paraméterek meghatározása adattípusként

Parameters p_id(30) type c.

Paraméterek meghatározása, mint egy táblázat mező.

Parameter p_id like <table name>-<field name>.

A paraméterek lehetnek jelölőnégyzetek és rádiógombok is.

Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>.
Parameters p_id2  radiobutton group <group name>.

A paraméterek listboxok lehetnek.

Parameter p_id like <table name>-<field name> as listbox

Válasszuk az Opciók lehetőséget

A Select-Option értéktartomány vagy értékkészlet bevitelére szolgál egy programba

Szintaxis

select-options s_vbeln for vbak-vbeln.

Kiválasztás képernyő

A képernyőképen láthatók a kiválasztási opció által generált alacsony és magas beviteli mezők, valamint a többszörös kijelölési gomb.

Kiválasztási opciót is megadhat, például változót

select-options s_vbeln for vbak-vbeln no intervals no-extension

Miután a program összegyűjtötte a bemeneti adatokat, egy előre meghatározott eseménysorozatra reagál.

Események az ABAP jelentési programban

Az ABAP jelentési programok olyanok rendezvényvezérelt programok. A jelentésprogramban szereplő különböző események a következők:

Programterhelés

  • Kiváltja a kapcsolódó eseményt egy belső munkamenetben egy 1, M, F vagy S típusú program betöltése után.
  • A kapcsolódó feldolgozási blokkot egyszer és csak egyszer futtatja le minden programhoz és belső munkamenethez.
  • A LOAD-OF-PROGRAM feldolgozó blokknak nagyjából ugyanaz a funkciója egy ABAP program 1, M, F vagy S típusú, mint a konstruktor az ABAP objektumok osztályaihoz

Inicializálás.

  • Ez az esemény a kiválasztási képernyő megjelenése előtt végrehajtódik.
  • Az összes érték inicializálása.
  • A kiválasztási képernyőn alapértelmezett értékektől eltérő értékeket is hozzárendelhet.
  • A kiválasztási képernyőt kitöltheti bizonyos értékekkel futás közben.

A Kiválasztás képernyőn.

  • Az esemény feldolgozása a kiválasztási képernyő feldolgozása után történik (a PAI végén).
  • Itt történik a bevitt értékek érvényesítése és ellenőrzése

Kiválasztás kezdete.

  • Itt a program elkezdi kiválasztani az értékeket a táblázatokból.

A kiválasztás vége.

  • Az összes adat kiválasztása után ez az esemény kiírja az adatokat a képernyőre.

Interaktív események

  • Interaktív jelentésekhez használják. Részletes lista létrehozására szolgál egy alaplistából.

💡 Tipp: Az esemény kulcsszó nélkül írt utasítások alapértelmezés szerint a START-OF-SELECTION csoportba tartoznak, ezért a jelentés akkor is lefut, ha az esemény hiányzik.

Példa: Egy egyszerű ABAP jelentéskészítő program

Az alábbi program egyetlen működő jelentésbe egyesíti a kiegészítéseket, a kiválasztó képernyőt és az eseményeket. A kiválasztó képernyőn megadott számokhoz tartozó értékesítési rendelések fejléceit olvassa be a VBAK-ból, és listaként írja ki azokat.

REPORT z_sales_order_list NO STANDARD PAGE HEADING
                          LINE-SIZE 80
                          LINE-COUNT 65(3)
                          MESSAGE-ID zsd.

TABLES: vbak.

DATA: lt_vbak TYPE STANDARD TABLE OF vbak,
      ls_vbak TYPE vbak.

* Selection screen
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
PARAMETERS: p_erdat LIKE vbak-erdat.

INITIALIZATION.
  p_erdat = sy-datum.

AT SELECTION-SCREEN.
  IF p_erdat > sy-datum.
    MESSAGE e001(zsd).          " Date must not lie in the future
  ENDIF.

START-OF-SELECTION.
  SELECT * FROM vbak
    INTO TABLE lt_vbak
    WHERE vbeln IN s_vbeln
      AND erdat LE p_erdat.

END-OF-SELECTION.
  LOOP AT lt_vbak INTO ls_vbak.
    WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr.
    HIDE ls_vbak-vbeln.
  ENDLOOP.

Három részletet érdemes megjegyezni. Az INICIALIZATION (iniciálás) kitölti a date paramétert a kiválasztó képernyő megjelenése előtt. Az AT SELECTION-SCREEN (kiválasztási képernyő) érvényesíti a bejegyzést, és üzenetet küld a ZSD osztályból. A HIDE (elrejtés) tárolja az egyes kiírt sorok sorszámát, így dupla kattintással egy másodlagos lista építhető fel belőle, amely a következő szakasz témája.

A jelentés formázása

Az ABAP lehetővé teszi a jelentések formátumát a felhasználó által kívánt módon. Például az „Alternatív soroknak” különböző színekkel, az „Összesen” sornak pedig sárgával kell megjelennie.

Szintaxis

Format Color n

Format Color n Intensified On

n különböző számoknak felelhet meg

Felhívjuk figyelmét, hogy a formátum mellett más kiegészítések is vannak

FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF

Interaktív jelentés programozás

  • Az interaktív programozás segítségével a felhasználók aktívan vezérelhetik az adatok lekérését és megjelenítését.
  • Egy nagyon alapvető listából részletes lista létrehozására szolgál
  • A részletes adatok egy másodlagos listán vannak felírva.
  • A másodlagos lista vagy teljesen átfedheti az első képernyőt, vagy megjelenítheti egy új képernyőn
  • A másodlagos listák maguk is interaktívak lehetnek.
  • Az első lista tranzakciót is hívhat.
  • Az interaktív programozáshoz különféle események kapcsolódnak.

Néhány interaktív programozáshoz használt parancs

Hotspot

Ha az egeret a jelentésben megjelenített adatok fölé húzzuk, a kurzor Kinyújtott mutatóujjjal rendelkező kézre változik. Hotspot a FORMAT utasítással érhető el.

Syntax:      Format Hotspot On (Off).

elrejt

Ez a parancs segít a mezőnevek eltárolásában, amelyek alapján a további feldolgozást elvégezve részletes listát kaphat. Közvetlenül a mező WRITE utasítása után íródik. Egy sor kiválasztásakor az értékek automatikusan kitöltődnek a változókban további felhasználás céljából.

Syntax:     Hide <field-name>.

A sok táblát olvasó jelentések a SELECT utasításaikat egy logikai adatbázissal helyettesíthetik, az alábbiakban leírtak szerint.

Logikai adatbázisok

  • A „Select” lekérdezések használata helyett logikai adatbázist is használhat a program adatainak lekéréséhez.
  • A logikai adatbázisok tranzakcióval jönnek létre SE36
  • Egy logikai adatbázis neve legfeljebb 20 karakter hosszú lehet. Kezdődhet egy névtér előtaggal.
  • Az adatokat egy másik program választja ki, és az adatokhoz a GET segítségével lehet hozzáférni parancs, amely az adatokat a munkaterületre helyezi .

A logikai adatbázis előnyei a normál Select lekérdezésekkel szemben.

  1. Ellenőrzési feltételeket kínál annak megállapítására, hogy a bemenet helyes, teljes és elfogadható-e
  2. Központi jogosultság-ellenőrzéseket tartalmaz az adatbázis-hozzáféréshez
  3. Az olyan fejlesztések, mint például a teljesítmény javítása, azonnal vonatkoznak minden logikai adatbázist használó jelentésre.

Megjegyzés: A felmerülő bonyolultság miatt a legtöbb esetben nem használnak logikai adatbázisokat

GYIK

A PARAMETERS egy bemeneti mezőt hoz létre, amely egyetlen értéket tartalmaz. A SELECT-OPTIONS egy belső táblázatot hoz létre a SIGN, OPTION, LOW és HIGH mezőkkel, így tartományokat, kizárásokat és többszörös kiválasztást is elfogad.

AT LINEA -SELECTION dupla kattintásra vagy az F2 billentyűre reagál, az AT USER-COMMAND pedig a menüből származó függvénykódra. Mindkettő a HIDE által tárolt értékekből építi fel a másodlagos listát.

A listamenü a klasszikus jelentésekhez a Lista, Mentés és Helyi fájl lehetőségeket kínálja. Egy program meghívhatja a GUI_DOWNLOAD függvénymodult is, és egy ALV lista további kódolás nélkül exportálható egy táblázatba.

Igen. Az ABAP fejlesztőeszközökben található mesterséges intelligencia asszisztensek a szükséges lista egyszerű leírásából generálják a REPORT fejlécet, a SELECT-OPTIONS-t és az eseményblokkokat. A generált SELECT-et továbbra is teljesítmény-felülvizsgálatnak kell alávetni.

A mesterséges intelligencia eszközei összefoglalnak egy hosszú listát, kiemelik a kiugró értékeket, és egyszerű nyelven válaszolnak az adatokkal kapcsolatos kérdésekre. Az ilyen elemzések beágyazása általában azt jelenti, hogy a klasszikus listát egy ALV vagy Fiori alapú kimenetté alakítják.

Foglald össze ezt a bejegyzést a következőképpen: