Merhaba, bu yazımda TRACE alma ve okuma olayını anlatmaya çalışacağım.

Canias’ın hem kullanıcılarına hem de geliştiricilerine sağladığı büyük avantajlardan biri de, işlem ve kod takibini yapan TRACE sistemidir.

Trace Nasıl Alınır?

Daha önceden yazmış olduğum EDUPER uygulamasını çalıştırıyorum. Siz herhangi bir uygulamanızı çalıştırabilirsiniz.

Şimdi burada SEARCH işlemi sırasında arkada kodların nasıl çalıştığını takip etmek istiyorum. Bunun için kullanacağımız tabir Trace almak.

Trace almak için yapmamız gereken işlem,

Şimdi Trace Açıkken uygulamamız üzerinde yapmak istediğimiz işlemi yapalım.

Şimdi Trace’i kapatalım.

Trace’mizi aldık. Şimdi aldığımız bu Trace’i okumakta sıra.

TRACE –> DEVT31 kullanarak açacağız.

Trace dosyaları bölümüne böylece eriştik.

Aldığımız Trace’leri listelemek için Sistem Kullanıcı Adı kısmına kullanıcı adımızı yazıp aratıyoruz.

Dosyalarımızın isminden hangi uygulamaya ait olduğunu anlayabiliriz.

Kullanıcı adımızdan sonra gelen kısımda EDUPER şeklinde uygulama ismini görebiliyoruz.

Şimdi içeriğini görmek istediğimiz ROW’u seçelim ve Göz ile detayına girelim.

Trace dosyasının ilk satırları her Trace dosyasında standart olarak bulunan kısımlardır.

Asıl alanımıza erişelim hemen.

Şimdi adım adım bazı noktalara değinelim.

EDUPERSONAL.SEARCH >> EDUPERSONAL diyaloğunun SEARCH metodunu çalıştırmaya başladığını söylüyor.

(EDUTESTCLASS) EDUTESTCLASSREC.LISTING >> EDUTESTCLASSREC belirteci ile sınıfın LISTING metoduna eriştiğini söylüyor.

EDUTESTCLASSREC bu bir sınıf belirteciydi asıl sınıfın ismi ise hemen solunda parantez içinde veriliyor. (EDUTESTCLASS)

[(EDUTESTCLASS) EDUTESTCLASSREC.LISTING.0 10] : PARAMETERS 

PRNO[%] <= %

PRADI[%] <= %

PRSOYADI[%] <= %

PRTEL[%] <= %

PRDPT[%] <= %

PRMAIL[%] <= %

PRDGM[05.09.2017] <= DOGUMTARIHI[05.09.2017]

PRISB[05.09.2017] <= ISEBASLAMATARIHI[05.09.2017]

Parametrelerin aldıkları değerleri takip edebiliyoruz.

Bir sorgu işlemi varsa hemen üzerinde –>DB ile başlayan kısımda SQL sorgusu şeklini görebiliriz. Bu kodu oradan alıp DEVT40 üzerinde ya da SQL Server üzerinde çalıştırarak kontrol sağlayabiliriz.

->DB [SELECT * FROM EDUTESTTABLE WHERE PERSONELNO LIKE '%' 
AND PERSONELNAME LIKE '%' AND PERSONELLASTNAME LIKE '%' 
AND PHONENUMBER LIKE '%' AND DEPARTMENT LIKE '%' 
AND MAIL LIKE '%' AND BIRTHDATE <= '09.05.2017' 
AND STARTDATE <= '09.05.2017']

Burada hemen sorgunun altında işaretlediğim bölümü göreceksiniz. Burada SELECTED [1] geldi ise sorgu başarılı bir şekilde çalışmış demektir.

NOTSELECTED[1] gelirse sorgunun hiç veri getirmediğine işaret eder.

SYS_STATUS[1] dönerse sorgunun kendisinden bir hata olduğuna işaret edecektir.

Tabi bu  durumlar INSERT, DELETE VE UPDATE için SELECTED yerine INSERTED, DELETED, UPDATED şeklinde özelleşecektir.

Şimdi kodlamada bir hata yapalım ve bunu Trace’de görmeye çalışalım.

SEARCH Metodu içindeki

EDUTESTCLASSREC.LISTING(CP(PERSONELNO),CP(PERSONELADI),CP(PERSONELSOYADI),CP(TELEFONNO),CP(DEPARTMAN),CP(MAIL),DOGUMTARIHI,ISEBASLAMATARIHI);

IF NOTSELECTED THEN
	SET SHOW TO DISABLE;
	SET CHANGE TO DISABLE;
	SET NEW TO DISABLE;
	SET DELETE TO DISABLE;
ELSE
	SET SHOW TO ENABLE;
	SET CHANGE TO ENABLE;
	SET NEW TO ENABLE;
	SET DELETE TO ENABLE;
ENDIF;

SET PERSONELBILGISI TO RESIZE;

Bu kodlarda CP(PERSONELNO) yerine CP(PERSONEL) yazıp kaydediyorum.

EDUTESTCLASSREC.LISTING(CP(PERSONEL),CP(PERSONELADI),CP(PERSONELSOYADI),CP(TELEFONNO),CP(DEPARTMAN),CP(MAIL),DOGUMTARIHI,ISEBASLAMATARIHI);

IF NOTSELECTED THEN
	SET SHOW TO DISABLE;
	SET CHANGE TO DISABLE;
	SET NEW TO DISABLE;
	SET DELETE TO DISABLE;
ELSE
	SET SHOW TO ENABLE;
	SET CHANGE TO ENABLE;
	SET NEW TO ENABLE;
	SET DELETE TO ENABLE;
ENDIF;

SET PERSONELBILGISI TO RESIZE;

Görüldüğü gibi vermiş olduğumuz PERSONEL değerini bir String değer olarak türü Integer olan bir değişkene atamaya çalıştı. Burada tür dönüşümünü yapamadığı içinde hata aldık. Hatada bunu söylüyor.

Trace yolu ile hatalarımızı çok kolay bulabilir çözüme kavuşturabiliriz.

Trace ile ilgili detay bilgileri yeni yazılarımızda yeri geldikçe not olarak yazacağım.

TRACE’i Araç Çubuğuna Ekleme (Sık Kullanılanlar)

Son olarak bir kısayol oluşturmadan bahsedelim.

Trace kodlama yaparken sıklıkla kullandığımız bir uygula olduğu için bunu sık kullanılanlara eklemek mantıklı bir adım olacaktır.

Böylece Trace, Araç Çubuğuna eklenmiş olacaktır.

Trace almaya başladığımızda tıklıyoruz işlemler bittiğinde tekrar tıklayıp kapatıyoruz. Böylece Trace alma işlemi gerçekleşmiş oluyor.

Bir sonraki yazımda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.