Merhaba arkadaşlar,her programlama dilinin olduğu gibi ABAP ında bir takım syntax kuralları,önceden tanımlanmış veri tipleri var. Bu makalemizde bunları öğreneceğiz.
SYNTAX KURALLARI:
Türkçe karşılık olarak söz dizimi diye adlandırabileceğimiz syntax yapısı her programlama diline özgü o dilin doğru yazım kurallarını içerir.ABAP ında belli bir takım sytax kuralları var.
*ABAP programlama dili yazdığımız talimatların satır satır işleme sokulması ile çalışmaktadır.
*Yazılan her satır “keyword” dediğimiz tanımlayıcılar ile başlar ve nokta (.) ile biter.
*Her talimat kelimesi arası en az bir boşluk olması gereklidir.
* Talimat satırları içiçe gelebilecek şekilde yazılabilir.(döngüler,fonksiyonlar vb gibi)
*Bir satırda birden fazla talimat olabilir ya da bir talimat birden fazla satıra yazılabilir.
*ABAP editöründe kod yazarken case sensitive yoktur yani büyük küçük harfe duyarlı değildir.Ancak diğer diller gibi yazarken türkce karakterlerden kaçınmak gerekmektedir.
* ‘ : ‘ işareti baslangıcı aynı olan ABAP deyimlerinin birbirine bağlanmasına yarar.Örneğin;
WRITE : degisken1,degisken2,degisken3 .
*Yorum satırı (*) yada (“) ile başlar.
*Ayrıca netbeans deki CRTL+space in yaptığı kod tamamlama işinide burada TAB tuşu ile yapabilirsiniz.
*ABAP da kod yazarken kısa veri tipi,sınıf vs. tanımlamalarında kısa isimler vermek yerine uzun ve anlaşılır isimler tercih edilmekte.Elbette bu programcının kanaatine kalmış bir şey ancak SAP-ABAP sistemi ciddi bir takım çalıştımasını gerektirmekte ev kod anlaşılırlığı bu noktada oldukca önem arzetmekte.Örneğin global bir değişken tanımlamak için : ‘gv_degisken’ kullanılmkata ve ‘gv_ ‘ bizim için global variable ‘ı ifade ediyor.
*İmleciniz ABAP anahtar sözcüğü üzerinde iken F1 e basarsanız sistemdeki o anahtar kelime ile ilgili yardım dosyaları ve varsa örnekler görüntülenebilir.
Not:kodlama yaparken kodun düzgün görünmesi benim için çok önemli eğer sizde aynı durumdaysanız arada sırada “pretty printer” tuşunu kullanabilirisiniz.(Yada menüden : Yardımcı programlar->ayarlar->abap editör->pretty printer ile.)
VERİ TİPLERİ:
ABAP dilinde işlem yapmak için veri objelerini kullanılırız (diğer dillerdeki gibi).Bir veri objesi tanımlanırken “DATA” ile başlar “TYPE ” ile tamamlarız.
ABAP da kullanılan temel veri tipleri önceden tanımlanmış veri tipleridir.Doğrudan bu tipleri kullanabileceğimiz gibi,programın ihtiyacına göre yerel yada bütün ABAP sisteminde kullanmak üzere global tipleri kendimizde tanımlayabilirz.Yaani kendi veri türümüzü oluşturabilirz.Veri türlerini kullanarak oluşturduğumuz değişken ve sabitlere de veri nesnesi adını veriyoruz.Şimdi bu önceden tanımlanmış veri tiplerini inceleyelim:
*I : (integer) Tam sayı veri tipine ait değişkenleri tutar.Uzunluğu 4 bittir.
*F : (float) Ondalıklı sayı veri tipine aittir.Uzunluğu 8 bittir.
*P : (packaged number ) ondalıklı sayı veri tipine aittir.Ancak farkı virgülden sonra kaç basamak olacağının programcı tarafından belirlenmesidir.
*N: (numerical character) uzunluğu programcı tarafından belirlenen nümerik karakterleri tanımlamak için kulllanılan veri tipidir.’012345′ i ele alırsak 6 karakter uzunluğunda nümerik karakter türüne sahip bir veri nesnesidir.
*C: (char) harf gibi karakter tipini tanımlar.oluşturulacak olan veri nesnesinin uzunluğu programcı tarafından belirlenmelidir.
*D : (date) tarih veri türüne ait bir değişken tanımlamak için kullanılır.Formatı YYYYMMDD biçimdedir.Yani 14.08.2012 nin ifadesi 20120814 şeklinde olur.
*T : (time) Zaman türüne ait bir tiptir.Formatı HHMMSS biçimindedir.15:19 için 151900 yazarız.
*STRIG :Karakter dizisi için bir veri türüdür.Sabit bir uzunluğu yoktur değişkendir.
* XSTRING : Bit dizisi tanımlamalarında kullanılır ve değişken uzunlukludur.
Bu tiplere dair bilmemiz gerekenler, String ve xstring in uzunluğunun diğer tiplerden farklı olarak program içinde dinamik olarak oluştuğudur.Yani bu iki tip için uzunluk bir kriter değildir.Ayrıca sabit bir uzunluğa sahip olanlara tam standart veri türleri(complete types) denirken; uzunluğu programcı tarafından belirleniyor ise tam olmayan standart veri türleri(incomplete types) denir.
Topluca bir örnekle bir kaç veri tanımlarsak ;
yazdığmız veri tiplerinin run edildiğindeki görüntülerini görmek istersek WRITE komutu ile yazdırabiliriz.
* Veri tiplerini tanımlarken dikkat etmemiz gereken diğer bir şey ise global mi yoksa lokal mi olacağıdır.Veri nesnelerine isimlendirme yaparken bu ayrımı da göz önünde bulundururuz.Global veri türleri sistemdeki bütün ABAP cılar tarafından kullanılır.Global veri türleri ABAP DDIC (veri sözlüğü) tanımlanabilir yada sistemde bir veri havuzu(type-pool ) oluşturmaktır.Bu kısma structure oluşturma konusunda adım adım değineceğiz.Lokal olanlarsa sadece geçerli program içindedir ve diğerleri tarafından referans olarak kullanılamazlar.
DEĞİŞKEN TANIMLAMA
Veri tiplerini anladığımıza göre bir değişkenin nasıl tam olarak tanımlanabileceğini öğrenebiliriz.Veri objesi(yani değişken) oluşturma DATA ile başlar TYPE ile devam eder demiştik.Değişken tanımlamanın tam syntax ı aşağıdaki gibidir:
“DATA degisken_adi TYPE degisken_veri_turu LENGTH degısken_uzunlugu VALUE ilk_deger.”
Değişken tanımlarken herzaman yukarıdaki kalıba sadık kalmak zorunda değiliz.Lenght ve value duruma,ihtiyaca ve isteğe göre kod satırında yerlerini alırlar.Lenght uzunluğu belirtirken value ilk değer atamasını yapar.Uzunluk belirtmek için bir yöntem daha var oda değişken adının yanına parantez içerisinde uzunluğunu yazmak.
gv_degisken_adı(uzunluk) TYPE tipi.
Değişkenlerden sonra birde her dilde ihtiyac olan sabitler var.Örneğin bir pi sayısı gibi.ABAP da sabit bir değer tanımlamak için aşağıdaki syntax ı kullanıyoruz.
CONSTANTS c_pi_sayisi TYPE P DECIMALS 2 VALUE ’3.14′
tanımlamasını yaptığımızda virgülden sonra 2 basamak devam eden packeged number tipinde bütün program boyunca geçerli bir sabit tanımlamış oluyoruz.Değişken adının başındaki c bize bize CONSTANT olduğunu hemen ifade eder.Her değişkenin özelliği bu şekilde gösterilmelidir.
Böylelikle syntax kullanımını,veri tiplerini ve nasıl değişken/sabit tanımlanacağını öğrenmiş olduk.Dışarıdan parametre almayıda öğrendikten sonra basit uygulamalar yapmaya başlayabileceğiz.