View
234
Download
7
Category
Preview:
Citation preview
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
A gyakorlatok során programokat kellfejleszteni 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
Kiindulási hely
Indulási repülőtér
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úraKliens-
Prezentációsszerverszint
Applikációsszerverszint
Adatbázis
Diszpécser
Munka-folyamat
SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI
Munka-folyamat
Munka-folyamat
Munka-folyamat
Diszpécser
Munka-folyamat
Munka-folyamat
Munka-folyamat
Munka-folyamat
Egyfelhasználós metszet
Prezentációsszerverszint
Applikációsszerverszint
Adatbázis
Munkafolyamat
ABAP-program
Felhasználói folyamatábra
Idő
Szelekciós kép
Lista
Bla
ck B
ox
Dynpro
Szerverszintek közti váltogatás
Program-indítás
ABAP- futásidőrendszer
ABAP-program
ABAPfeldolgozásiblokk
ABAPfeldolgozásiblokk
Adatbázis-tábla
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
Idő
Program-indítás
Adatbázis-tábla
Repository
Lista – Program kontextus betöltése
Idő
Program-indítás
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-program
Szelekciós kép
Repository
Adatbázis-tábla
Lista – Szelekciós kép elküldése
Idő
Program-indítás
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-program
Adatbázis-tábla
Lista – Bevitt értékek átvétele
Idő
Program-indítás
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-program
Adatbázis -tábla
Lista – Táblarekord olvasása
Idő
Program-indítás
Adatbázis-tábla
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-program
Adatobjektumok
Lista – Táblarekord visszaadása
Idő
Program-indítás
Adatbázis-tábla
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-program
Lista – Lista megjelenítése
Idő
Program-indítás
Adatbázis-tábla
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-program
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
Dynpro
Idő
Adatbázis-tábla
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-program
ProcessBeforeOutput
Program-indítás
Dynpro - Megjelenítés
Idő
Adatbázis-tábla
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-programProgram-indítás
Dynpro
ProcessBeforeOutput
Dynpro – Felhasználói művelet
Idő
Adatbázis-tábla
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-programProgram-indítás
Dynpro
ProcessBeforeOutput
ProcessAfterInput
Dynpro – ABAP feldolgozási blokk
Idő
Adatbázis-tábla
Adatobjektumok
ABAPfeldolgozásiblokk
ABAP- futásidőrendszer
ABAP-programProgram-indítás
Dynpro
ProcessBeforeOutput
ProcessAfterInput
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ósszerverszint
Applikációsszerverszint
Adatbázis
ABAP-program
Repository Customizing-táblákAlkalmazási táblák
mandantfüggetlen mandantfüggő
Repository felépítése
Fejlesztési osztályok
Repository-objektumok
Funkcióelemek
Programok
Táblák
. . .
M MMM
FI HR
MM
SD
MM
WM
Vevő
SAP alkalmazási hierarchiaSAP Alkalmazási hierarchia
Alkalmazásokat átfogó komponensekSzámvitel általábanPénzügy
...FBAS Pénzügyi könyvelés 'bázis'. FI-GL Főkönyvi könyvelésFI-LC Konszolidálás
TreasuryControlling
CAACFI
TRCO...
����+����+����+
����+����+
����+����+
Alkalmazás-komponensek
Fejlesztési osztály
Kijelölt részstruktúra
Infórendszer
����+
Repository infórendszerRepository-infórendszer
Business EngineeringABAP Dictionary
AlapobjektumokAdatbázistáblákNézetekAdatelemekStruktúrákTáblatípusok
...További objektumokMezők
ProgramozásFunkciókönyvtárProgramkönytárProgramozási környezetRészobjektumok programokhoz
ABAP ObjectsOsztálykönyvtárRészobjektumok osztályokhozRészobjektumok interfészekhez
Környezet
ABAP Workbench munkaeszközök
FunctionFunction BuilderBuilder
ScreenScreen PainterPainter
ABAP ABAP DictionaryDictionaryABAP EditorABAP Editor
ObjectNavigator
MenuMenu PainterPainter
DebuggerDebugger
ClassClass BuilderBuilder
FI HR
MM
SD
MM
WM
Vevő
Object navigátor - képernyőfelépítés
Az objektumlista hierarchikus fastruktúrájúmegjelenítésére szolgálóterület
Browser bezárása
Repository-objektum megjelenítésére ésfeldolgozására szolgáló terület
A keret húzható
Jobbegérgomb
Kontextusmenü
Jobbegérgomb
Kontextusmenü
Objektumlista megjelenítése
Navigációs funkciók
fölérendelt objektumlista
Favoritok
Hozzáadás
Feldolgozás
Programok
Történet
Objektumlista aktualizálása
Program objektumfajtáiDDIC-objektumokProgramokSAPBC400WBD_GETTING_STASAPBC400WBT_GETTING_STAFunkciócsoportokBC400OsztályokCL_BC400
BC400
Fejlesztési osztály
BC400
Alkalmazási hierarchiaFejlesztési osztályProgramFunkciócsoportOsztályHelyi objektumok
előző objektumlista
következő objektumlista
Programobjektumok megjelenítéseProgram objektumfajtáiDDIC-struktúrákSBC400_CARRIERMezőkPA_CARWA_BC400EseményekSTART-OF-SELECTIONDynpro-k01001000
SAPBC400WBT_GETTING_STARTED
Editor
Editor
Editor
Screen Painter
Navigálás: bármelyik meglévő programobjektumra kétszer 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 aaaa a a hivatkozásra létrehozható.
Navigálás:
Előrenavigálás:
kétszer rákattintva
kétszer rákattintva
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
AA American Airlines USDLégitársaság
ID
Név
Saját pénznem
Légitársaság
Szelekciós kép Dynpro Lista
F1
Műszaki infó
MezőnevekMezőtípusok
Rendszer
Státus
ProgramnévKépernyőszám(= Dynpro-szám)
Statikus nézet: objektumlista
Program objektumfajtáiDDIC-struktúrákSBC400_CARRIERMezőkPA_CARWA_BC400EseményekSTART-OF-SELECTIONDynpro-k01001000
SAPBC400WBT_GETTING_STARTED
Program indítása
Program objektumfajtáiDDIC-struktúrákMezőkPA_CARWA_BC400EseményekSTART-OF-SELECTIONDynpro-k01001000Include-ok
SAPBC400WBT_GETTING_STARTED
Indítás
Jobb egérgomb
Közvetlen
Debugging
Nyomkövetés: debugging móduszX SAP
Watchpoint
ABAP Debugger
BIN (1) (000) ds0025 INSoooo
Változat
��������chwschws
Mezők
Fő program
Forráskód
ZJJ_KURS_000ZJJ_FORMS
wa_sbc400-carrid1 4-
LHVáltozat
SY-SUBRC SY-TABIX SY-DBCNT0 0 1
4
6
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.
Fixpontos aritmetika15 30- 56Egy lépés
Töréspontok debugging móduszbanX SAP
Watchpoint
ABAP Debugger
BIN (1) (000) ds0025 INSoooo
Változat
��������chwschws
Mezők
Fő program
Forráskód
ZJJ_KURS_000ZJJ_FORMS
wa_sbc400-carrid1 4-
LHVáltozat
SY-SUBRC SY-TABIX SY-DBCNT0 0 1
4
6
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.
Fixpontos aritmetika15 30- 56Tovább
STOP
Általános ABAP szintaxis
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.
WRITE wa_sbc400-carrname.
WRITE wa_sbc400-currcode.
ENDIF.
Kiegészítések (kulcsszótól függő) Pont van mindegyikABAP-mondat végén
TABLES sbc400_carrier.
DATA wa_sbc400 TYPE sbc400_carrier.
PARAMETERS pa_car TYPE scarr-carrid.
STARTSTART--OFOF--SELECTIONSELECTION
SELECTSELECT
IFIF
MOVEMOVE--CORRESPONDINGCORRESPONDING
CALLCALL
MOVEMOVE--CORRESPONDINGCORRESPONDING
WRITEWRITE
ENDIFENDIF
ABAP-kulcsszó
TABLESTABLES
DATADATA
PARAMETERSPARAMETERS
WRITEWRITE
WRITEWRITE
Utasításfüzérek és megjegyzések
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.
WRITE:/WRITE:/ Utasítás-füzér
,,
,,
..
* Adatrekord olvas* Adatrekord olvasáása a SCARR tsa a SCARR tááblbláábbóóll
" " DynproDynpro 100 feldolgoz100 feldolgozáásasa
Megjegyzés
Megjegyzés
Navigálás az Editorban
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.
scarrscarr
wawa_sbc400_sbc400
Kettős kattintás
Az adatbázistábla definiálásaaz ABAP Dictionary-ben A struktúra definiálása
(a strukturált mezőé)Kettős kattintás
Kettős kattintás100100 A dynpro definiálása(a Screen Painter-ben)
STOP
Kulcsszó dokumentáció
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.
WRITEWRITE
F1
Kulcsszó-dokumentáció
Segítség az EditorhozABAP-áttekintésABAP-kifejezésÚj ABAPABAP dokum. és példák
Segítség
iWRITE
Példaprogram forráskódja
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.
WRITE wa_sbc400-carrname.
WRITE wa_sbc400-currcode.
ENDIF.
TABLES sbc400_carrier.
DATA wa_sbc400 TYPE sbc400_carrier.
PARAMETERS pa_car TYPE scarr-carrid.
1
2
3
4
Adatobjektumok és szelekciós képTABLES sbc400_carrier.
DATA wa_sbc400 TYPE sbc400_carrier.
PARAMETERS pa_car TYPE scarr-carrid.
TABLESTABLES
DATADATA
PARAMETERSPARAMETERS
A program generálásakor az 'Aktiválás' funkcióval egy szelekcióské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
Adatobjektumok
ABAP-program
sbc400_carrier
wa_sbc400
pa_carr
1
Dialógus az adatbázissal /1
Adatbázis-táblaSCARR
ABAPfeldolgozásiblokk
ABAP Laufzeitsystem
ABAP-program
SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_sbc400
WHERE carrid = pa_car.
IF sy-subrc = 0.
...
SELECT SINGLESELECT SINGLE FROMFROM scarrscarr
WHERE CARRID =WHERE CARRID = papa__carcar
Adatobjektumokpa_carpa_car
wa_sbc400wa_sbc400
2
Dialógus az adatbázissal /2
2
Adatbázis-táblaSCARR
ABAPfeldolgozásiblokk
ABAP-program
Adatobjektumok
SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_sbc400
WHERE carrid = pa_car.
IF sy-subrc = 0.
...
INTO CORRESPONDING FIELDS OFINTO CORRESPONDING FIELDS OF wawa_sbc400_sbc400
pa_carpa_car
wa_sbc400wa_sbc400
Dynpro feldolgozása
ABAP- futásidőrendszer
Idő
Adatobjektumok
ABAP feldolgozási blokk
ABAP-program
ProcessBeforeOutput
CALL SCREEN 100.CALL SCREEN 100.
sbc400_carrier.sbc400_carrier.
ProcessAfterInput
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:/ wa_sbc400-carrid COLOR COL_KEY,
wa_sbc400-carrname,
wa_sbc400-currcode.
ENDIF.
WRITEWRITE
4
Meglévő program kiegészítése
LH Lufthansa DEMLégitársaság
ID
Név
Saját pénznem
LégitársaságForrásprogram:
LH Lufthansa DEMLégitársaság
ID
Név
Saját pénznem
LégitársaságHelyesbített másolat:
Felhasználó
WALTERS
WALTERS
LH
LUFTHANSA
DEM
LH
LH
LUFTHANSA
DEM
LH
Repository objekumok transzportálása
MMóódosdosííttáásisikkéérelemrelem
Fejlesztési rendszer Produktív rendszer
FI HR
MM
SD
MM
WM
Vevő
FI HR
MM
SD
MM
WM
Vevő
Projektpélda: ABAP tanfolyam
Csoport:
Projektvezető:
ELŐADÓ
Ütemterv: Kedd Szerda Kedd Szerda
A fejlesztés lezárásaA dolgozó tevékenységei (itt: gyakorlati feladatok)
ELŐADÓ
TANF-00
TANF-01
TANF-02
TANF-03
...
Projekt leképezése a WO-ban
Workbench Organizer: Kérelmek
Csoport:
Projektvezető:
ELŐADÓ
ELŐADÓ
TANF-00
TANF-01
TANF-02
TANF-03
...
Projektvezető
Kérelemszám
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
Riportforrás
ZBC400_00_FLIGHTLIST
ABAP-program
IT3K900054 TANF-01
IT3K900055 TANF-02
IT3K900056 TANF03
IT3K900057 ...
A TANF-00 által módosí-tott vagy létrehozottRepository-objektumok
A rendszer által adottszám az egyescsoporttagok számára
(feladat)
Fejlesztés lezárásának műveletei
Csoport:
Projektvezető:
ELŐADÓ
ELŐADÓ
TANF-00
TANF-01
TANF-02
TANF-03
...
Fejlesztéslezárása
Ütemterv: . . . Szerda Szerda
Minden módosított repository-objektum minőségellenőrzése
A teljes feladat dokumentációja
A teljes projekt minőségellenőrzéseA projekt dokumentációja
A feladat engedélyezése
A rendelés engedélyezése
Program másolása
Műszaki infó
Forrásprogram:
Célprogram:
ForrásSzövegelemek
Dokumentáció
Változatok
Felhasználói felületDynpro-k
Include-ok
����
����
����
����
Másolás
Másolás Kérelmek (Organizer)
LétrehozásMódosításMegjelenítésEllenőrzésAktiválásVégrehajtásMásolás...
SAPBC400WBT_GETTING_STARTED
Műszaki infó
ZBC400_00_GETTING_STARTED
Program mentése
Attribútumok
Fejlesztési osztály
Felelős
Eredeti rendszer
Eredeti nyelv
ZTANF_00
TANF-00
Objektumkatalógus-bejegyzés létrehozása
Objektum R3TR PROG ZTANF_00_GETTING_STARTED
Helyi objektum
Az új programokat hozzákell rendelni egyfejlesztési osztályhoz
IT3
DE
Hozzárendelés módosítási kérelemhez
Riportforrás
Transzportálható módosítási kérelmek lekérdezése
ZTANF_00_GETTING_STARTED
Transzportálható módosítási kérelem
Résztvevői gyakorlatok a tanfolyamhoz
IT3900051 IT3
Kérelem
Saját kérelmek Transzportálható módosítási kérelmek lekérdezése
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
Kettős kattintás akérelemszámra
Rövid szöveg módosításaProgram objektumfajtái
Objektumválasztás
Programnév
Program...
Tulajdonságok
Attribútumok
ABAP programtulajdonságok ...
Cím
ZTANF_00_GETTING_STARTED
Cím testreszabása
Kettős kattintás
Eredeti nyelvmódosítása abejelentkezé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.
ULINE.
WRITE wa_sbc400-uname.
Szintaktikai ellenőrzés
Dynpro módosítása
Program objektumfajtáiDDIC-struktúrákMezőkEseményekDynpro-k01001000
ZTANF_00_GETTING_STARTED
ID
Név
Saját pénznem
Légitársaság
MódosításJobb egérgomb
sbc400_carrier
Layout
Beviteli mező ésmezőnév
Felhasználó
Mentés és aktiválás
�� Szintaktikai ellenSzintaktikai ellenőőrzrzéés:s: ikon segítségével szintaktikai ellenőrzést hajthat végre.
�� Program mentProgram mentéése:se: időközi mentés: a kód a repository-bantárolódik és látható a teljes rendszerben. Végrehajtáskor az aktív verzió indul el.
�� Program aktivProgram aktiváálláása:sa: a program aktiválás után a teljes rendszerben látható és végrehajtható.
�� BBőővvíített programellentett programellenőőrzrzéés: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
Interfész
Funkció-
elem
ABAP-program
ABAP-forráskód
A típusok az alábbi elemek tulajdonságait írják le:
AdatobjektumokAlprogramok
interfészparaméterei
Funkciók / módszerekinterfészparaméterei
Be- és kiviteli mezők
Interfész
Al-program
Funkció-csoport
Programlokális és központi típusok
Interfész
Funkció-
elem
Funkció-csoport
ABAP-program
ABAP-forráskód
Interfész
Al-program
A típusok programlokálisan vagy központilag definiálhatók
programlokális típusok:csak technikai tulajdonságok központi típusok az
ABAP Dictionary-ben:technikai és szemantikai
tulajdonságok
Elemi Dictionary típusok használataAdatelem: Technikai típus
MezőnévMeződokumentáció
(az F1-segítséghez)Keresési segítség
(az értéksegítséghez)
Légitársaság
Változó a beviteli mezőhöz
Beviteli mező
Segítség
Légitársaság rövidítése
A mező tartalmazza a légitársaság ID-jét
Mezőnév
F1
Rövid név
AAAFBADLLHNUQFSASQUA
American AirlinesAir FranceBritish AIrwaysDelta AirlinesLufthansaJapan Transocean Air.Quantas AirwaysSouth African Air.Singapore AirlinesUnited Airlines
ID LégitársaságMűszaki infóSegítség az alkalmazáshoz
Információk Dict.típusokhoz /1DATA wa_flight_occ TYPE sbc400focc .
Ket
tős
katti
ntás
StruktúratípusSBC400FOCC
sbc400focc
Mezők Mezőtípus
CARRID S_CARR_ID
CONNID
...
S_CARR_ID
AdatelemS_CARR_ID
Segítség
Mezőadatok
Struktúra
MezőnévAdatelem
SBC400_CARRIER
CARRID
S_CARR_ID
Műszaki infó
Kettős kattintás
S_CARR_ID Kettő
s ka
ttint
ás
F1
Műszaki infó
Információk Dict.típusokhoz /2Alkalmazási hierarchia
Részstruktúra kijelöléseInformációs rendszer
Business EngineeringABAP Dictionary
ProgramozásABAP-objektumokKörnyezet
Repository-infórendszer
Alapobjektumok
További objektumokMezők
TáblákNézetekAdatelemekStruktúrákTáblatípusokDomének
Standard szelekciók
Adatelem
Rövid név
Mezőnév
Adattípus
Hossz
Fejlesztési osztály
Repository-infórendszer: adatelemek
Lokális típusok információi
Types: <user_defined_type> TYPE <type>.
DATA: <dataobject> TYPE <type>.
Segítség programlokálistípusok deklarálásához
Navigálás aprogramlokálistípus vagy az ABAPDictionary-típusdeklarálásához
TYPE
F1
Kulcsszó-dokumentációbeépített típusokhoz
TYPES
F1
Kettős kattintás
<type>
Kettős kattintás<type>DATA
Segítség programlokálisadatobjektumok deklarálásához
F1
Adatobjektumok definiálása
<user-defined-type>.
DATA: <varname> TYPE
<ABAP-dictionary-type>.
DATA: <varname> LIKE <data-object>.
Adatobjektumok objektumlistában
Program objektumfajtáiDDIC-struktúrákMezőkPA_CARWA_BC400EseményekSTART-OF-SELECTIONDynpro-k01001000
SAPTANFWBT_GETTING_STARTED
MódosításMegjelenítésFelhasználáskimutatás
Jobb egérgomb
Jobb egérgomb
Létrehozás
Elemi adatobjektumok definiálása
ABAP-programcarrid
counter
DATA: carrid TYPE s_carr_id,
counter TYPE I.
s_carr_id
Literálok és konstansok
'abc', '2.17', '1.213E15', '0FFF', 'A''B'A karaktersor idézőjelek között áll,legfeljebb 255 karakter
Szövegliterál
715, -431Egész szám (negatív számok eseténnegatív előjellel)
Számliterál
CONSTANTS <konstans> TYPE <típus> VALUE <literál>.
CONSTANTS: PI TYPE P DECIMALS 4 VALUE '3.1415',
BOSS(4) TYPE C VALUE 'Hugo'.
Változók módosítása
ABAP-futásidőrendszer
ABAP-program
MOVE c_gf TO gd_carrid1.
gd_carrid2 = gd_carrid1.
ADD 1 TO counter.
CLEAR: gd_carrid1,
gd_carrid2,
counter.
Idő
gd_carrid1
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
Adatdeklarációk:
c_qf QF
gd_carrid2 counter
LH 0000
QF LH 0000
QF QF 0000
QF QF 0001
0000
MOVE
CLEAR
Számítások végrehajtásaCOMPUTE Számítások végrehajtása (kulcsszó nem kötelező)
ABAP Programm
COMPUTE gd_percentage = gd_occ * 100 / gd_max.
* Second possibility with same calculation
gd_percentage = gd_occ * 100 / gd_max.
DATA: gd_max TYPE sbc400focc-seatsocc,
gd_occ TYPE sbc400focc-seatsmax,
gd_percentage TYPE sbc400focc-percentage.
Adatdeklarációk:
COMPUTE
Mezőtartalom kiértékeléseCASE <adatobjektum1>.
WHEN <adatobjektum2>.
WHEN <adatobjektum4> OR <adatobjektum5>.
WHEN OTHERS.
ENDCASE.
Utasítások
Utasítások
Utasítások
IF <logikai kifejezés>.
ELSEIF <logikai kifejezés>.
ELSEIF <logikai kifejezés>.
ELSE.
ENDIF.
Utasítások
Utasítások
Utasítások
Utasítások
Nyomkövetés: változó értékekX SAP
Watchpoint
ABAP Debugger
Változat
��������chwschws
Mezők
Fő program
Forráskód
ZJJ_KURS_000ZJJ_FORMS
Fixpontos aritmetika15 30-
1 4- Változat
56
4
6
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.
Egy lépés
pa_car LH
Nyomkövetés: WatchpointWatchpoint
Watchpoint létrehozása/módosítása
helyi Watchpoint (csak a megadott programban)
ProgramMezőnévÖsszahas. operátor
Összehas. mező/ért.
Összehas. mező (ha nincs bejelölve: összeh. érték)
Sz. Helyi Program Mezőnév MezőOperátor Összeh. érték123...10
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
Struktúra definiálása
ABAP-program
ABAP-forráskód
Mezőnév:mandt
carrid
connid
fldate
...
Mezőtípus:s_mandt
s_carr_id
s_conn_id
s_date
...
DATA: wa_spfli TYPE spfli.
TABLES sdyn_conn.
wa_spfli
sdyn_conn
Struktúra mező hivatkozásaABAP-program
ABAP-forráskód
DATA: wa_scarr TYPE scarr.
wa_scarr-carrid = 'LH'.
SELECT SINGLE * FROM scarr
INTO wa_scarr
WHERE carrid = wa_scarr-carrid.
WRITE:/ wa_spfli-carrid,
wa_spfli-carrname.
wa_scarr
mandt carrid carrname currcode
wa_scarr-carrid
wa_scarr-carrname
A struktúra mezőit mindiga következő módon kell hívni:<struktúra>-<mezőnév>
wa_scarr-carrid
Érték hozzárendelés mezőnkéntMOVE-CORRESPONDING <rec1> TO <rec2>.
DATA: wa_sflight TYPE sflight,
wa_sbc400focc TYPE sbc400focc.
MOVE-CORRESPONDING wa_sflight TO wa_sbc400focc.
wa_sflightCARRIDLH
MANDT401
CONNID0400
wa_sbc400focc
CARRIDLH
CONNID0400
FLDATE20000513
...
...
FLDATE20000513
MOVE-CORRESPONDING wa_sflight TO wa_sbc400focc.
SEATSMAX280
SEATSOCC100
PERCENTAGESEATSMAX280
SEATSOCC100
...
...
Struktúrák a debugger-ben
Watchpoint
ABAP Debugger
Változat
��������chwschws
Mezők
Fő program
Forráskód
ZJJ_KURS_000ZJJ_FORMS
1 4- Variante
4
6
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.
wa_sbc400
Sz. Komponens neve Típus Hossz Tartalom
1
2
3
4
5
6
7
8
MANDT
CARRID
CARRNAME
CURRCODE
MARK
UNAME
UZEIT
DATUM
C
C
C
C
C
C
T
D
3
3
20
5
1
12
6
8
100
AA
American Airlines
USD
000000
00000000
Kettős kattintás
Strukturált mező
Hossz (bájtban)
wa_sbc400
58
Fixpontos aritmetika15 30- 56
Belső táblák - táblatípusCARRID CONNID DISTANCECARRID CONNID DISTANCE SortSortíípuspus
TTááblafajtablafajta
AA 0017 2.572
QF 0005 10.000
SQ 0866 1.625
UA 0007 2.572
LH 0400 6.162
Indexhozzáférés55
Kulcshozzáférés
UA 0007UA 0007Hozzáférési típus
KulcsKulcs
LH 0400 6.162 Egyértelműség
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).
Kulcsmezők
Sorrend
Táblafajták
Indexhozzáférés
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 kulcsonmódja
nn nn
INDEX TABLEINDEX TABLE HASHED TABLEHASHED TABLE
STANDARD TABLESTANDARD TABLE
ANY TABLEANY TABLE
SORTED TABLESORTED TABLE
Belső tábla – Dict.típus
Sortípus és hozzáférés
Kulcs Kulcsdefiníció
Kulcsfajta
Kulcskomponensek
Sortípus
Hozzáférési típus
SBC400FOCC
Standard tábla
Kulcskomponensek
non-uniqueCARRID
CONNID
FLDATE
sbc400_t_sbc400foccABAP Dictionary: táblatípus
DATA it_flightinfo type sbc400_t_sbc400focc .
itab_flightinfoABAP-program
sbc400_t_sbc400focc
Egyedi rekordhozzáférésCsatolás
Beszúrás
Olvasás
Módosítás
Törlés
APPEND wa_itab to itab.
INSERT wa_itab INTO itab <condition>.
READ TABLE itab INTO wa_itab <condition>.
MODIFY TABLE itab <condition>.
DELETE itab <condition>.
APPEND
INSERT
READ
MODIFY
DELETE
Tömeges feldolgozásciklussal:minden művelethez
LOOP AT itab INTO wa_itab.
ENDLOOP .
DELETE itab <condition>.
INSERT itab2 <condition2>
FROM itab1 <condition1>.
Törlés
Több sorbeszúrása másik itab-ból
LOOP
ENDLOOP
DELETE
INSERT
Több sorcsatolása másik itab-ból
INSERT itab2 <condition2>
FROM itab1 <condition1>.
APPEND
További műveletek
Rendezés
Belső tábla tartalmának inicializálása
SORT itab <conditions>
CLEAR itab.CLEAR
SORT
Példa: Belső tábla kitöltése soronként
* 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.
itab_flightinfo
* Declaration of internal table and workarea
DATA: it_flightinfo TYPE sbc400_t_sbc400focc.
DATA: wa_flightinfo TYPE sbc400focc.
wa_flightinfo
Példa: tábla olvasás ciklusban
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.
LOOP AT it_flightinfo INTO wa_flightinfo.
ENDLOOP.
itab_flightinfo
* Declaration of internal table and workarea
DATA: it_flightinfo TYPE sbc400_t_sbc400focc.
DATA: wa_flightinfo TYPE sbc400focc.
wa_flightinfo
Példa: olvasás index segítségévelLOOP 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.
FROM 1 TO 5.
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,
'%'.
INDEX 3.
Példa: olvasás kulcs segítségévelLOOP 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.
WHERE carrid = 'LH'.
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.
WITH TABLE KEY carrid = 'LH'.
connid = '0400'
fldate = sy-datum.
Belső tábla debugging móduszbanWatchpoint
ABAP Debugger
��������chwschws
TáblaFő program
Forráskód
ZJJ_KURS_000ZJJ_FORMS
4
LOOP AT it_flightinfo INTO wa_flightinfo.
WRITE: / wa_flightinfo-carrid,
wa_flightinfo-connid,
1
2
3
4
5
6
7
8
AA
AA
AA
AA
LH
LH
LH
LH
Belső tábla it_flightinfo Típus Standard
1 Carrid
0017
0017
0017
0017
0400
0400
0400
0400
Connid
20000512
20000724
20000828
20001224
20000626
20000715
20001113
20001212
Fldate
660
660
660
660
280
280
280
280
Seatsmax
66
120
560
470
240
123
273
280
Seatsocc
66
120
560
470
240
123
273
280
Percentage
Fixpontos aritmetika15 30- 56
Belső tábla fejléccel
AA 0017
Belső tábla <itab>
Munkaterület <wa>
LH 0400
Fejléc <itab>
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>.
DATA <itab> TYPE <itabtype> [WITH HEADER LINE].
CARRIDCARRID CONNIDCONNID
AA 0017
Belső tábla <itab>
LH 0400
CARRIDCARRID CONNIDCONNID
[WITH HEADER LINE]
ABAP utasítások return-kódja
ABAP-futásidőrendszer
ABAP-program
AAALLHQF
carrid ...
itab
READ TABLE itab
INTO wa_itab
WITH TABLE KEY
carrid = c_ua.
Bázisfunkcióa READ-hez
0
sy-subrc
Nem áll rendelkezésre
4 Return-kód 4IF sy-subrc ne 0.
* Message
...
ENDIF.
Idő
CONSTANTS c_ua
TYPE s_carr_id
VALUE 'UA'.
Felhasználói üzenetek áttekintése..
MESSAGE E050(BC400).
Üzenet szövege
Ehhez a szelekcióhoz nem léteznek adatok (adja meg újra)...
A(z) & légitársaság nem létezikOsztás nullával
...
Tabelle T100
T
DE...DEDE...
ID
BC400...
BC400BC400...
Sz.
038...
049078...
A(zA(z) UA ) UA lléégitgitáársasrsasáááághozghoz nem tartozik bejegyznem tartozik bejegyzééss
MESSAGE S078(BC400) WITH c_ua.
DE BC400 078 A(z) & légitársasághoz nem tartozik bejegyzés
MESSAGE utasítás szintaktikája
AnnnXnnn
MESSAGE Ennn WITH <mező1> <mező2> <mező3> <mező4>(<message-class>).WnnnInnnSnnn
Üzenetek működése futásidőben
Segítség az EditorhozABAP-áttekintésABAP-kifejezésÚj ABAPABAP dokum. és példák
Segítség
i
BC - ABAP-programozásABAP bevezetésABAP programnyelvABAP képernyőképek
Egyszerű üzenetpéldaMinden üzenetfajta bemutatása
...
ABAP dokumentáció és példák?
???
?
Összefoglalás
• ABAP programok lefutása
• ABAP Workbench bevezetés
• ABAP utasítások és adatdeklarációk
Recommended