Az ABAP debuggolás rejtelmei
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.
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.

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.
Mint láthatjuk a BAJUSZ egy rendszerfelhasználó.

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.
Ha debuggolni szeretnénk a programunkat és egy break-pointot szeretnénk elhelyezni, akkor jön a szokásos hibaüzenet.
A SE37 tranzakcióval menjünk be a HTTP_DEBUG_UPDATE funkciós elembe, és rakjunk egy break-pointot az alábbi sorra:
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. 
A teendőnk csak annyi, hogy átírjuk az sy-subrc rendszerváltozót 0-ra. 
És a break-point már aktív is.
Ha most elindítjuk a webdynpro programunkat, akkor felugrik a debugger ablak és már tudjuk is debuggolni a rendszer userünket.
Í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
Lehetőség van teljesen személyre szabni a felületet, az alábbi munkaeszközök segítségével:
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.
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.
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.
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.
És megnézhetjük futásidőben az egyes nézetekhez tartozó contextek tartalmát.

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!
Nincs hozzászólása.
A téma megvitatása a fórumon. (0 hozzászólás)


