Merhabalar,
Bu yazımızda, SAP Debugger Hata Ayıklama yöntemini nasıl kullanabileceğiniz, SAP Debugger Hata Ayıklama ile ABAP programlarınızda sorunları alanları nasıl bulabileceğinizi anlatacağım.
Hangi Durumlarda SAP Abap Debugger Hata Ayıklama Kullanılır?
Standart SAP ekranlarında, yada kullandığımız standart yada z’li fonksiyonlarda veya BAPI’lerde SAP üzerinde günlük operasyonlarımızı uygularkern bir çok kez hata alabiliriz. Bazı durumlarda, bu hatanın neden kaynaklandığını öğrenebilmemiz için standart mesajlar yeterli olmayabilir, işte bu durumda SAP Abap Debugger Hata Ayıklayıcı işlevi imdadımıza yetişir.
Hata bulma yöntemleri genel olarak aşağıdaki gibi sıralanabilir. İlk olarak hatanın programın neresinde olduğunu tespit etmeliyiz. İkinci adımda ise mesajın üst kısımlarına bakarak neden bu hatayı verdiğini çözmeye çalışırız.
MESSAGE Hataları
Hata mesajı MESSAGE komutu ile veriliyor ise;
- MESSAGE komutu için break-point konulur ve tüm mesajlar taranır.
- Birçok mesaj var ise hata mesajının mesaj sınıfı veya mesaj kodu için watchpoints işaretlenir. Bu yöntemle tek adımda hatanın olduğu yeri bulabiliriz.
- SE91 işlem kodundan mesaj sınıfını ve kodu için Where User List kullanabiliriz.
- SE30 işlem kodu üzerinden Runtime Analysis programını kullanabiliriz.
Update Was Terminated Hataları
SAP Sisteminde hata aldığınız program “Update Was Terminated” hatası veriyor ise, bu hata mesajı, programların veri tabanına kaydetme sırasında hata aldığını belirtiyordur. SM13 işlem kodu üzerinden hata ayrıntıları incelenebilir. Hata verilen yerde DEBUG yapmak için DEBUGGER’da UPDATE-DEBUGGING aktif edilmelidir.
SAP Abap Debugger Hata Ayıklama Kullanımı
MESSAGE Komutu için Break-point Kullanımı
VA02 (Sipariş Değiştir) işlem kodu üzerinde bir başka kullanıcının girmiş olduğu bir satış siparişinin içerisine kendi kullanıcımız ile girmek istediğimizde SAP Sistemi otomatik olarak bize girmek istediğimiz siparişin içerisinde bir başka kullanıcının olduğunu belirten ve işlem yapmamıza izin vermeyen bir hata mesajı verecektir.
Bu durumda sipariş numarasını yazıp Enter tuşuna basmadan önce /H ile debugger aktif edilir ve Debugging Swithhed On mesajı alınırsa SAP Abap Debeugger aktif hale gelmiş demektir. Akabinde Enter tuşuna basılır ve Debugger penceresi açılır.
Enter tuşuna bastıktan sonra Abap Debugger’ın aktif hale geldiği sistem tarafından kullanıcıya bildirilir.
Enter tuşuna bastıktan sonra SAP Abap Debugger Hata Ayıklama penceresi açılır. Bu pencere içerisinde, Breakpoints –> Breakpoint at –> Breakpoint at Message
Yukarıdaki menü yolunu izledikten sonra açılan ekranda ABAP Cmnds alanına MESSAGE ibaresi yazılır.
Akabinde 3 veya 4 defa F8 butonuna basılarak aşağıdaki ekran görüntüsünde gösterildiği gibi hata mesajının olduğu yeri bulmuş oluruz.
Yukarıdaki örnekte olduğu gibi SAP Abap Debugger ekranında Abap Cmnds alanına MESSAGE anahtar kelimesini yazdığımızda, sadece debugger ekranında MESSAGE ile başlayan kod satırlarına F8 butonu yardımı ile ulaşılabilir.
Watchpoints Kullanımı
Watchpoints bir değişkenim bir X değeri aldığı anda programın durmasını sağlar. Program mesaj verdiğinde sistem alanlarında SY-MSGID mesaj sınıfı ile SY-MSGNO mesaj numarası ile ayarlanır. Debugger açıldıktan sonra bu alanlardan birine WATCHPOINTS koyabilirsiniz.
Şimdi isterseniz SAP Abap Debugger ekranında Watchpoints özelliğini nasıl kullanabileceğinizi gösterelim.
Yine bir satış siparişi içerisinde başka bir kullanıcının olduğu ortamda, bizlerde Satış Siparişi içerisine girdiğimizde aldığımız hata üzerinden yola çıkarak Watchpoints kullanımını göstereceğiz.
SAP Abap Debugger penceresini açabilmek için /H komutunu yazarak Debugger ekranını açıyoruz.
Aşağıdaki ekran görüntüsünde belirtildiği gibi Watchpoints butonuna basılır.
Watchpoints butonuna bastığımızda aşağıdaki gibi bir ekran açılır ve bu ekranda Variable alanına SY-MSGNO – Free Condition Entry alanına = ‘042’ ibaresi yazılır. Böylelikle debugger ekranında Mesaj Numarası 042 olan kod satırına watchpoints koymuş oluruz.
İlgili işlemi ok tuşu ile kayıt altına aldığımızda SAP Sistemi aşağıdaki gibi bir bilgilendirme mesajı döner.
Yukarıdaki bilgilendirme mesajını aldıktan sonra F8 butonuna basarak Mesaj ID’si 042 olan satıra otomatik olarak gitmiş oluruz.
Where Used List Kullanımı
Where Used List kullanımı aldığınız hata mesajının SAP Sisteminde özel bir işlem kodu üzerinden aranarak, bu hata kodunun geçtiği programları bulmanıza olanak sağlar.
Daha önceki örneklerimizden yola çıkarak, SAP Sisteminde farklı bir kullanıcının girmiş olduğu bir satış siparişine VA02 işlem kodunu kullanarak aynı sipariş içerisine girmek isteyen bir kullanıcı, ilgili siparişin içerisinde şuanda başka bir kullanıcının olduğunu belirten bir hata mesajı alır. Bu hata mesajının üzerine tıklayarak aşağıdaki ekran görüntüsünde belirtilen ekran açılır ve burada İleti No alanında yer alan ibareyi SE91 işlem kodunda girerek, bu hata mesajının hangi programlarda kullanıldığını görür.
Kullanıcının aldığı hata mesajından yola çıkacak olur isek;
İleti yanı mesaj numarasını V1042 olarak öğrendikten sonra SE91 işlem koduna giderek aşağıdaki gibi veri girişi yapılır.
Display butonuna basıldığında ilgili hata mesajımızın görüntüsü ekranımıza gelir. Burada hata mesajını işaretleyip Where Used List butonuna bastığınızda bu hata mesajının kullanıldığı programların isimleri listelenir.
Bir çok program ismi karşınıza çıkacağından dolayı VA02 işlem kodunun program adını(VA02 İşlem kodu üzerinde Sistem–> Durum seçeneğini seçerek Program bilgisini alıp) ilgili liste içerisinde arayabilirsiniz. Örneğin VA02 işlem kodunun program ismi SAPMV45A olduğu için SE91 işlem kodu program listesinde bu program adını aratacağız.
SE30 – Runtime Analysis ile Hata Bulma
SE30 işlem kodu programlara ait çalışma süreleri, veritabanı performansı ve program akışı gibi bir çok bilgileri barındırır. Hata ayıklamada nasıl kullanabileceğimiz konusuna gelir isek;
SE30 işlem kodunda Transaction alanına VA02 yazıp Execute butonuna basılır.
VA02’de hata mesajını aldıktan sonra programdan çıktığımızda tekrar SE30 ekranına geliriz. Gelen ekranda HIT LIST raporunda 042 ile arama yapar isek, mesajı bulabiliriz.
Filtreleme işlemimizi aşağıdaki gibi yapabiliriz.
Sonuç ekranımız aşağıdaki gibi olacaktır.
Son olarak ilgili kaydın üzerine çift tıklayarak direkt olarak ilgili hata mesajı koduna ulaşabilirsiniz.
Update Was Terminated – Hata Ayıklama
Update Was Terminated hataları UPDATE modda çalıştığından klasik hata bulma yöntemleri ile incelenemezler. Bundan dolayı program yürütülmeden önce DEBUG mod aktif edilir ve daha sonrasında aşağıdaki ekran görüntüsünde ki gibi Change modu açılır.
Bir sonraki aşamada Update Debugging seçeneğini seçeriz.
Sonrasında debug penceresinde kodlarının yetkileriniz var ise açık yani editlenebilir olarak görüntülenecektir.
Bu Konuya Ait Diğer Yazılarımız
Sosyal Medya Hesaplarımız
Bir yanıt bırakın