SAP vállalatirányítási rendszer alapjai /3 Tantárgy kódja: VEMI5344i Tanév: 2006/07-2.félév Előadó: dr. Varga Ernő, dr. Gerzson Miklós Workbench alapok
Workbench alapok ABAP programok lefutása ABAP Workbench bevezetés ABAP utasítások és adatdeklarációk Adatbázis dialógusok Modularizálás Újrafelhasználható komponensek Összefoglalás
Minta feladat leírása Indulási repülőtér Kiindulási hely A gyakorlatok során programokat kell fejleszteni egy utazási iroda alkalmazottjai számára. A tipikus követelmények: légi összeköttetések keresése meghatározott dátummal adott járat foglalásainak feldolgozása kiegészítő járatinformációk kiértékelése ár kihasználtság Célrepülőtér Érkezési hely
ABAP programok lefutása Kliens-szerver architektúra: Program lefutás: Adatkivitel listán Adatkivitel dynpro-n
Kliens-szerver architektúra Prezentációs szerver szint SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI Applikációs szerver szint Diszpécser Diszpécser Kliens- Munkafolyamat Munkafolyamat Munkafolyamat Munkafolyamat Adatbázis Munkafolyamat Munkafolyamat Munkafolyamat Munkafolyamat
Egyfelhasználós metszet Prezentációs szerver szint Applikációs szerver szint ABAP-program Munkafolyamat Adatbázis
Felhasználói folyamatábra Dynpro Szelekciós kép Black Box Lista Idő
Szerverszintek közti váltogatás ABAP feldolgozási blokk ABAP-program Programindítás Adatbázistábla ABAP feldolgozási blokk ABAP- futásidőrendszer
Adatkivitel listában Szelekciós kép: légitársaság azonosítójának megadása Adatbázis olvasása: légitársaság hosszú neve és pénzneme Lista megjelenítése az olvasott adatokból
Lista - Programindítás Repository Programindítás Adatbázistábla Idő
Lista Program kontextus betöltése ABAP-program Szelekciós kép Repository Adatobjektumok ABAP feldolgozási blokk Programindítás Adatbázistábla ABAP- futásidőrendszer Idő
Lista Szelekciós kép elküldése ABAP-program Adatobjektumok ABAP feldolgozási blokk Programindítás Adatbázistábla ABAP- futásidőrendszer Idő
Lista Bevitt értékek átvétele ABAP-program Adatobjektumok ABAP feldolgozási blokk Programindítás Adatbázistábla ABAP- futásidőrendszer Idő
Lista Táblarekord olvasása ABAP-program Adatobjektumok ABAP feldolgozási blokk Programindítás Adatbázistábla ABAP- futásidőrendszer Idő
Lista Táblarekord visszaadása ABAP-program Adatobjektumok ABAP feldolgozási blokk Programindítás Adatbázistábla ABAP- futásidőrendszer Idő
Lista Lista megjelenítése ABAP-program Adatobjektumok ABAP feldolgozási blokk Programindítás Adatbázistábla ABAP- futásidőrendszer Idő
Adatkivitel dynpro-n Szelekciós kép: légitársaság azonosítójának megadása Adatbázis olvasása: légitársaság hosszú neve és pénzneme Olvasott adatok megjelenítése dynpro-n
Dynpro Dynpro hívása Adatbázistábla Programindítás ABAP-program Adatobjektumok Dynpro Process Before Output ABAP feldolgozási blokk ABAP- futásidőrendszer Idő
Dynpro - Megjelenítés Adatbázistábla Programindítás ABAP-program Adatobjektumok Dynpro Process Before Output ABAP feldolgozási blokk ABAP- futásidőrendszer Idő
Dynpro Felhasználói művelet Adatbázistábla Programindítás ABAP-program Adatobjektumok Dynpro Process Before Output ABAP feldolgozási blokk Process After Input ABAP- futásidőrendszer Idő
Dynpro ABAP feldolgozási blokk Adatbázistábla Programindítás ABAP-program Adatobjektumok Dynpro Process Before Output ABAP feldolgozási blokk Process After Input ABAP- futásidőrendszer Idő
ABAP Workbench bevezetés Repository és Workbench Meglévő program elemzése Statikus elemzés Dinamikus elemzés Forráskód áttekintése Első projekt: meglévő program másolatának egyedi igényekhez igazítása
R/3 Repository Prezentációs szerver szint Applikációs szerver szint ABAP-program Adatbázis mandantfüggetlen Repository mandantfüggő Customizing-táblák Alkalmazási táblák
Repository felépítése Repository-objektumok FI HR MM SD MM WM Vevő MMM M Fejlesztési osztályok Funkcióelemek Programok Táblák...
SAP alkalmazási hierarchia SAP Alkalmazási hierarchia + + + CA AC FI + + Alkalmazásokat átfogó komponensek Számvitel általában Pénzügy... FBAS Pénzügyi könyvelés 'bázis'. FI-GL Főkönyvi könyvelés FI-LC Konszolidálás + + + TR CO... Treasury Controlling Alkalmazás-komponensek Fejlesztési osztály Kijelölt részstruktúra Infórendszer
Repository infórendszer Repository-infórendszer Business Engineering ABAP Dictionary Alapobjektumok Adatbázistáblák Nézetek Adatelemek Struktúrák Táblatípusok... További objektumok Mezők Programozás Funkciókönyvtár Programkönytár Programozási környezet Részobjektumok programokhoz ABAP Objects Osztálykönyvtár Részobjektumok osztályokhoz Részobjektumok interfészekhez Környezet
ABAP Workbench munkaeszközök Screen Painter Menu Painter ABAP Editor FI SD HR MM Debugger MM WM Vevő Function Builder Class Builder Object Navigator ABAP Dictionary
Object navigátor - képernyőfelépítés Browser bezárása Objektumlista megjelenítése Az objektumlista hierarchikus fastruktúrájú megjelenítésére szolgáló terület Repository-objektum megjelenítésére és feldolgozására szolgáló terület Jobb egérgomb Kontextusmenü Jobb egérgomb Kontextusmenü A keret húzható
Navigációs funkciók Fejlesztési osztály BC400 Alkalmazási hierarchia Fejlesztési osztály Program Funkciócsoport Osztály Helyi objektumok BC400 Program objektumfajtái DDIC-objektumok Programok SAPBC400WBD_GETTING_STA SAPBC400WBT_GETTING_STA Funkciócsoportok BC400 Osztályok CL_BC400 előző objektumlista következő objektumlista fölérendelt objektumlista Favoritok Hozzáadás Feldolgozás Programok Történet Objektumlista aktualizálása
Programobjektumok megjelenítése SAPBC400WBT_GETTING_STARTED Program objektumfajtái DDIC-struktúrák SBC400_CARRIER Mezők PA_CAR WA_BC400 Események START-OF-SELECTION Dynpro-k 0100 1000 Editor Editor Editor Screen Painter Navigálás: bármelyik meglévő programobjektumra kétszer rákattintvaa Workbench elindítja a megfelelő eszközt az objektumablakban és a megfelelő helyre navigál. Előrenavigálás: ha nincs a rendszerben ilyen objektum, akkor kétszer aaaa rákattintva a a hivatkozásra létrehozható.
Meglévő program elemzése Funkciós terület meghatározása: program végrehajtása Statikus elemzés: objektumlista Dinamikus elemzés: nyomkövetés Forráskód elemzése
Funkciós terület meghatározása Szelekciós kép Dynpro Lista Légitársaság Légitársaság ID Név Saját pénznem AA American Airlines USD Rendszer Státus Programnév Képernyőszám (= Dynpro-szám) F1 Műszaki infó Mezőnevek Mezőtípusok
Statikus nézet: objektumlista SAPBC400WBT_GETTING_STARTED Program objektumfajtái DDIC-struktúrák SBC400_CARRIER Mezők PA_CAR WA_BC400 Események START-OF-SELECTION Dynpro-k 0100 1000
Program indítása SAPBC400WBT_GETTING_STARTED Program objektumfajtái DDIC-struktúrák Mezők PA_CAR WA_BC400 Események START-OF-SELECTION Dynpro-k 0100 1000 Include-ok Jobb egérgomb Indítás Közvetlen Debugging
Nyomkövetés: debugging módusz X SAP ABAP Debugger Watchpoint Mezők Fő program Forráskód Egy lépés ZJJ_KURS_000 ZJJ_FORMS 6 Fixpontos aritmetika 15 30-5 chws SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. 4 IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. Változat wa_sbc400-carrid 1-4 LH 6 Változat SY-SUBRC 0 SY-TABIX 0 SY-DBCNT 1 BIN (1) (000) ds0025 INS o
Töréspontok debugging móduszban X SAP ABAP Debugger Watchpoint Mezők Fő program Forráskód Tovább ZJJ_KURS_000 ZJJ_FORMS 6 Fixpontos aritmetika 15 30-5 chws 4SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. STOP CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. Változat wa_sbc400-carrid 1-4 LH 6 Változat SY-SUBRC 0 SY-TABIX 0 SY-DBCNT 1 BIN (1) (000) ds0025 INS o
Általános ABAP szintaxis TABLES sbc400_carrier. DATA wa_sbc400 TYPE sbc400_carrier. PARAMETERS pa_car TYPE scarr-carrid. START-OF-SELECTION. OF-SELECTION SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. WRITE WRITE WRITE ENDIF. wa_sbc400-carrid COLOR COL_KEY. wa_sbc400-carrname. wa_sbc400-currcode. ABAPkulcsszó Kiegészítések (kulcsszótól függő) Pont van mindegyik ABAP-mondat végén
Utasításfüzérek és megjegyzések START-OF-SELECTION. * Adatrekord olvasása sa a SCARR táblt blából Megjegyzés SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. " Dynpro 100 feldolgozása MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. Megjegyzés WRITE:/ wa_sbc400-carrid COLOR COL_KEY,, wa_sbc400-carrname,, wa_sbc400-currcode.. ENDIF. Utasításfüzér
Navigálás az Editorban Az adatbázistábla definiálása az ABAP Dictionary-ben A struktúra definiálása (a strukturált mezőé) Kettős kattintás Kettős kattintás START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. Kettős kattintás A dynpro definiálása MOVE-CORRESPONDING sbc400_carrier (a Screen TO wa_sbc400. Painter-ben) WRITE:/ wa_sbc400-carrid COLOR COL_KEY, wa_sbc400-carrname, wa_sbc400-currcode. STOP ENDIF.
Kulcsszó dokumentáció i Segítség Segítség az Editorhoz ABAP-áttekintés ABAP-kifejezés WRITE START-OF-SELECTION. Új ABAP SELECT SINGLE * FROM scarr ABAP dokum. és példák INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. WRITE:/ wa_sbc400-carrid COLOR COL_KEY, wa_sbc400-carrname, wa_sbc400-currcode. F1 ENDIF. Kulcsszó-dokumentáció
Példaprogram forráskódja TABLES sbc400_carrier. DATA wa_sbc400 TYPE sbc400_carrier. PARAMETERS pa_car TYPE scarr-carrid. 1 START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. 2 3 WRITE WRITE WRITE ENDIF. wa_sbc400-carrid COLOR COL_KEY. wa_sbc400-carrname. wa_sbc400-currcode. 4
Adatobjektumok és szelekciós kép TABLES sbc400_carrier. DATA wa_sbc400 TYPE sbc400_carrier. PARAMETERS pa_car TYPE scarr-carrid. 1 A program generálásakor az 'Aktiválás' funkcióval egy szelekciós készül pa_car típusú beviteli mezővel. A programindításkor változók, struktúrák és szelekciós képek jönnek létre ABAP-program sbc400_carrier wa_sbc400 pa_carr Adatobjektumok
Dialógus az adatbázissal /1 ABAP-program Adatobjektumok pa_car wa_sbc400 ABAP feldolgozási blokk Adatbázistábla SCARR SELECT SINGLE * FROM scarr INTO CORRESPONDING ABAP Laufzeitsystem FIELDS OF wa_sbc400 WHERE carrid CARRID = pa_car. IF sy-subrc = 0.... 2
Dialógus az adatbázissal /2 ABAP-program Adatobjektumok pa_car wa_sbc400 ABAP feldolgozási blokk Adatbázistábla SCARR SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0.... 2
Dynpro feldolgozása Adatobjektumok ABAP-program sbc400_carrier. ABAP feldolgozási blokk Process Before Output CALL SCREEN 100. 3 Process After Input ABAP- futásidőrendszer Idő
Lista készítése START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. WRITE:/ wa_sbc400-carrid COLOR COL_KEY, wa_sbc400-carrname, wa_sbc400-currcode. ENDIF. 4
Meglévő program kiegészítése Forrásprogram: Légitársaság Légitársaság LH ID Név LH LUFTHANSA LH Lufthansa DEM Saját pénznem DEM Helyesbített másolat: Légitársaság Légitársaság LH ID Név LH LUFTHANSA LH Lufthansa DEM Saját pénznem DEM WALTERS Felhasználó WALTERS
Repository objekumok transzportálása Módosításisi kérelem FI HR MM SD WM MM Vevő FI SD HR MM MM WM Vevő Fejlesztési rendszer Produktív rendszer
Projektpélda: ABAP tanfolyam Ütemterv: Kedd Szerda Kedd Szerda Projektvezető: ELŐADÓ Csoport: ELŐADÓ TANF-00 TANF-01 TANF-02 TANF-03... A dolgozó tevékenységei (itt: gyakorlati feladatok) A fejlesztés lezárása
Projekt leképezése a WO-ban Projektvezető: ELŐADÓ Csoport: ELŐADÓ TANF-00 TANF-01 TANF-02 TANF-03... Kérelemszám Workbench Organizer: Kérelmek Módosítási kérelmek TANF-00 részvételével Módosítható A rendszer által adott szám az egyes csoporttagok számára (feladat) A TANF-00 által módosított vagy létrehozott Repository-objektumok Transzportálható IT3K900051 ELŐADÓ IT3K900052 ELŐADÓ IT3K900053 TANF-00 Riportforrás Projektvezető ZBC400_00_FLIGHTLIST ABAP-program IT3K900054 TANF-01 IT3K900055 TANF-02 IT3K900056 TANF03 IT3K900057...
Fejlesztés lezárásának műveletei Ütemterv:... Szerda Szerda Projektvezető: ELŐADÓ A teljes projekt minőségellenőrzése A projekt dokumentációja A rendelés engedélyezése Fejlesztés lezárása Csoport: ELŐADÓ TANF-00 TANF-01 TANF-02 TANF-03 Minden... módosított repository-objektum minőségellenőrzése A teljes feladat dokumentációja A feladat engedélyezése
Program másolása Létrehozás Módosítás Megjelenítés Ellenőrzés Aktiválás Végrehajtás Másolás... Műszaki infó Forrásprogram: SAPBC400WBT_GETTING_STARTED Célprogram: ZBC400_00_GETTING_STARTED Másolás Műszaki infó Forrás Szövegelemek Dokumentáció Változatok Felhasználói felület Dynpro-k Include-ok Másolás Kérelmek (Organizer)
Program mentése Objektumkatalógus-bejegyzés létrehozása Objektum R3TR PROG ZTANF_00_GETTING_STARTED Attribútumok Fejlesztési osztály Felelős ZTANF_00 TANF-00 Az új programokat hozzá kell rendelni egy fejlesztési osztályhoz Eredeti rendszer Eredeti nyelv IT3 DE Helyi objektum
Hozzárendelés módosítási kérelemhez Transzportálható módosítási kérelmek lekérdezése Riportforrás ZTANF_00_GETTING_STARTED Kérelem IT3900051 IT3 Transzportálható módosítási kérelem Résztvevői gyakorlatok a tanfolyamhoz Saját kérelmek Transzportálható módosítási kérelmek lekérdezése Kettős kattintás a Módosítási kérelmek TANF-00 részvételével kérelemszámra Módosítható Transzportálható IT3K900051 ELŐADÓ IT3K900052 ELŐADÓ IT3K900053 TANF-00 IT3K900054 TANF-01
Rövid szöveg módosítása Program objektumfajtái Kettős kattintás Objektumválasztás Programnév Program... ZTANF_00_GETTING_STARTED ABAP programtulajdonságok... Tulajdonságok Cím Attribútumok Cím testreszabása Eredeti nyelv módosítása a bejelentkezési nyelvre
Program forrás módosítása START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. WRITE:/ wa_sbc400-carrid COLOR COL_KEY, wa_sbc400-carrname, wa_sbc400-currcode. ULINE. WRITE wa_sbc400-uname. ENDIF. Szintaktikai ellenőrzés
Dynpro módosítása ZTANF_00_GETTING_STARTED Program objektumfajtái DDIC-struktúrák Mezők Események Dynpro-k 0100 Jobb egérgomb 1000 Módosítás Layout Légitársaság ID Név sbc400_carrier Saját pénznem Felhasználó Beviteli mező és mezőnév
Mentés és aktiválás Szintaktikai ellenőrz rzés: ikon segítségével szintaktikai ellenőrzést hajthat végre. Program mentése: időközi mentés: a kód a repository-ban tárolódik és látható a teljes rendszerben. Végrehajtáskor az aktív verzió indul el. Program aktiválása: a program aktiválás után a teljes rendszerben látható és végrehajtható. Bővített programellenőrz rzés: átfogó ellenőrzéseket tartalmaz és csak aktív programok esetében hajtható végre.
ABAP utasítások és deklarációk Típusok Adatobjektumok Elemi adatobjektumok Struktúrák Belső táblák ABAP utasítások jellemzői
Típusok használata A típusok az alábbi elemek tulajdonságait írják le: Adatobjektumok Be- és kiviteli mezők Alprogramok interfészparaméterei Funkciók / módszerek interfészparaméterei Interfész Interfész Funkcióelem ABAPprogram ABAPforráskód Alprogram Funkciócsoport
Programlokális és központi típusok A típusok programlokálisan vagy központilag definiálhatók programlokális típusok: csak technikai tulajdonságok Interfész Funkciócsoport ABAPprogram ABAPforráskód Alprogram központi típusok az ABAP Dictionary-ben: technikai és szemantikai tulajdonságok Interfész Funkcióelem
Elemi Dictionary típusok használata Mezőnév Légitársaság Segítség F1 Beviteli mező Adatelem: Technikai típus Mezőnév Meződokumentáció (az F1-segítséghez) Keresési segítség (az értéksegítséghez) Légitársaság rövidítése A mező tartalmazza a légitársaság ID-jét Segítség az alkalmazáshoz Műszaki infó Változó a beviteli mezőhöz ID AA AF BA DL LH NU QF SA SQ UA Rövid név Légitársaság American Airlines Air France British AIrways Delta Airlines Lufthansa Japan Transocean Air. Quantas Airways South African Air. Singapore Airlines United Airlines
Információk Dict.típusokhoz /1 Segítség F1 DATA wa_flight_occ TYPE sbc400focc. Kettős kattintás Műszaki infó Műszaki infó Adatelem S_CARR_ID Struktúratípus SBC400FOCC Mezők Mezőtípus Mezőadatok Struktúra Mezőnév Adatelem SBC400_CARRIER CARRID S_CARR_ID Kettős kattintás Kettős kattintás CARRID S_CARR_ID CONNID...
Információk Dict.típusokhoz /2 Alkalmazási hierarchia Részstruktúra kijelölése Információs rendszer Repository-infórendszer Business Engineering ABAP Dictionary Alapobjektumok Táblák Nézetek Adatelemek Struktúrák Táblatípusok Domének További objektumok Mezők Programozás ABAP-objektumok Környezet Repository-infórendszer: adatelemek Standard szelekciók Adatelem Rövid név Mezőnév Adattípus Hossz Fejlesztési osztály
Lokális típusok információi Segítség programlokális típusok deklarálásához F1 Types: TYPES <user_defined_type> TYPE <type>. Kettős kattintás Segítség programlokális adatobjektumok deklarálásához F1 DATA: <dataobject> TYPE <type>. Kettős kattintás F1 Navigálás a programlokális típus vagy az ABAP Dictionary-típus deklarálásához Kulcsszó-dokumentáció beépített típusokhoz
Adatobjektumok definiálása DATA: <varname> TYPE <user-defined-type>. <ABAP-dictionary-type>. DATA: <varname> LIKE <data-object>.
Adatobjektumok objektumlistában SAPTANFWBT_GETTING_STARTED Program objektumfajtái DDIC-struktúrák Mezők Jobb egérgomb PA_CAR WA_BC400 Jobb egérgomb Események START-OF-SELECTION Dynpro-k 0100 1000 Létrehozás Módosítás Megjelenítés Felhasználáskimutatás
Elemi adatobjektumok definiálása carrid ABAPprogram counter s_carr_id DATA: carrid TYPE s_carr_id, counter TYPE I.
Literálok és konstansok CONSTANTS <konstans> TYPE <típus> VALUE <literál>. CONSTANTS:PI TYPE P DECIMALS 4 VALUE '3.1415', BOSS(4) TYPE C VALUE 'Hugo'. Számliterál 715, -431 Egész szám (negatív számok esetén negatív előjellel) Szövegliterál 'abc', '2.17', '1.213E15', '0FFF', 'A''B' A karaktersor idézőjelek között áll, legfeljebb 255 karakter
Változók módosítása Programindítás Adatdeklarációk: CONSTANTS c_qf TYPE s_carr_id VALUE 'QF'. DATA: gd_carrid1 TYPE s_carr_id, gd_carrid2 TYPE s_carr_id VALUE 'LH', counter type I. c_qf QF gd_carrid1 gd_carrid2 counter LH 0000 MOVE c_gf TO gd_carrid1. gd_carrid2 = gd_carrid1. ADD 1 TO counter. CLEAR: gd_carrid1, gd_carrid2, counter. QF LH 0000 QF QF 0000 QF QF 0001 0000 ABAP-program ABAP-futásidőrendszer Idő
Számítások végrehajtása COMPUTE Számítások végrehajtása (kulcsszó nem kötelező) Adatdeklarációk: DATA: gd_max TYPE sbc400focc-seatsocc, gd_occ TYPE sbc400focc-seatsmax, gd_percentage TYPE sbc400focc-percentage. COMPUTE gd_percentage = gd_occ * 100 / gd_max. * Second possibility with same calculation gd_percentage = gd_occ * 100 / gd_max. ABAP Programm
Mezőtartalom kiértékelése CASE <adatobjektum1>. WHEN <adatobjektum2>. Utasítások WHEN <adatobjektum4> OR <adatobjektum5>. Utasítások WHEN OTHERS. ENDCASE. Utasítások IF <logikai kifejezés>. Utasítások ELSEIF <logikai kifejezés>. Utasítások ELSEIF <logikai kifejezés>. ELSE. ENDIF. Utasítások Utasítások
Nyomkövetés: változó értékek X SAP ABAP Debugger Watchpoint Mezők Fő program Forráskód Egy lépés ZJJ_KURS_000 ZJJ_FORMS 6 Fixpontos aritmetika 15-30 5 chws SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. 4 IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. Változat pa_car 6 1-4 Változat LH
Nyomkövetés: Watchpoint Watchpoint Watchpoint létrehozása/módosítása helyi Watchpoint (csak a megadott programban) Program Mezőnév Összahas. operátor Összehas. mező (ha nincs bejelölve: összeh. érték) Összehas. mező/ért. Sz. Helyi Program Mezőnév Operátor Mező 1 2 3... 10 Összeh. érték Logikai operátor a Watchpoint-ok között OR AND
Struktúra definiálása (Dict.típus) ABAP dictionary: sdyn_conn struktúra Mezőnév: mandt carrid connid fldate... Mezőtípus: s_mandt s_carr_id s_conn_id s_date... Struktúra definiálása wa_spfli sdyn_conn ABAPprogram ABAP-forráskód DATA: wa_spfli TYPE spfli. TABLES sdyn_conn.
Struktúra mező hivatkozása mandt carrid carrname currcode wa_scarr ABAPprogram ABAP-forráskód DATA: wa_scarr TYPE scarr. A struktúra mezőit mindig a következő módon kell hívni: <struktúra>-<mezőnév> wa_scarr-carrid = 'LH'. SELECT SINGLE * FROM scarr INTO wa_scarr WHERE carrid = wa_scarr-carrid. WRITE:/ wa_scarr-carrid wa_spfli-carrid, wa_scarr-carrname wa_spfli-carrname.
Érték hozzárendelés mezőnként MOVE-CORRESPONDING <rec1> TO <rec2>. DATA: wa_sflight TYPE sflight, wa_sbc400focc TYPE sbc400focc. MOVE-CORRESPONDING wa_sflight TO wa_sbc400focc. MANDT 401 CARRID LH CONNID 0400 FLDATE 20000513...... SEATSMAX 280 SEATSOCC 100...... wa_sflight CARRID LH CONNID 0400 FLDATE 20000513 SEATSMAX 280 SEATSOCC 100 PERCENTAGE wa_sbc400focc
Struktúrák a debugger-ben ABAP Debugger Mezők Fő program Forráskód Watchpoint ZJJ_KURS_000 ZJJ_FORMS 6 Fixpontos aritmetika 15 30-5 chws SELECT SINGLE * FROM Strukturált scarr mező wa_sbc400 INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE Hossz (bájtban) carrid = pa_car. 58 4 IF sy-subrc = 0. MOVE-CORRESPONDING Sz. Komponens wa_sbc400 neve TO Típus sbc400_carrier. Hossz Tartalom CALL SCREEN 100. 1 MANDT MOVE-CORRESPONDING sbc400_carrier C TO wa_sbc400. 3 100 2 CARRID C 3 AA Változat 1-4 6 Variante 3 CARRNAME C 20 American Airlines wa_sbc400 4 CURRCODE C 5 USD Kettős kattintás 5 MARK C 1 6 UNAME C 12 7 UZEIT T 6 000000 8 DATUM D 8 00000000
Belső táblák - táblatípus CARRID CONNID DISTANCE AA 0017 2.572 LH 0400 6.162 Egyértelműség LH 0400 6.162 QF 0005 10.000 SQ 0866 1.625 UA 0007 2.572 Kulcsmezők Sorrend Indexhozzáférés 5 Hozzáférési típus UA 0007 Sortípus Kulcs Táblafajta Kulcshozzáférés A szükséges sorok számát nem kell pontosan megadni, mert azt az ABAP-futásidőrendszer a futásidőben állapítja meg (dinamikus táblabővítés).
Táblafajták ANY TABLE INDEX TABLE HASHED TABLE STANDARD TABLE SORTED TABLE Indexhozzáférés n n Kulcshozzáférés Egyértelműség NON- UNIQUE UNIQUE NON-UNIQUE UNIQUE Hozzáférés elsősorban indexen elsősorban kulcson csak kulcson módja
Belső tábla Dict.típus ABAP Dictionary: táblatípus sbc400_t_sbc400focc Sortípus és hozzáférés Sortípus Hozzáférési típus SBC400FOCC Standard tábla Kulcs Kulcsdefiníció Kulcsfajta Kulcskomponensek Kulcskomponensek non-unique CARRID CONNID FLDATE itab_flightinfo ABAPprogram DATA it_flightinfo type sbc400_t_sbc400focc.
Egyedi rekordhozzáférés Csatolás APPEND wa_itab to itab. Beszúrás INSERT wa_itab INTO itab <condition>. Olvasás READ TABLE itab INTO wa_itab <condition>. Módosítás MODIFY TABLE itab <condition>. Törlés DELETE itab <condition>.
Tömeges feldolgozás ciklussal: minden művelethez LOOP AT itab INTO wa_itab. ENDLOOP. Törlés DELETE itab <condition>. Több sor beszúrása másik itab-ból Több sor csatolása másik itab-ból INSERT itab2 <condition2> FROM itab1 <condition1>. INSERT APPEND itab2 <condition2> FROM itab1 <condition1>.
További műveletek Rendezés SORT itab <conditions> Belső tábla tartalmának inicializálása CLEAR itab. CLEAR
Példa: Belső tábla kitöltése soronként * Declaration of internal table and workarea DATA: it_flightinfo TYPE sbc400_t_sbc400focc. DATA: wa_flightinfo TYPE sbc400focc. itab_flightinfo wa_flightinfo * wa_flightinfo struktúra feltöltése értékekkel... * wa_flightinfo struktúra hozzáfűzése a * belső táblához APPEND wa_flightinfo TO it_flightinfo.
Példa: tábla olvasás ciklusban * Declaration of internal table and workarea DATA: it_flightinfo TYPE sbc400_t_sbc400focc. DATA: wa_flightinfo TYPE sbc400focc. itab_flightinfo wa_flightinfo LOOP AT it_flightinfo INTO wa_flightinfo. WRITE: / wa_flightinfo-carrid, wa_flightinfo-connid, wa_flightinfo-fldate, wa_flightinfo-seatsmax, wa_flightinfo-seatsocc, wa_flightinfo-percentage, '%'. ENDLOOP.
Példa: olvasás index segítségével LOOP AT it_flightinfo INTO wa_flightinfo FROM 1 TO 5. WRITE: / wa_flightinfo-carrid, wa_flightinfo-connid, wa_flightinfo-fldate, wa_flightinfo-seatsmax, wa_flightinfo-seatsocc, wa_flightinfo-percentage, '%'. ENDLOOP. READ TABLE it_flightinfo INTO wa_flightinfo INDEX 3. WRITE: / wa_flightinfo-carrid, wa_flightinfo-connid, wa_flightinfo-fldate, wa_flightinfo-seatsmax, wa_flightinfo-seatsocc, wa_flightinfo-percentage, '%'.
Példa: olvasás kulcs segítségével LOOP AT it_flightinfo INTO wa_flightinfo WHERE carrid = 'LH'. WRITE: / wa_flightinfo-carrid, wa_flightinfo-connid, wa_flightinfo-fldate, wa_flightinfo-seatsmax, wa_flightinfo-seatsocc, wa_flightinfo-percentage, '%'. ENDLOOP. READ TABLE it_flightinfo INTO wa_flightinfo WITH TABLE KEY carrid = 'LH'. connid = '0400' fldate = sy-datum. IF sy-subrc = 0. WRITE: / wa_flightinfo-seatsmax, wa_flightinfo-seatsocc, wa_flightinfo-percentage, '%'. ENDIF.
Belső tábla debugging móduszban ABAP Debugger Fő program Forráskód Watchpoint Tábla ZJJ_KURS_000 ZJJ_FORMS 6 Fixpontos aritmetika 15 30-5 chws LOOP AT it_flightinfo INTO wa_flightinfo. 4 WRITE: / wa_flightinfo-carrid, wa_flightinfo-connid, Belső tábla it_flightinfo Típus Standard 1 Carrid Connid Fldate Seatsmax Seatsocc Percentage 1 2 3 4 5 6 7 8 AA AA AA AA LH LH LH LH 0017 0017 0017 0017 0400 0400 0400 0400 20000512 20000724 20000828 20001224 20000626 20000715 20001113 20001212 660 660 660 660 280 280 280 280 66 120 560 470 240 123 273 280 66 120 560 470 240 123 273 280
Belső tábla fejléccel DATA <itab> TYPE <itabtype> [WITH HEADER LINE]. Munkaterület <wa> Fejléc <itab> Belső tábla <itab> CARRID CONNID AA 0017 LH 0400 Belső tábla <itab> CARRID CONNID AA 0017 LH 0400 APPEND <wa> TO <itab>. MODIFY <itab> INDEX <n> FROM <wa>. LOOP AT <itab> INTO <wa>. WRITE <wa>-<feld>. ENDLOOP. READ TABLE <itab> INDEX <n> INTO <wa>. WRITE <wa>-<feld>. APPEND <itab>. MODIFY <itab> INDEX <n>. LOOP AT <itab>. WRITE <itab>-<feld>. ENDLOOP. READ TABLE <itab> INDEX <n>. WRITE <itab>-<feld>.
ABAP utasítások return-kódja CONSTANTS c_ua TYPE s_carr_id VALUE 'UA'. READ TABLE itab INTO wa_itab WITH TABLE KEY carrid = c_ua. sy-subrc 0 ABAP-program carrid... Bázisfunkció a READ-hez IF sy-subrc ne 0. * Message... ENDIF. AA AL LH QF Nem áll rendelkezésre itab 4 Return-kód 4 Idő ABAP-futásidőrendszer
Felhasználói üzenetek áttekintése. MESSAGE E050(BC400). S078(BC400) WITH c_ua. Tabelle T100 T ID Sz. Üzenet szövege DE... DE DE... BC400... BC400 BC400... 038... 049 078... Ehhez a szelekcióhoz nem léteznek adatok (adja meg újra)... A(z) & légitársaság nem létezik Osztás nullával... DE BC400 078 A(z) & légitársasághoz nem tartozik bejegyzés A(z) ) UA légitársasáághoz nem tartozik bejegyzés
MESSAGE utasítás szintaktikája Annn Xnnn MESSAGE Ennn WITH <mező1> <mező2> <mező3> <mező4>(<message-class>). Wnnn Innn Snnn
Üzenetek működése futásidőben Segítség i Segítség az Editorhoz ABAP-áttekintés ABAP-kifejezés Új ABAP ABAP dokum. és példák ABAP dokumentáció és példák? BC - ABAP-programozás? ABAP bevezetés? ABAP programnyelv? ABAP képernyőképek Egyszerű üzenetpélda Minden üzenetfajta bemutatása?...
Összefoglalás ABAP programok lefutása ABAP Workbench bevezetés ABAP utasítások és adatdeklarációk