ABAP Syntax Examples

ABAP Syntax

ABAP programlama sözdiziminde deneyimlere dayanarak bazı örneklerden bahsedeceğim. Örnekler yeni deneyimler sonucu sürekli güncellenecektir.

ABAP Syntax Examples
ABAP Syntax Examples

Fonksiyonlar

Rastgele string değerde şifre oluşturmak için, belirli bir aralıkta integer değeri oluşturmak için ve rastgele string değer oluşturmak için aşağıdaki fonksiyonları kullanabilirsiniz.

NUMBER_CHARS parametresinden uzunluk belirleyebilirsiniz.

DATA: LV_RANDOM_PWD TYPE STRING.

CALL FUNCTION 'GENERAL_GET_RANDOM_PWD'
  EXPORTING
    NUMBER_CHARS = 17
  IMPORTING
    RANDOM_PWD   = LV_RANDOM_PWD.

RANGE parametresinden aralık belirleyebilirsiniz.

DATA: LV_RANDOM TYPE I.

CALL FUNCTION 'GENERAL_GET_RANDOM_INT'
  EXPORTING
    RANGE  = 13
  IMPORTING
    RANDOM = LV_RANDOM.

NUMBER_CHARS parametresinden uzunluğunu belirleyebilirsiniz.

DATA: LV_STRING TYPE STRING.

CALL FUNCTION 'GENERAL_GET_RANDOM_STRING'
  EXPORTING
    NUMBER_CHARS  = 16
  IMPORTING
    RANDOM_STRING = LV_STRING.

Syntax

Sabit bir değişken ile başlangıç değeri belirlemek için CONSTANTS ifadesini kullanabilirsiniz.

CONSTANTS : C_DATE TYPE SY-DATUM VALUE '20201228'.

ALPHA dönüştürme rutininden örnek ile bahsedecek olursak; malzeme numarasının başındaki sıfırları OUT parametresi ile temizleyebilir, IN parametresi ile de değişken uzunluğu kadar boşluk kalan kısımları sıfır ile doldurabilirsiniz.

DATA(LV_MATNR) = '000000000000100000013'.

WRITE:/ | { LV_MATNR ALPHA = OUT } |.
WRITE:/ | { LV_MATNR ALPHA = IN } |.

"Tarih dönüşümlerini ise aşağıdaki gibi kullanabiliriz.

DATA: P_DATE TYPE SY-DATUM VALUE '20201228'.
WRITE:/ | { P_DATE DATE = ISO } |.
WRITE:/ | { P_DATE DATE = USER } |.
WRITE:/ | { P_DATE DATE = ENVIRONMENT  } |.

String bir ifade içerisindeki karakterleri örneğin; Ç’yi c’ye dönüştürmek için TRANSLATE ifadesini USING ile kullanabilirsiniz.

DATA : LV_CONVERT(70) TYPE C VALUE 'ÇCĞGŞSÖOÜUİIçcğgşsöoüuıi',
       LV_TEXT        VALUE 'Çünkü, sağlam, aşmak.'.

TRANSLATE LV_TEXT USING LV_CONVERT.

String bir ifade içerisindeki harflerin büyük veya küçük harf durumunu da değiştirmek için TO UPPER/LOWER CASE ifadelerini kullanabilirsiniz.

TRANSLATE LV_TEXT TO UPPER CASE.

İki veya daha fazla değişkeni birleştirme yöntemi için aşağıda belirtilen söz dizimini kullanabilirsiniz.

DATA(LV_TEXT1) = 'ABAP'.
DATA(LV_TEXT2) = 'Programlama'.

DATA(LV_SONUC) = | { LV_TEXT1 } { LV_TEXT2 } { SY-SUBRC } |.

WRITE:/ LV_SONUC.

ABAP APPEND Statement

ABAP’da APPEND ifadesi, varolan dahili tabloya satır ekler. APPEND ifadesi, satır bilgilerini tabloya eklemek için çalışma alanını kullanır. Verileri ise dahili tablonun son satırından sonra ekler. Çalışma alanı, başlık satırı veya dahili tablo ile aynı yapıya sahip başka satır olabilir.

APPEND [calisma-alani] TO <dahili-tablo>.

Bir tablonun satırlarını diğerine ekleme yöntemi ise aşağıdaki gibidir.

APPEND LINE OF <dahili-tablo1> TO <dahili-tablo2>.

Döngü içerisinde satır satır eklemekten daha fazla performanslıdır. APPEND ifadesinden sonra, SY-TABIX sistem alanı, eklenen son satırın dizinini içerir.

TYPES: BEGIN OF TY_MATERIAL,
         MATNR TYPE MARA-MATNR,
         MATKL TYPE MARA-MATKL,
       END OF TY_MATERIAL.

DATA: WA_MATERIAL TYPE TY_MATERIAL,
      LT_MATERIAL TYPE TABLE OF TY_MATERIAL.

WA_MATERIAL-MATNR = '123456789'.
WA_MATERIAL-MATKL = 'Test'.

APPEND WA_MATERIAL TO LT_MATERIAL.

SELECT MATNR, MATKL FROM MARA UP TO 10 ROWS INTO TABLE @DATA(WT_MATERIAL).

APPEND LINES OF WT_MATERIAL TO LT_MATERIAL.

CLEAR: WA_MATERIAL.
LOOP AT LT_MATERIAL INTO WA_MATERIAL.

  WRITE:/ WA_MATERIAL-MATNR, WA_MATERIAL-MATKL.

  CLEAR: WA_MATERIAL.
ENDLOOP.
Append statement result
Ekran çıktısı.

Sayısal Fonksiyonlar

NMIN ve NMAX fonksiyonları ile belirtilen değerlerin en büyüğünü veya en küçüğünü değişkene döndürebilirsiniz. Bu fonksiyonlar en fazla 9 değer alabilir.

DATA(LV_MIN) = NMIN( VAL1 = 16 VAL2 = 13 VAL3 = 26 VAL4 = 23 ).

DATA(LV_MAX) = NMAX( VAL1 = 16 VAL2 = 13 VAL3 = 26 VAL4 = 23 ).

WRITE:/ 'Maximum:', LV_MAX, 'Minimum:', LV_MIN.

ABAP POPUP fonksiyon modülleri yazımı okumak için tıklayabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Sitemizde en iyi deneyimi yaşamanızı sağlamak için çerezler kullanmaktadır.