Hirdetés
 

Az ABAP debuggolás rejtelmei

PDF
Nyomtatás

Szeretnél rendszer felhasználót debuggolni, de az SAP nem engedi? Megoldjuk. Csak olvass tovább…

Hogyan debuggoljunk rendszer és kommunikációs usert?


Sokszor kerülünk olyan helyzetbe, hogy szeretnénk egy olyan felhasználót debuggolnni, aminek a típusa nem dialógus ( Például IDOC bedolgozásnál, vagy egy Internet Service hívásnál, stb..) és a felhasználó típus átállítása sem kivitelezhető, mert több szolgáltatás is használja az adott rendszer usert. Ha egy nem dialógus felhasználóra szeretnénk break-pointot rakni, akkor az ABAP editor hibaüzenetet is dob, hogy ez nem megengedett.

image001.jpg

Egy példán keresztül bemutatom, hogy hogyan lehet mégis kikerülni ezt a hibaüzenetet.
Példánkban készítettünk egy egyszerű webdynpro alkalmazást, ami annyiból áll, hogy kiírja a bejelentkezett user nevét.

image001.jpg

Ezután állítsuk be az SICF tranzakcióban (/default_host/sap/bc/webdynpro/sap/), hogy az alkalmazásunk mindig egy rendszer felhasználóval induljon el. Ezt a Bejelentkezési adatok fülön tudjuk megtenni. Itt állítsunk be egy rendszerfelhasználót, akivel az alkalmazás elindítása történik.
image001.jpg

Mint láthatjuk a BAJUSZ egy rendszerfelhasználó.

image001.jpg

Ha böngészőbe beírjuk a webdynpro alkalmazásunk elérési útját, akkor láthatjuk, hogy rendszerfelhasználóval indult el a program.
image001.jpg

Ha debuggolni szeretnénk a programunkat és egy break-pointot szeretnénk elhelyezni, akkor jön a szokásos hibaüzenet.

image001.jpg

A SE37 tranzakcióval menjünk be a HTTP_DEBUG_UPDATE funkciós elembe, és rakjunk egy break-pointot az alábbi sorra:

image001.jpg

Itt ellenőrzi a program, hogy debug képes-e az adott felhasználó.

Most irány újra a webdynpro alkalmazásunk és most próbáljuk meg a debug usert átállítani a rendszerfelhasználóra. Ekkor a debugger meg fog állni azon a soron, ahová az előbb a break-pointot raktuk. Miután a program felhívta a SUSR_CHECK_DEBUG_ABILITY függvényt az sy-subrc változó 1-es értéket kap, mivel nem dialógus felhasználót szeretnénk debuggolni.

image001.jpg

A teendőnk csak annyi, hogy átírjuk az sy-subrc rendszerváltozót 0-ra.

image001.jpg

És a break-point már aktív is.

image001.jpg

Ha most elindítjuk a webdynpro programunkat, akkor felugrik a debugger ablak és már tudjuk is debuggolni a rendszer userünket.

image001.jpg

Így megkönnyíthetjük az életünket és bármilyen típusú felhasználót fogunk tudni könnyedén debuggolni.

Az új debugger


A cikk második felében pedig az új debugger érdekességeit mutatnám be pár sorban.
Ami újdonság a régi verzióhoz képest:
Futás időben színezett programkód
A feldolgozás alatt álló IF, LOOP, SELECT blokkok kiemelése.
Külön oszlop break-point beállítására
Popup-ban megjelenik a változó értéke, ha az egeret felé gördítjük
image001.jpg

Lehetőség van teljesen személyre szabni a felületet, az alábbi munkaeszközök segítségével:
image001.jpg
Ebből párat kiemelnék:

Felhívás stack

Itt láthatjuk az ABAP stacket, azaz hogy az aktuális programkód részletet honnan milyen programból hívták meg. Ez főleg standard kód debuggolásánál hasznos, mert így azonnal látható hogy mely funkciós elemben, programban van a hiba.
image001.jpg

Változók gyorsmegjelenítése
Itt a kiválasztott változókon kívül a lokális illetve a globális változókról is kapunk egy listát. Így könnyebben kereshetünk meg egy számunkra szükséges adatot.
image001.jpg

Objektum

Objektum orientált programozás során nagy segítség ez a fül, hiszen itt láthatjuk a kiválasztott objektum osztályát, attribútumait, azt hogy ez az attribútum private, public vagy protected típusú. Illetve magát az értéket.
image001.jpg
Webdynpro fül

Webdynpro fejlesztés közben jó szolgálatot tesz ez a nézet, hiszen az egész alkalmazás felépítéséről kapunk információkat, a nézeteket, ablakokat, komponenseket láthatjuk.
image001.jpg

És megnézhetjük futásidőben az egyes nézetekhez tartozó contextek tartalmát.
image001.jpg
image001.jpg

Természetesen az új debugger még számos újdonságot tartalmaz a régihez képest, most csak a legérdekesebb funkciókat próbáltam bemutatni nektek. Bármi kérdésetek van, tegyétek fel nyugodtan a fórumon!

A szerző 2007-ben került kapcsolatba az SAP-val, azóta ABAP fejlesztőként dolgozik egy hazai nagyvállalatnál, ahol Security, MM és SD modulokban végez programozási feladatokat.

További cikkek a szerzőtől


Nincs hozzászólása.
A téma megvitatása a fórumon. (0 hozzászólás)