SAP vállalatirányítási rendszer alapjai /3-4 • Tantárgy kódja: VEMI5344i • Tanév: 2009/10 - 1.félév • Előadó: dr. Varga Ernő, dr. Gerzson Miklós • Workbench alapok
2010.09.26.
Workbench alapok/1 • 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
A gyakorlatok során programokat kell fejleszteni egy utazási iroda alkalmazottjai számára. Kiindulási hely
Célrepülőtér
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
Érkezési hely
ABAP programok lefutása • Kliens-szerver architektúra: • Program lefutás: – Adatkivitel listán – Adatkivitel dynpro-n
Kliens-
Kliens-szerver architektúra
Prezentációs szerver szint
SAPGUI
SAPGUI
SAPGUI
Diszpécser
Applikációs szerver szint
Adatbázis
SAPGUI
SAPGUI
SAPGUI
Diszpécser
Munkafolyamat
Munkafolyamat
Munkafolyamat
Munkafolyamat
Munkafolyamat
Munkafolyamat
Munkafolyamat
Munkafolyamat
Egyfelhasználós metszet Prezentációs szerver szint
Munkafolyamat
Applikációs szerver szint
Adatbázis
ABAP-program
Felhasználói folyamatábra
Szelekciós kép
Lista
Idő
Black Box
Dynpro
Szerverszintek közti váltogatás Programindítás
ABAP-program ABAP feldolgozási blokk
Adatbázis tá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 Programindítás
Repository
Adatbázis tábla
Idő
Lista – Program kontextus betöltése Programindítás
ABAP-program
Repository
Szelekciós kép Adatobjektumok
Adatbázis tábla ABAP feldolgozási blokk
ABAP- futásidőrendszer Idő
Lista – Szelekciós kép elküldése Programindítás
ABAP-program
Adatobjektumok
Adatbázis tábla ABAP feldolgozási blokk
ABAP- futásidőrendszer Idő
Lista – Bevitt értékek átvétele Programindítás
ABAP-program
Adatobjektumok
Adatbázis tábla ABAP feldolgozási blokk
ABAP- futásidőrendszer Idő
Lista – Táblarekord olvasása Programindítás
ABAP-program
Adatobjektumok
Adatbázis tábla ABAP feldolgozási blokk
ABAP- futásidőrendszer Idő
Lista – Táblarekord visszaadása Programindítás
ABAP-program
Adatobjektumok
Adatbázis tábla ABAP feldolgozási blokk
ABAP- futásidőrendszer Idő
Lista – Lista megjelenítése Programindítás
ABAP-program
Adatobjektumok
Adatbázis tábla ABAP feldolgozási blokk
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 ABAP-program Adatobjektumok
Programindítás
Adatbázis tábla Dynpro
ABAP feldolgozási blokk
Process Before Output
ABAP- futásidőrendszer Idő
Dynpro - Megjelenítés ABAP-program Adatobjektumok
Programindítás
Adatbázis tábla Dynpro
ABAP feldolgozási blokk
Process Before Output
ABAP- futásidőrendszer Idő
Dynpro – Felhasználói művelet ABAP-program Adatobjektumok
Programindítás
Adatbázis tábla Dynpro
ABAP feldolgozási blokk
Process Before Output Process After Input
ABAP- futásidőrendszer Idő
Dynpro – ABAP feldolgozási blokk ABAP-program Adatobjektumok
Programindítás
Adatbázis tábla Dynpro
ABAP feldolgozási blokk
Process Before Output 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
mandantfüggetlen
Adatbázis
Repository
mandantfüggő Customizing-táblák Alkalmazási táblák
Repository felépítése Repository-objektumok FI
HR
MM
SD
WM MM
MM MM Vevő
Csomagok 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 Konszolidálás + FI-LC +
+ + +
TR CO ...
Treasury Controlling
Alkalmazás-komponensek Csomag Kijelölt részstruktúra
Infórendszer
SAP alkalmazási hierarchia
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önyvtár Programozási környezet Részobjektumok programokhoz ABAP Objects Osztálykönyvtár Részobjektumok osztályokhoz Részobjektumok interfészekhez Környezet
Repository infórendszer
ABAP Workbench munkaeszközök Debugger
Screen Painter Menu Painter FI
HR
SD
MM WM
Object Navigator
MM Vevő
ABAP Editor
ABAP Dictionary Function Builder Class Builder
Object navigátor - képernyőfelépítés Browser bezárása Az objektumlista hierarchikus fastruktúrájú megjelenítésére szolgáló terület Jobb egérgomb
Objektumlista megjelenítése Repository-objektum megjelenítésére és feldolgozására szolgáló terület
Kontextusmenü
Jobb egérgomb
A keret húzható
Kontextusmenü
Object navigátor – táblák keresése
Object navigátor – táblák megjelenítése
Object navigátor – csomagok keresése
Object navigátor – csomagok megjelenítése
Navigációs funkciók Fejlesztési osztály
BC400
Alkalmazási hierarchia Fejlesztési osztály Program Funkciócsoport Osztály Helyi objektumok
előző objektumlista BC400 Program objektumfajtái DDIC-objektumok Programok SAPBC400WBD_GETTING_STA SAPBC400WBT_GETTING_STA Funkciócsoportok BC400 Osztályok CL_BC400
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 Navigálás: kétszer rákattintva rákattintva a 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 rákattintva Előrenavigálás: aaaa 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 ID Légitársaság
AA American Airlines USD
Név Saját pénznem
Rendszer F1 Státus Műszaki infó Programnév Képernyő szám (= Dynpro-szám)
Mezőnevek Mezőtípusok
1. példa – Szelekciós képernyő
1. példa – Dynpro
1. példa – Lista képernyő
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
1. példa statikus nézete – objektumlista
Program indítása SAPBC400WBT_GETTING_STARTED Jobb egérgomb Program objektumfajtái Indítás DDIC-struktúrák Mezők PA_CAR WA_BC400 Események START-OF-SELECTION Dynpro-k 0100 1000 Include-ok
Közvetlen Debugging
1. példa – Program indítása
Nyomkövetés: debugging módusz X
SAP
ABAP Debugger
Watchpoint
chws
Mezők Fő program Forráskód
Egy
ZJJ_KURS_000 ZJJ_FORMS lépés
Fixpontos aritmetika 15 30 5 6
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. 1 - 4 6 LH
Változat wa_sbc400-carrid
SY-SUBRC
0
SY-TABIX
Változat
0
SY-DBCNT BIN (1) (000)
1
ds0025 INS o
1. példa nyomkövetése: debugging módusz
Tovább (kurzorig ) (F8) Visszatérés (F7) Végrehajtás (F6) Egyedi lépés (F5)
Töréspontok debugging móduszban X
SAP
ABAP Debugger
Watchpoint
chws
Mezők Fő program Forráskód
ZJJ_KURS_000 ZJJ_FORMS Tovább
Fixpontos aritmetika 15 30 5 6
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. 1 - 4 6 LH
Változat wa_sbc400-carrid
SY-SUBRC
0
SY-TABIX
Változat
0
SY-DBCNT BIN (1) (000)
1
ds0025 INS o
Általános ABAP szintaxis TABLES DATA PARAMETERS
sbc400_carrier. wa_sbc400 TYPE sbc400_carrier. pa_car TYPE scarr-carrid.
START START-OF OF-SELECTION START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. IF MOVE-CORRESPONDING MOVEMOVE -CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING MOVEMOVE -CORRESPONDING sbc400_carrier TO wa_sbc400. WRITE WRITE WRITE ENDIF. ENDIF ABAPkulcsszó
wa_sbc400-carrid COLOR COL_KEY. wa_sbc400-carrname. wa_sbc400-currcode.
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 a SCARR tá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 Megjegyzés MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. WRITE:/
ENDIF.
wa_sbc400-carrid COLOR COL_KEY,, wa_sbc400-carrname,, wa_sbc400-currcode..
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őé)
START-OF-SELECTION. SELECT SINGLE * FROM scarr 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 100. Dupla kattintás A dynpro definiálása MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. (a Screen Painter-ben)
WRITE:/
ENDIF.
wa_sbc400-carrid COLOR COL_KEY, wa_sbc400-carrname, wa_sbc400-currcode.
STOP
Kulcsszó dokumentáció Segítség
i
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 WRITE:/
ENDIF.
F1
wa_sbc400-carrid COLOR COL_KEY, wa_sbc400-carrname, wa_sbc400-currcode.
Kulcsszó-dokumentáció
Példaprogram forráskódja TABLES DATA PARAMETERS
sbc400_carrier. wa_sbc400 TYPE sbc400_carrier. pa_car TYPE scarr-carrid.
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 WRITE WRITE ENDIF.
wa_sbc400-carrid COLOR COL_KEY. wa_sbc400-carrname. wa_sbc400-currcode.
1
2
3
4
Adatobjektumok és szelekciós kép TABLES DATA PARAMETERS
sbc400_carrier. wa_sbc400 TYPE sbc400_carrier. pa_car TYPE scarr-carrid.
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
1
Dialógus az adatbázissal /1 ABAP-program Adatobjektumok
pa_car Adatbázistábla SCARR
wa_sbc400 ABAP feldolgozási blokk
SELECT SINGLE * FROM scarr ABAP Laufzeitsystem INTO CORRESPONDING FIELDS OF wa_sbc400 CARRID = pa_car. pa_car WHERE carrid IF sy-subrc = 0. ...
2
Dialógus az adatbázissal /2 ABAP-program Adatobjektumok
pa_car Adatbázistábla SCARR
wa_sbc400 ABAP feldolgozási blokk
SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. IF sy-subrc = 0. ...
2
Dynpro feldolgozása ABAP-program
Adatobjektumok
sbc400_carrier. ABAP feldolgozási blokk
Process Before Output
CALL SCREEN 100.
Process After Input
ABAP- futásidőrendszer Idő
3
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 WRITE:/
ENDIF.
wa_sbc400-carrid COLOR COL_KEY, wa_sbc400-carrname, wa_sbc400-currcode.
4
Meglévő program kiegészítése Forrásprogram: Légitársaság Légitársaság
LH
ID
LH
Név
LUFTHANSA
LH Lufthansa DEM
Saját pénznem DEM
Helyesbített másolat: Légitársaság ID Légitársaság
LH
Név
LH LUFTHANSA
Saját pénznem DEM Felhasználó
WALTERS
LH Lufthansa DEM
WALTERS
Repository objekumok transzportálása Módosítási kérelem
FI
HR
MM FI
SD
HR
MM
WM MM
SD Vevő
WM MM 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:
Workbench Organizer: Kérelmek Módosítási kérelmek TANF-00 részvételével Módosítható
ELŐADÓ
Projektvezető
Transzportálható
TANF-00 TANF-01 TANF-02 TANF-03 ...
Kérelemszám
IT3K900051 ELŐADÓ
A rendszer által adott szám az egyes csoporttagok számára (feladat)
IT3K900052 ELŐADÓ
A TANF-00 által módosított vagy létrehozott Repository-objektumok
ABAP-program
IT3K900053 TANF-00 Riportforrás ZBC400_00_FLIGHTLIST IT3K900054 TANF-01 IT3K900055 TANF-02 IT3K900056 TANF03 IT3K900057
...
Fejlesztés lezárásának műveletei Ütemterv:
...
Projektvezető: ELŐADÓ
Szerda
Szerda
A rendelés engedélyezése
A teljes projekt minőségellenőrzése A projekt dokumentációja
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
Fejlesztés lezárása
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
ZTANF_00
Felelős
TANF-00
Eredeti rendszer
IT3
Eredeti nyelv
DE
Helyi objektum
Az új programokat hozzá kell rendelni egy fejlesztési osztályhoz
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 Dupla kattintás a kérelemszámra Módosítási kérelmek TANF-00 részvételével 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 Dupla kattintás Objektumválasztás Programnév
ZTANF_00_GETTING_STARTED
Program ... Tulajdonságok
ABAP programtulajdonságok ... Cím Cím testreszabása Attribútumok
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 Módosítás 0100 Jobb egérgomb 1000 Layout
Légitársaság ID sbc400_carrier
Név Saját pénznem Felhasználó
Beviteli mező és mezőnév
Mentés és aktiválás Szintaktikai ellenő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é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: Be- és kiviteli mezők
Adatobjektumok
Alprogramok interfészparaméterei
Funkciók / módszerek interfészparaméterei
ABAPprogram ABAPforráskód Interfész 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 ABAPprogram
központi típusok az ABAP Dictionary-ben: technikai és szemantikai tulajdonságok
ABAPforráskód Interfész Alprogram
Funkciócsoport
Elemi Dictionary típusok használata Mezőnév
Beviteli mező
Adatelem:
Légitársaság
F1
Technikai típus Mezőnév Meződokumentáció (az F1-segítséghez) Keresési segítség (az értéksegítséghez)
Segítség Légitársaság rövidítése
Rövid név
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
Légitársaság
AA AF BA DL LH NU QF SA SQ UA
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 DATA wa_flight_occ TYPE sbc400focc sbc400focc .
F1 Segítség
Műszaki infó
Adatelem S_CARR_ID
Struktúratípus SBC400FOCC Mezők
Mezőtípus
CARRID CONNID ...
S_CARR_ID
Műszaki infó Mezőadatok Struktúra
SBC400_CARRIER
Mezőnév
CARRID
Adatelem
S_CARR_ID S_CARR_ID
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 . Segítség programlokális adatobjektumok deklarálásához Navigálás a F1 programlokális típus vagy az ABAP TYPE Kettős kattintás DATA: . DATA Dictionary-típus deklarálásához
F1 Kulcsszó-dokumentáció beépített típusokhoz
Adatobjektumok definiálása
<user-defined-type>. DATA: TYPE .
DATA: LIKE .
Adatobjektumok objektumlistában SAPTANFWBT_GETTING_STARTED Program objektumfajtái DDIC-struktúrák Jobb egérgomb Mezők 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 counter
TYPE s_carr_id, TYPE I.
Literálok és konstansok CONSTANTS TYPE VALUE .
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 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. Programindítás
c_qf
QF
gd_carrid1 gd_carrid2 counter LH 0000
MOVE c_gf TO gd_carrid1.
QF
LH
0000
gd_carrid2 = gd_carrid1.
QF
QF
0000
ADD 1 TO counter.
QF
QF
0001
CLEAR: gd_carrid1, CLEAR gd_carrid2, counter. ABAP-program
ABAP-futásidőrendszer Idő
0000
Számítások végrehajtása Számítások végrehajtása (kulcsszó nem kötelező)
COMPUTE
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 . WHEN . Utasítások
WHEN OR . Utasítások
WHEN OTHERS. Utasítások
ENDCASE.
IF . Utasítások
ELSEIF . Utasítások
ELSEIF . Utasítások
ELSE. Utasítások
ENDIF.
Nyomkövetés: változó értékek X
SAP
ABAP Debugger
Watchpoint
chws
Mezők Fő program Forráskód
Egy
ZJJ_KURS_000 ZJJ_FORMS lépés
Fixpontos aritmetika 15 30 5 6
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
1 - 4
6
LH
Változat
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 1 2 3 ... 10
Mezőnév
Logikai operátor a Watchpoint-ok között
Operátor Mező Összeh. érték
OR
AND
Struktúra definiálása (Dict.típus) ABAP dictionary: sdyn_conn struktúra Mezőnév: Mezőtípus: mandt s_mandt carrid s_carr_id connid s_conn_id fldate s_date ... ... Struktúra definiálása wa_spfli sdyn_conn ABAP-forráskód DATA: wa_spfli TYPE spfli. TABLES sdyn_conn.
ABAPprogram
Struktúra mező hivatkozása wa_scarr mandt carrid carrname
currcode
ABAP-forráskód
A struktúra mezőit mindig a következő módon kell hívni: <struktúra>-<mezőnév>
DATA: wa_scarr TYPE scarr. wa_scarr-carrid wa_scarr-carrid = 'LH'. SELECT SINGLE * FROM scarr INTO wa_scarr WHERE carrid = wa_scarr-carrid. WRITE:/ wa_scarr-carrid wa_spfli-carrid, wa_spfli-carrname. wa_scarr-carrname
ABAPprogram
Érték hozzárendelés mezőnként MOVE-CORRESPONDING TO .
DATA: wa_sflight TYPE sflight, wa_sbc400focc TYPE sbc400focc. MOVE-CORRESPONDING wa_sflight TO wa_sbc400focc.
MANDT 401
CARRID LH
CONNID 0400
CARRID LH
FLDATE 20000513
CONNID 0400
... ...
SEATSMAX 280
SEATSOCC ... 100 ... wa_sflight
SEATSMAX 280
SEATSOCC FLDATE PERCENTAGE 100 20000513
wa_sbc400focc
Struktúrák a debugger-ben ABAP Debugger
Watchpoint
chws
Mezők Fő program Forráskód
ZJJ_KURS_000 ZJJ_FORMS
Fixpontos aritmetika 15 30 5 6
SELECT SINGLE * FROM scarr wa_sbc400 Strukturált mező INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. Hossz (bájtban) 58 4 IF sy-subrc = 0. Sz. Komponens neve TO Típus Hossz Tartalom MOVE-CORRESPONDING wa_sbc400 sbc400_carrier. CALL SCREEN 100. C 3 1 MANDT 100 MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. C 3 2 CARRID AA 1 - 4 6 Változat Variante C 20 3 CARRNAME American Airlines wa_sbc400 C 5 4 CURRCODE USD C 1 Dupla kattintás 5 MARK C 12 6 UNAME T 6 7 UZEIT 000000 8 8 DATUM D 00000000
Belső táblák - táblatípus CARRID CONNID DISTANCE
Sortípus Kulcsmezők
AA LH
Kulcs
Sorrend
LH
0017 2.572 0400 6.162 0400
QF
6.162 10.000 0005
SQ
0866
1.625
5
UA
0007
2.572
UA 0007
Egyértelműség
Táblafajta Indexhozzáférés Hozzáférési típus
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 STANDARD TABLE
Indexhozzáférés
n
HASHED TABLE
SORTED TABLE
n
Kulcshozzáférés Egyértelműség Hozzáférés módja
NON- UNIQUE elsősorban indexen
UNIQUE | NON-UNIQUE
UNIQUE
elsősorban kulcson
csak kulcson
Belső tábla – Dict.típus ABAP Dictionary: táblatípus Sortípus és hozzáférés Sortípus Hozzáférési típus Kulcs
Kulcsdefiníció Kulcsfajta Kulcskomponensek
itab_flightinfo
sbc400_t_sbc400focc SBC400FOCC Standard tábla Kulcskomponensek non-unique CARRID CONNID FLDATE
ABAPprogram
sbc400_t_sbc400focc . DATA it_flightinfo type sbc400_t_sbc400focc
Egyedi rekordhozzáférés Csatolás
APPEND APPEND wa_itab to itab.
Beszúrás
INSERT wa_itab INTO itab .
Olvasás
READ TABLE itab INTO wa_itab .
Módosítás
MODIFY TABLE itab .
Törlés
DELETE DELETE itab .
Tömeges feldolgozás ciklussal: minden művelethez
LOOP AT itab INTO wa_itab.
ENDLOOP .
Törlés
DELETE itab .
Több sor beszúrása másik itab-ból
INSERT itab2 FROM itab1 .
Több sor csatolása másik itab-ból
APPEND itab2 INSERT FROM itab1 .
További műveletek Rendezés
SORT SORT
itab
Belső tábla tartalmának inicializálása
CLEAR CLEAR
itab.
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: /
ENDLOOP. ENDLOOP.
wa_flightinfo-carrid, wa_flightinfo-connid, wa_flightinfo-fldate, wa_flightinfo-seatsmax, wa_flightinfo-seatsocc, wa_flightinfo-percentage, '%'.
Példa: olvasás index segítségével LOOP AT it_flightinfo INTO wa_flightinfo FROM 11 TO TO 5. 5. FROM 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 carrid == 'LH' 'LH'. WHERE 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' 'LH'. connid connid == '0400' '0400' fldate == sy-datum. fldate IF sy-subrc = 0. WRITE: / wa_flightinfo-seatsmax, wa_flightinfo-seatsocc, wa_flightinfo-percentage, '%'. ENDIF.
Belső tábla debugging móduszban ABAP Debugger
Watchpoint
chws
Tábla Fő program Forráskód
ZJJ_KURS_000 ZJJ_FORMS
Fixpontos aritmetika 15 30 5 6
LOOP AT it_flightinfo INTO wa_flightinfo. WRITE: / wa_flightinfo-carrid, 4 wa_flightinfo-connid, Belső tábla
Típus Standard
it_flightinfo
1
Carrid Connid Fldate
Seatsmax Seatsocc Percentage
1 2 3 4 5 6 7 8
AA AA AA AA LH LH LH LH
660 660 660 660 280 280 280 280
0017 0017 0017 0017 0400 0400 0400 0400
20000512 20000724 20000828 20001224 20000626 20000715 20001113 20001212
66 120 560 470 240 123 273 280
66 120 560 470 240 123 273 280
Belső tábla fejléccel DATA
TYPE [WITH [WITH HEADER HEADER LINE] LINE].
Munkaterület <wa>
Fejléc
Belső tábla
Belső tábla
CARRID
CONNID
CARRID
CONNID
AA
0017
AA
0017
LH
0400
LH
0400
APPEND <wa> TO . MODIFY INDEX FROM <wa>.
APPEND . MODIFY INDEX .
LOOP AT INTO <wa>. WRITE <wa>-. ENDLOOP.
LOOP AT . WRITE -. ENDLOOP.
READ TABLE INDEX INTO <wa>. WRITE <wa>-.
READ TABLE INDEX . WRITE -.
ABAP utasítások return-kódja CONSTANTS c_ua TYPE s_carr_id VALUE 'UA'.
ABAP-program
sy-subrc 0 Bázisfunkció a READ-hez
READ TABLE itab INTO wa_itab WITH TABLE KEY carrid = c_ua. carrid ... AA AL LH QF IF sy-subrc ne 0. * Message ... ENDIF. ABAP-futásidőrendszer Idő
4
Nem áll rendelkezésre itab
Return-kód 4
Felhasználói üzenetek áttekintése . . MESSAGE E050(BC400). S078(BC400) WITH c_ua.
Tabelle T100 T
ID
Sz.
DE ... DE DE DE ...
BC400 ... BC400 BC400 BC400 ...
038 ... 049 078 078 ...
Üzenet szövege Ehhez a szelekcióhoz nem léteznek adatok (adja meg újra) ... A(z) & légitársaság nem létezik Osztás nullával 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