PTE Természettudományi Kar Programtervező- és GazdaságInformatikus Szak 7624 Pécs, Ifjúság u. 6. http://www.ttk.pte.hu/ SAP-ABAP2 02. Előadás Vaspöri Gábor SAP fejlesztő, Tel: 30/510-6351 E-mail: vaspori.gabor@gmail.com Skype: vaspori.gabor
Tartalom Névadás SY – mezők SE11 – SYST Mezőszimbólum Feladat1 SE11 – SQVI Belső táblák Egyszerű (OOP) ALV Debugger HF
Névadás a programon belül Amikor változókat, struktúrákat deklarálunk, érdemes egy megadott séma alapján haladni, hogy megkönnyítsük saját magunk, és mások dolgát Hisz könnyen előfordulhat, hogy az általunk megirt programot 5- 10 év múlva valaki másnak kell majd továbbfejleszteni. Minden érdemes az SAP aktuális irányelvei alapján dolgozni Hisz a legtöbb program amiben módosítanunk kell valamit, az SAP által készített riport Az alábbi objektumok közül mi legtöbbet a változóval, a struktúrával, illetve a belső táblával fogunk foglalkozni De idő majd a többire is sor kerül!
Mező szimbólumok Használatának legfőbb oka: PERFORMANCE Nem másolja le az egész táblát még egyszer Különösen jó akkor ha valamit változtatni kell a belső tábla mezőinek értékén Plusz mindenféle trükk (+18) FIELD-SYMBOLS: <fs> TYPE struc. LOOP AT lt_tab ASSIGNING <fs>. <fs>-mező = ‘1’. ENDLOOP. Példa: MARA! CASTING IS ASSIGNED? UNASSIGN
SYS mezők SE11: SYST tábla SY-UNAME - felhasználói azonosító, SY-DATUM - aktuális dátum, SY-UZEIT - aktuális idő, SY-SUBRC - visszatérési kód (értéke 0, ha az utolsó művelet sikeres volt) SY-ULINE - ’_’, azaz egy aláhúzás karaktert tartalmaz, SY-VLINE - : ’|’, azaz egy pipe jelet tartalmaz. Példa! (write-okkal)
Feladat1/1 A múlt órai feladat átmásolás Akinek nincs meg az másolhatja a következőt is: Z_PTTK_BLADE_GY_1_01 Majd ezek után az bejelöljük az összes checkboxot, ezzel mindent átmásolunk az új programunkba
Feladat1/2 A hiányzó adatbázis táblák miatt, új táblával ismerkedünk meg. Az SCARR tábla a légitársaságok táblája Ezzel és még párral fogunk a legtöbbet foglalkozni a félév folyamán SE11: scarr! Új szelekciós mező mivel most már másik táblával dolgozunk, aminek más a PK-ja Lekérdezés írása ( SAP ABAP 1 Tananyag) Megjelenítés Lista (később) ALV (később) OOP ALV (még később)
Queryk Queryk Adatbázis táblákat lehet vele lekérdezni, gyorsan és egyszerűen Az SAP automatikusan generálja a programot SELECTION SCREEN SELECT ALV Jogosultság kérdése, hogy ki milyen Queryt ér el Létre lehet hozni Infoset-eket, amikhez felhasználói(csoportokat) lehet rendelni Query futtatásához, létrehozásához felhasználói csoporthoz kell tartozni! A csoporthoz tartoznak a Query-k, amik meghatározzák a jogokat Tranzakciók SQ00 - Query-k létrehozása (megegyezik az SQ01-el) SQ01 - Query-k létrehozása SQ02 - InfoSet létrehozása SQ03 - Felhasználói csoportok beállítása SQ07 - SAP Query fordítása SQVI - QuickViewer
SQVI Nem SAP Query, de azzá konvertálható User specifikus (mindenki csak a sajátját látja) Mindenkinek van joga quickview-t létrehozni Join (transzparens) Automatikusan megtörténik Inner Left Outer Alias Automatikusan generálódik: Szelekciós képernyő A lekérdezés Az ALV lista (vagy sima lista)
Feladat2/1 TR: SQVI Név megadás Cím megadás Adatforrás Nézet (Bázis, Layout)
Feladat2/2 Példa ami nem működik! Nagyon nehezen működik Funkciók Ellenőrzés Táblák behívása Táblák törlése (a lekérdezésből) Alias Etc.
Feladat2/3 Módusz váltás (Bázis) Lista elemeinek kiválasztása Mik jelenjenek meg Szelekciós képernyő elemeinek kiválasztása Mikre lehessen szűrni Lent információs sáv túl egyszerű ez a tranzakció ahhoz, hogy szükség legyen rá Bal felül van a végrehajtás gomb, amivel elindíthatjuk a lekérdezést
Feladat2/4 További beállítási lehetőségek a bázis layouton. Listamező választás Ugyanaz mint a másik oldalon a checkbox, DE itt látjuk a mező - neveket is Rendezési sorrend Szelekciós mezők Adatforrás Ugyan az mint a legelején
SAP QUERY – SQ01, SQ02, SQ03 Lehetőségünk van lokális, egyedi, számolt mezők felvételére Lehetőségünk van a Query generálása után is módosítani az InfoSet-et Több felhasználó is használhatja a lekérdezést Következő óra: SAP Query-s példa???
Debugger/1 Használata Breakpoint /H Debugger mód indítás Link-shortcut (később) Csak aktív programba lehet breakpointot rakni A rossz beállítások: miatt nem mindig sikerül kiszedni a BP-t Illetve nem mindig záródik be a Debugger ablak Ilyenkor újra kell indítani a tranzakciót Mindig kell lennie egy szabad módusznak Internal BP Aki elhelyezte a BP-t, annál ugrik fel a Debugger ablak External BP Akkor ugrik fel az ablak, ha a beállított felhasználó futtatja a programot De annál fog megjelenni az ablak aki elhelyezte a BP-t
Debugger/2 Léptetők: F5 Egyet lép F6 Egy kicsit nagyobbat lép F7 Kilép az aktuális ciklusból(IF-ből,etc) F8 Végigfut (vagy megáll a következő BP-nél) Programnév Event (később) SY-SUBRC SY-TABIX Duplakatt!!! Példa!
Debugger/3 Amire duplán kattintunk az megjelenik a másik ablakban Változók Struktúrák Belső táblák Az ablakokat magunk is elrendezhetjük a beállítás gombbal! Az adatokon futás időben változtathatunk!
Debugger/3 Mező szimbólum példa Belső tábla vs. Mezőszimbólum
Házi feladat1 Quickview készítése Név: Z_HF_02_01 Cím: „Felh - Házi Feladat 02_01” Megjegyzés: „Felh - Lekérdezés” Adatforrás: Tábla-join Szelekciós képernyők mezői: SCARR-CARRID SPFLI-CITYFROM SPFLI-CITYTO SPFLI-COUNTRYFR Lista elemei: SCARR-CARRNAME SCARR-URL SPFLI-CONNID SPFLI-COUNTRYTO SPFLI-FLTIME
Házi Feladat/2 1. A korábban létrehozott tábla lekérdezése (Z_PTTK_Felh_) 2. Mező szimbólum használat 3. Egy adat módosítása 4. WRITE-okkal kiíratás 5. + pont Színes, esztétikus kiíratás Egymás alá rendezés Help: F1, www.google.com