Gyakorlatok és megoldások szimbólumainak magyarázata:
Gyakorlatok Megoldások Fejezet céljai Üzleti leírás Tippek és trükkök Figyelmeztetések
A tanfolyamon az ABAP Dictionary objektumok létrehozásakor a következő konvenciókat kell követni: • A létrehozandó objektumok (táblák, adatelemek, domének) neveinek ZTANF-el majd a 2 karakteres azonosító sorszám következik, végül az objektum azonosítóval kell végződniük (ZTANFxx
). • A táblamezőkhöz mind saját (ZTANFxx), mind a standard SAP adatelemek és domének használhatók. • Összes objektumot lokálisként kell létrehozni ($tmp fejlesztési osztály) vagy a saját ZTANFxx fejlesztési osztályban.
1/6
Gyakorlatok 1.gyakorlat: Táblák az ABAP Dictionary-ban
A feladatok végrehajtása képes lesz: • Táblákat létrehozni és alkalmazni a kétszintű domén elvet • Technikai beállításokat definiálni • Mezőket dokumentálni • Include struktúrákat létrehozni és alkamlmazni. Ezekben a gyakorlatokban a repülési modellt bővítjük alkalmazotti nyilvántartással. Ez az alkalmazotti nyilvántartás lehetővé teszi a légitársaság számára, hogy adatokat vigyen fel és értékeljen ki az alkalmazottairól (pl. név, személyi szám, fizetés, osztály, stb.) és a szervezetről (osztályok). Ebben a gyakorlatban két táblát hozunk létre az alkalmazotti adatok és az osztályok tárolására. Ezek a táblák lesznek később lépésenként bővítve a következő gyakorlatok során. 2-1
Hozzon létre két transzparens táblát ZTANFxxEMPLOY és ZTANFxx_DEPMENT néven és definiálja a kulcsmezőit. Definiálja a technikai beállításokat amikor aktiválja a táblákat. Vegye figyelembe a következőket: Három légitársaság adatait tarjuk nyilván. Egy légitársaságnak 20,000 alkalmazottja és 10-30 osztálya van. Ne állítson be bufferelést és adat loggolást. A bufferelést a következő fejezetben tárgyaljuk. 2-1-1 Hozza létre a ZTANFxxEMPLOY táblát, melyben az alkalmazottak adatait fogjuk tárolni: alkalmazottak neve és címe, fizetések.
ZTANFxxEMPLOY tábla
2/6
Mező megnevezés Adatelem
Domén
Mandant
S_MANDT
MANDT
Légitársaság
S_CARR_ID
S_CARR_ID
Személyzeti azonosító
<saját adatelem>
<saját domén>
Keresztnév
ZS_FNAME
ZS_FNAME
Családnév
ZS_LNAME
ZS_LNAME
Részleg kód
<saját adatelem>
<saját domén>
Típus, hossz
NUMC, 10
CHAR, 4
Terület
<saját adatelem>
<saját domén>
CHAR, 1
Fizetés
<saját adatelem>
<saját domén>
CURR, 10 2 tizedesjegy
Pénznem
S_CURRCODE
S_CURR
2-1-2 Hozza létre a ZTANFxxDEPMENT táblát, mely a légitársaság részlegeinek adatait fogja tartamazni: telefon, fax szám.
ZTANFxxDEPMENT tábla
2-2 2-3
Mező megnevezés Adatelem
Domén
Típus, hossz
Mandant
S_MANDT
MANDT
Légitársaság
S_CARR_ID
S_CARR_ID
Részleg kód
<saját adatelem>
<saját domén>
CHAR, 4
Telefon
<saját adatelem>
S_PHONE
CHAR, 30
Fax
<saját adatelem>
S_PHONE
CHAR, 30
Dokumentálja a Személyzeti azonosító és Részleg kód mezőket. A ZTANFxxEMPLOY és ZTANFxxDEPMENT táblákon végzett módosítások kritikusak és emiatt rögzíteni kell a módosításokat. A karbantartó tranzakciónak meg kell jegyezni, ki módosította utoljára a tábla bejegyzéseket. Ez megoldható plussz mezők hozzáadásával: utolsó módosító azonosítója és utolsó módosítás dátuma. Annak érdekében, hogy mindkét táblában pontosan ugyanazon mezők szerepeljenek, a két új mezőt a ZTANFxxCHANGE alstruktúraként adja hozá a táblákhoz. Hozzon létre új adatelemet a Lastchangedby mezőhöz, de használjon meglévő domént. Használja a S_CHDATE adatelemet az utolsó módosítás dátumához. Milyen tevékenységeket hajt végre a rendszer az adatbázisban aktiváláskor?
2.gyakorlat: Tábla olvasások performanciája
A gyakorlatok során: • Indexeket hozunk létre • Tábla bufferelési tulajdonságait állítjuk be.
3/6
A napi munka során a légitársaság alkalmazottainak gyors hozzáférésre van szükségük az alkalmazotti adminisztrációs táblákhoz. A gyakorlat során a tábla olvasásokat fogjuk meggyorsítani.
3-1
3-2
3-3
3-4
A vezeték és keresztnév mezőket gyakran használják az alkalmazottak adatainak eléréséhez. A vezetéknév gyakrabban ismert mint a keresztnév. Hozzon létre egy indexet, ami támogatja ezt az olvasást. Ellenőrizze, hogy az adatbázisban is létrejött az index. Egy repülési személyzeti csapat összeállításához az alkalmazottakat (pilóták és légikisérők) hozzá kell rendelni a járatokhoz. Hozzon létre egy táblát amelyben az alkalmazottak és funkcióik vihetők fel a járatokhoz. Egy tábla a megfelelő struktúrával már létezik a rendszerben. Másolja le ezt a SFLCREW táblát ZTANFxxFLCREW néven. Helyetesítse a létező alkalmazott azonosító adatelemet egy újonnan létrehozott adatelemmel. Ne felejtse el aktíválni a ZTANFxxFLCREW táblát. Vizsgálja felül a ZTANFxxDEPMENT és ZTANFxxFLCREW táblák bufferelési beállításait a következő információk figyelembe vételével: A légitársaságoknak 10 és 30 közötti számú osztályai lehetnek. Csak néhány légitársaság (maximum 3) adatait tároljuk a táblákban. A befejezett járatok legénységi adatait háromhavonta arhíváljuk. A ZTANFxxFLCREW táblának emiatt viszonylag kevés bejegyzése van (legfeljebb 5,000 légitársaságonként). A ZTANFxxDEPMENT és ZTANFxxFLCREW táblákat gyakran olvassák és az egyes adatrekordokat ismételten többször is kiolvassák . Csak egyetlen légitársaság adminisztratív alkalmazottai dolgoznak egy alkalmazás szerveren. A személyzet adataira csak egy légiotársaságon belül van szükség egyidőben. A légitársaság adminisztratív alkalmazottai azonban gyakran olvassák más légitársaságok osztályainak adatait, mivel a légitársaságok néhány szolgáltatást megosztanak. Kiegészítő gyakorlat: Az alkalmazotti adatok olvasásához használt index jelentősen javítja a performanciát, például ha az összes pilóta gyakran kiválasztásra kerül. Különböző adatbázis kezelő rendszerek esetén azonban a hatékonyság eltérő lehet, tapasztalatok szerint csak az ADABAS és SQL Server esetén jelentős a hatás. Hozza létre egy indexet és állítsa be, hogy csak az ADABAS és SQL Server adatbáziskezelők esetén kerüljön létrehozásra az index fizikailag.
3.gyakorlat: Konzisztencia biztosítása input elenőrzéssel
4/6
A gyakorlatok során: • Fix értékeket hozunk létre • Érték táblákat állítunk be • Idegen kulcsokat definiálunk • A fenti mechanizmusok segítségével biztosítjuk a konzisztenciát Amikor alkalmazottak törzsadatait visszük fel vagy módosítjuk, csak konzisztens adatokat szabad megengedni, pl. érvényes légitársaságok, osztályok, területek, stb.
4-1
4-2
4-3
A légitársaság alkalmazottai adminisztrátorok (A), légi személyzet (F) és kiszolgáló személyzet (S) kategóriákba sorolhatók, amik a megfelelő tevékenységi területeknek (A, F, S) felelnek meg. Gondoskodjon róla, hogy csak érvényes tevékenységi területeket lehessen bevinni a ZTANFxxEMPLOY táblába. Definiáljon alkalmas idegen kulcsokat a ZTANFxxEMPLOY és ZTANFxxDEPMENT táblákhoz. Használja a repülési modellhez tartazó táblákat, vagy a T000 (kliens) és SCURX (pénznem) táblákat, illetve saját táblákat az idegen kulcsok definiálásához. Definiáljon idegen kulcs ellenőrzéseket a következő mezők mindegyikéhez: ZTANFxxEMPLOY-Client ZTANFxxEMPLOY-Carrier ZTANFxxEMPLOY-Részleg_kód ZTANFxxEMPLOY-Currency és ZTANFxxDEPMENTxx-Client ZTANFxxDEPMENTxx-Carrier Tartsa karban a ZTANFxxEMPLOY adatait és tesztelje az idegen kulcs kapcsolatok hatásait. A légitársaság néhány alkalmazotja utazási irodákban a repülőjegyek értékesítésével foglalkozik. Bővítse a ZTANFxxEMPLOY táblát egy mezővel, mely az utazási irodát tárolja, amelynél az alkalmazott dolgozik. Definiálja a megfelelő idegen kulcs kapcsolatot is.
Az utazási irodákat tartlmazó tábla a STRAVELAG.
4-4
5/6
Hozzon létre egy szövegtáblát ZTANFxxDEPMENTT néven a ZTANFxxDEPMENT táblához, hogy megnevezéseket lehessen kapcsolni az osztályok kódjaihoz, melyekhez a légitársaság alkalmazottai tartoznak az egyes orságokban. Hozza létre a megfelelő táblát és használja a SPRAS és S_TEXT adatelemeket a mező defínicióhoz. Definiálja a szükséges idegen kulcs kapcsolatokat.
4.gyakorlat: ABAP Dictionary Objektumok függőségei
A gyakorlatok során: • Táblákat és struktúrákat bővítünk mezőkkel. • Használjuk az R/3 Repository Információs Rendszert és a where-used listát az ABAP Dictionary objektumok kereséséhez.
A főosztály adatait kell eltárolni az alkalmazotti nyilvántertó rendszerben. A változtatási logot is sokkal részletesebbé kell tenni. A gyakorlat során a megfelelő táblákat és struktúrákat egészítjük ki a feladat megoldása érdekében.
5-1
Minden légitársaságnak van egy főosztálya. A repülési modellben a részlegek és főosztály közötti kapcsolatot le kell tárolni. Bővítse ki a ZTANFxxDEPMENT táblát a Dephead mezővel és definiáljon megfelelő idegen kulcsot a mezőhöz.
Alkalmazza a kétszintű domén elvet.
5-2
5-3
5-4 5-5
6/6
A ZTANFxxEMPLOY és ZTANFxxDEPMENT táblák változtatási logja még nem elég részletes. Az utolsó változtató és dátum mellett szükség van az utolsó változtatás időpontjára is. Használja a S_TIME adatelemet az új mezőhöz. Figyeljen oda, hogy mindkét táblába be legyen szúrva az új mező, ellenőrizze az aktiválási logot az érintett táblák és struktúrák esetén. Hozza létre a következő ABAP Dictionary objektumok listáját: 5-3-1 Összes fix értékekkel rendelkező domént, melyek neve Z-vel kezdődik. 5-3-2 Összes tábla mezőt, melyek a S_FNAME adatelemt használják. 5-3-3 A repülési modell összes tábláját (BC_DATAMODEL fejlesztési osztály) melyek kiszállítási osztálya A. Határozza meg az összes programot, melyek a SFLIGHT táblát használják. Milyen adatelemeket hoztak létre a melletted ülők?