SAP ABAP - Değişkenler
Değişkenler, bir programın ayrılan bellek alanı içindeki değerleri depolamak için kullanılan adlandırılmış veri nesneleridir. Adından da anlaşılacağı gibi, kullanıcılar ABAP ifadeleri yardımıyla değişkenlerin içeriğini değiştirebilirler. ABAP'deki her değişkenin, değişken belleğinin boyutunu ve düzenini belirleyen belirli bir türü vardır; o hafızada saklanabilecek değerlerin aralığı; ve değişkene uygulanabilecek işlemler kümesi.
Kullanılmadan önce tüm değişkenleri bildirmelisiniz. Değişken bildiriminin temel biçimi -
DATA <f> TYPE <type> VALUE <val>.
Burada <f> bir değişkenin adını belirtir. Değişkenin adı en fazla 30 karakter uzunluğunda olabilir. <tür>, değişkenin türünü belirtir. Tam olarak belirtilen teknik özelliklere sahip herhangi bir veri türü, <tür> olarak bilinir. <val>, <f> değişkeninin başlangıç değerini belirtir. Temel sabit uzunluklu bir değişken tanımlamanız durumunda, DATA ifadesi değişkenin değerini otomatik olarak türe özgü başlangıç değeriyle doldurur. <val> için diğer olası değerler değişmez, sabit veya Is INITIAL gibi açık bir yan tümce olabilir.
Aşağıda, değişken bildirimlerinin geçerli örnekleri verilmiştir.
DATA d1(2) TYPE C.
DATA d2 LIKE d1.
DATA minimum_value TYPE I VALUE 10.
Yukarıdaki kod parçacığında, d1, C tipi bir değişkendir, d2, d1 tipi bir değişkendir ve minimum_value, ABAP tamsayı türü I değişkenidir.
Bu bölüm, ABAP'ta bulunan çeşitli değişken türlerini açıklayacaktır. ABAP'de üç tür değişken vardır -
- Statik Değişkenler
- Referans Değişkenler
- Sistem Değişkenleri
Statik Değişkenler
Statik değişkenler alt yordamlarda, işlev modüllerinde ve statik yöntemlerde bildirilir.
Kullanım ömrü, beyannamenin içeriğiyle bağlantılıdır.
'CLASS-DATA' ifadesiyle, sınıflar içindeki değişkenleri tanımlayabilirsiniz.
'PARAMETERS' ifadesi, bir seçim ekranındaki giriş alanlarına bağlanan temel veri nesnelerini bildirmek için kullanılabilir.
Ayrıca 'SELECT-OPTIONS' ifadesini kullanarak bir seçim ekranındaki giriş alanlarına bağlanan dahili tabloları da bildirebilirsiniz.
Bir değişkeni adlandırırken kullanılan kurallar aşağıdadır -
Değişkenleri adlandırmak için "t" ve "," gibi özel karakterler kullanamazsınız.
Önceden tanımlanmış veri nesnelerinin adı değiştirilemez.
Değişkenin adı, herhangi bir ABAP anahtar sözcüğü veya cümlesiyle aynı olamaz.
Değişkenlerin adı, daha fazla yoruma gerek kalmadan değişkenin anlamını taşımalıdır.
Kısa çizgiler, yapıların bileşenlerini temsil etmek için ayrılmıştır. Bu nedenle, değişken adlarında tirelerden kaçınmanız gerekir.
Alt çizgi karakteri, bileşik kelimeleri ayırmak için kullanılabilir.
Bu program, PARAMETERS deyimini kullanarak bir değişkenin nasıl tanımlanacağını gösterir -
REPORT ZTest123_01.
PARAMETERS: NAME(10) TYPE C,
CLASS TYPE I,
SCORE TYPE P DECIMALS 2,
CONNECT TYPE MARA-MATNR.
Burada, NAME, 10 karakterlik bir parametreyi temsil eder, CLASS, bayt cinsinden varsayılan boyuta sahip bir tamsayı türü parametresini belirtir, SCORE, iki ondalık basamağa kadar değerlere sahip paketlenmiş bir tür parametresini temsil eder ve CONNECT, ABAP Sözlüğünün MARA-MATNF türünü ifade eder. .
Yukarıdaki kod aşağıdaki çıktıyı üretir -
Referans Değişkenler
Referans değişkenlerini bildirmek için sözdizimi -
DATA <ref> TYPE REF TO <type> VALUE IS INITIAL.
REF TO eki, bir referans değişkeni ref bildirir.
REF TO'dan sonraki belirtim, referans değişkeninin statik türünü belirtir.
Statik tür, <ref> 'in başvurabileceği nesne kümesini sınırlar.
Dinamik referans değişken türü, halihazırda başvurduğu veri türü veya sınıfıdır.
Statik tür her zaman daha geneldir veya dinamik türle aynıdır.
TÜR ilavesi, bağlı bir referans türü oluşturmak için ve bir başlangıç değeri olarak kullanılır ve DEĞER eklemesinden sonra yalnızca IS INITIAL belirtilebilir.
Misal
CLASS C1 DEFINITION.
PUBLIC SECTION.
DATA Bl TYPE I VALUE 1.
ENDCLASS. DATA: Oref TYPE REF TO C1 ,
Dref1 LIKE REF TO Oref,
Dref2 TYPE REF TO I .
CREATE OBJECT Oref.
GET REFERENCE OF Oref INTO Dref1.
CREATE DATA Dref2.
Dref2→* = Dref1→*→Bl.
Yukarıdaki kod parçacığında, bir nesne referansı Oref ve iki veri referans değişkeni Dref1 ve Dref2 bildirilmiştir.
Her iki veri referans değişkeni de tam olarak yazılmıştır ve referans alma operatörü → * işlenen konumlarında kullanılarak referans alınabilir.
Sistem Değişkenleri
ABAP sistem değişkenlerine tüm ABAP programlarından erişilebilir.
Bu alanlar aslında çalışma zamanı ortamı tarafından doldurulur.
Bu alanlardaki değerler, sistemin herhangi bir zaman noktasındaki durumunu gösterir.
SAP'deki SYST tablosunda sistem değişkenlerinin tam listesini bulabilirsiniz.
SYST yapısının ayrı alanlarına “SYST-” veya “SY-” kullanılarak erişilebilir.
Misal
REPORT Z_Test123_01.
WRITE:/'SY-ABCDE', SY-ABCDE,
/'SY-DATUM', SY-DATUM,
/'SY-DBSYS', SY-DBSYS,
/'SY-HOST ', SY-HOST,
/'SY-LANGU', SY-LANGU,
/'SY-MANDT', SY-MANDT,
/'SY-OPSYS', SY-OPSYS,
/'SY-SAPRL', SY-SAPRL,
/'SY-SYSID', SY-SYSID,
/'SY-TCODE', SY-TCODE,
/'SY-UNAME', SY-UNAME,
/'SY-UZEIT', SY-UZEIT.
Yukarıdaki kod aşağıdaki çıktıyı üretir -
SY-ABCDE ABCDEFGHIJKLMNOPQRSTUVWXYZ
SY-DATUM 12.09.2015
SY-DBSYS ORACLE
SY-HOST sapserver
SY-LANGU EN
SY-MANDT 800
SY-OPSYS Windows NT
SY-SAPRL 700
SY-SYSID DMO
SY-TCODE SE38
SY-UNAME SAPUSER
SY-UZEIT 14:25:48