ABAP’ ta Modülarizasyon

Program kodlarını farklı birimlere ayırarak düzenli ve anlaşır hale getirmek için farklı nesneler kullanılır. Modülarizasyon aşağıdaki nesneler kullanılarak sağlanabilir.

    Include ProgramlarFonksiyon ModüllerAltyordamlarYöntemlerMakrolar

Include

Tek başlarına çalıştırılabilir olmayan kod bloklarıdır. Programa dâhil etmek için INCLUDE anahtar kelimesi kullanılır. Tek başına çalıştırılabilir program değillerdir. Oluştururken program tipi “I” olarak seçilir.

INCLUDE include_ismi

Fonksiyon Modüller (Function Modules)

Fonksiyon gruplarına bağlı yeniden kullanılabilir prosedürlerdir. Function Builder kullanılarak oluşturulurlar. Function Builder’ da fonksiyona içerisine ve dışına aktarılan aktarılan parametreler tanımlanır. Kaynak kodu (Source code) kısmına FUNCTION ve ENDFUNCTION ifadeleri arasına kod bloğu yazılır. Gerekirse fonksiyon grubuna bağlı inlude’ larda oluşturulabilir.

Function Builder’ a SE37 işlem kodu ile erişilebilir.

Fonksiyon Modul Arayüzü

Fonksiyonda kullanılan parametrelerin tanımlandığı arayüzdür.

IMPORTING: Fonksiyon içerisine aktarılan parametrelerdir.

EXPORTING: Fonksiyondan dışarı aktarılan parametrelerdir.

CHANGING: Fonksiyon içerisine gönderilen ve gönderilen parametre üzerinde değişiklik yapılıp tekrar fonksiyon dışarısına aktarılabilen parametrelerdir.

TABLES: İnternal tablo aktarmak için kullanılır. Artık kullanılmayan parametrelerdir. Sadece geriye dönük uyum için kullanımı vardır.

ABAP kodundan fonksiyon çağrılırken IMPORTING, CHANGING ve TABLES parametreleri isteğe bağlı olarak function builder’ dan seçilebilir. EXPORTING parametreleri daima isteğe bağlıdır.

… [IMPORTING parameters]

[EXPORTING parameters]

[CHANGING parameters]

[TABLES table_parameters]

[{RAISING exc1|RESUMABLE(exc1) exc2|RESUMABLE(exc2) …}

|{EXCEPTIONS exc1 exc2 …}]

Subroutines

Bir program içerisinde modülarizasyonu sağlamak için kullanılırlar. PERFORM kullanılarak çağrılırlar. Subroutine’ ler artık kullanılmamalıdır. Bunların yerine yerel sınıflardaki metodlar kullanılmalıdır. Başka programlar tarafından da çağrılabilirler. FORM ve ENDFORM bildirimleri arasına yazılırlar. USING ve CHANGING kullanılarak parametre aktarımı yapılabilir.

DATA: num1 TYPE i,
      num2 TYPE i,
mean TYPE p DECIMALS 2.

START-OF-SELECTION.
  num1 = 4.
  num2 = 5.

PERFORM mean_value USING num1 num2
                   CHANGING mean.

FORM mean_value USING p1 TYPE i p2 TYPE i
                CHANGING result TYPE numeric.
  result = ( p1 + p2 ) / 2.
ENDFORM.

Yöntemler (Methods)

METHOD ve ENDMETHOD ifadeleri arasına yazılan kod bloklarıdır. CALL METHOD ile çağrılırlar.

MAKROLAR (Macros)

ABAP programlarında kaynak farklı birimlere ayırmak için kullanılır. DEFINE ve END-OF-DEFINATION ifadeleri arasına yazılırlar.

SEÇİM EKRANI

SEÇİM EKRANI

Kullanıcının başlangıç ekranında ve/veya seçim ölçütü girmesi için kullanılır. Standart veya bağımsız seçim ekranı oluşturulabilir. Standart seçim ekranı oluşturmak için SELECTION-SCREEN, SELECT-OPTIONS veya PARAMETERS anahtar kelimelerinden birisinin kullanılması yeterlidir. Standart seçim ekranın numarası 1000′ dir. Bağımsız seçim ekranı için ekran numarası belirtilir ve bu numara 1000 dışında olmalıdır. Program aktif edildiği zaman seçim ekranı otomatik oluşur. Seçim ekranı oluşturmak için aşağıdaki ifadeler kullanılır.

    SELECTION-SCREENSELECT-OPTIONSPARAMETERS

Seçim ekranının üretilmesi, görüntülenmesi ve alanların seçim yapılması sırasında bir dizi olay tetiklenir. Bu olaylar sırasıyla şöyledir,

    LOAD-OF-PROGRAMINITIALIZATIONAT SELECTION-SCREEN OUTPUTAT SELECTION-SCREEN …START-OF-SELECTION

LOAD-OF-PROGRAM

Programın yüklenmesi esnasında tetiklenir. Tüm program tiplerinde çalışır.

INITIALIZATION

Yürütülebilir program’ da LOAD-OF-PROGRAM olayından sonra tetiklenir.

AT SELECTION-SCREEN OUTPUT

Seçim ekranın PBO (Process Before Output) işlenmesi sırasında tetiklenir.

AT SELECTION-SCREEN …

Seçim ekranın PAI (Process After Input) işlenmesi sırasında tetiklenir. Aşağıdaki ekleri alır.

    ON parametre | secim_kriteri: Parametre veya seçim_kriteri seçilmesinden sonra tetiklenir.ON END OF secim_kriteri: Seçim kriteri tablosu programa aktarıldığında tetiklenir.ON BLOCK blok: Bloktaki tüm giriş alanları programa aktarıldığında tetiklenir.ON RADIOBUTTON GROUP grup: RADIOGROUP bileşenine ait değer programa geçtikten sonra çalışır.ON HELP-REQUEST FOR parametre | secim_kriteri-low | secim_kriteri-high: Alan için yardım seçildiğinde tetiklenir.ON VALUE-REQUEST FOR parametre | secim_kriteri-low | secim_kriteri-high: Alan için arama yardımı seçildiğinde tetiklenir.ON EXIT-COMMAND: Back, Exit, Cancel butonlarından birisi tıklandığında tetiklenir.

START-OF-SELECTION

Seçim ekranı işlemleri bitimi sonrası tetiklenir.

SEÇİM EKRANI OLUŞTURMAK İÇİN KULLANILAN İFADELER

Standart seçim ekranı oluşturmak için SELECTION-SCREEN, SELECT-OPTIONS veya PARAMETERS anahtar kelimelerinden birisinin kullanılması yeterlidir.

PARAMETERS: p_carrid TYPE spfli-carrid,
p_connid TYPE spfli-connid.

Not: Seçim ekranına eklenen parametrelerin metinlerin bakımını yapmak için Git->Metin öğeleri->Seçim metinleri menüsünü kullanabilirsiniz.

ABAP Dictionary’ de tanımlı veri tipleri için Dictionary sütunu seçilebilir gelir. Bu şekilde metin ABAP Dictionary’ de tanımlı Data element üzerinden alınır. ABAP Dictionary’ deki tanım kullanılmayacaksa checkbox seçilmeden istenilen metin yazılabilir. Metinler değiştirildikten sonra aktif edilmelidir.

 

SELECTION-SCREEN
BAĞIMSIZ SEÇİM EKRANI OLUŞTURMA

Bağımsız ekran tanımlamak için SELECTION-SCREEN BEGIN… ve SELECTION-SCREEN END… arasına ekran ifadeleri yazılır. Bağımsız ekranlarda ekran numarası belirtmek gerekir. Kullanımı aşağıdaki şekildedir.

SELECTION-SCREEN BEGIN OF SCREEN ekran_no [TITLE baslik][AS WINDOW].

ekran_ifadeleri

SELECTION-SCREEN END OF SCREEN ekran_no.

Örnek: 1001 numaralı seçim ekranı tanımlayan ve bunu popup şeklinde gösteren seçim ekranı örneği. Ekrana parametre olarak SPFLI tablosundan CARRID ve CONNID alanları yerleştirilmiştir.

SELECTION-SCREEN BEGIN OF SCREEN 1001 TITLE text-001 AS WINDOW.
PARAMETERS: p_carrid TYPE spfli-carrid,
p_connid TYPE spfli-connid.
SELECTION-SCREEN END OF SCREEN 1001.
START-OF-SELECTION.
CALL SELECTION-SCREEN ‘1001’ STARTING AT 5 5.

 

Alt ekran tanımlamak için AS SUBSCREEN eki kullanılır. Kullanımı aşağıdaki şekildedir.

SELECTION-SCREEN BEGIN OF SCREEN ekran_no AS SUBSCREEN [NO INTERVALS][NESTING LEVEL n].
ekran_ifadeleri
SELECTION-SCREEN END OF SCREEN ekran_no.

SEÇİM EKRANI İÇİN EKRAN DİZAY İFADELERİ

Aşağıdaki ifadeler SELECTION-SCREEN ifadesi ile kullanılarak seçim ekranını biçimlendirilebilir.

SKIP

Satır atlamak için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN SKIP [n].

Ekler: n atlanacak satır sayısını belirtir.

Örnek: Seçim ekranına P_CARRID alanını yerleştiren daha sonra 3 satır atlayarak P_CONNIND alanını yerleştiren örnek.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN SKIP 3.
PARAMETERS p_connid TYPE spfli-connid.
SELECTION-SCREEN END OF BLOCK bl1.

 

ULINE

Yatay çizgi için oluşturmak için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN ULINE [[/][pozisyon](uzunluk)][MODIF ID duzenlm_id].

Ekler: / yeni bir satır için kullanılır. pozisyon(uzunluk) ile belirtilen pozisyondan sonra, belirtilen uzunluk kadar çizgi çizer. MODIF ID duzenlm_id ile bileşene bir düzenleme tanıtıcısı tanımlanır.

Örnek: Seçim ekranına PA_CHCBX isimli parametre oluşturan ve altına birinci sütundan dokuzuncu sütuna kadar çizgi çizen örnek. Pozisyon ve uzunluk 1(9) ile belirtilmiştir.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN SKIP 3.
PARAMETERS pa_chkbx TYPE c AS CHECKBOX.
SELECTION-SCREEN ULINE /1(9).
SELECTION-SCREEN END OF BLOCK bl1.

 

COMMENT

Yorum satırı eklemek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN COMMENT [/][pozisyon|POS_LOW|POS_HIGH](uzunluk)

{text|{[text] FOR FIELD alan}}

[VISIBLE LENGTH g_uzunluk]

[MODIF duzenlm_id].

Ekler: / yeni bir satır için kullanılır. pozisyon(uzunluk) ile yorum için pozisyon ve uzunluk belirtilir. Text ile yorum satırında görüntülenecek metin belirtilir. VISIBLE LENGTH yorum satırının görüntülenebilir uzunluğunu belirtir. MODIF ID duzenlm_id ile bileşene bir düzenleme tanıtıcısı tanımlanır.

Örnek: Seçim ekranında yorum satırı olarak text-002 seçim metnini gösteren örnek. Metin öğesini oluşturmak için Git->Metin öğeleri->Seçim metinleri menüsünü kullanabilirsiniz veya kod satırında text-002 yazısına çift tıklayarak Seçim metinleri menüsüne gidebilirsiniz.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN SKIP 3.
PARAMETERS pa_chkbx TYPE c AS CHECKBOX.
SELECTION-SCREEN COMMENT /25(15) text-002 FOR FIELD pa_chkbx.
SELECTION-SCREEN ULINE /25(10).
SELECTION-SCREEN END OF BLOCK bl1.

 

PUSHBUTTON

Seçim ekranında buton oluşturmak için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN PUSHBUTTON [/][pozisyon](uzunluk) buton_metni
USER-COMMAND k_komutu
[VISIBLE LENGTH g_uzunluk]
[MODIF ID duzenlm_id.

Ekler: / yeni bir satır için kullanılır. pozisyon(uzunluk) ile pozisyon ve uzunluk belirtilir. buton_metni ile buton üzerinde görünecek metin belirtilir. VISIBLE LENGTH görüntülenebilir uzunluğu belirtir. MODIF ID duzenlm_id ile bileşene bir düzenleme tanıtıcısı tanımlanır.

Örnek: Seçim ekranına buton ekleyen ve tıklanıdığında mesaj penceresi görüntüleyen örnek.

TABLES sscrfields.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN SKIP 3.
PARAMETERS pa_chkbx TYPE c AS CHECKBOX.
SELECTION-SCREEN COMMENT /25(15) text-002 FOR FIELD pa_chkbx.
SELECTION-SCREEN ULINE /25(10).
SELECTION-SCREEN PUSHBUTTON /1(35) text-003 USER-COMMAND cmd.
SELECTION-SCREEN END OF BLOCK bl1.
AT SELECTION-SCREEN.
CASE sscrfields.
WHEN ‘CMD’.
MESSAGE ‘Buton 1 tıklandı.’ TYPE ‘I’.
ENDCASE.

 

BEGIN OF

BEGIN OF eki ile satır, blok ve sekme bileşenleri kullanılabilir. BEGIN OF ile kullanılabilen ekler şunlardır.

  • LINE
  • BLOCK
  • TABBED

LINE

POSITION

Aynı satıra birden fazla eleman yerleştirmek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN BEGIN OF LINE.
ekran_ifadeleri
[SELECTION-SCREEN POSITION pozisyon.
erkan_ifadeleri
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN PUSHBUTTON 1(35) text-004 USER-COMMAND cmd.
SELECTION-SCREEN POSITION 36.
SELECTION-SCREEN PUSHBUTTON 36(35) text-005 USER-COMMAND cmd.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK bl1.

 

BLOCK

Alanları belli bir bloğa dahil etmek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN BEGIN OF BLOCK blok [WITH FRAME [TITLE baslik]]
[NO INTERVALS].
ekran_ifadeleri
SELECTION-SCREEN END OF BLOCK block.

Ekler: WITH FRAME ile blok seçim ekranında çerçeve içerisine alınır. TITLE ile çerçeve başlığı belirtilir. NO INTERVALS ile blok içerisindeki seçim kriterlerinin üst limit alanları gizlenir.

TABBED

Sekme oluşturmak için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN BEGIN OF TABBED BLOCK tblock FOR n LINES.
ekran_ifadeleri
SELECTION-SCREEN TAB (uzunluk) tab USER-COMMAND ucom
[DEFAULT [PROGRAM prog] SCREEN ekran_no].
ekran_ifadeleri
SELECTION-SCREEN END OF BLOCK tblock.

Örnek: Seçim ekranında iki adet sekme oluşturan örnek. İki tane alt ekran tanımlanır ve TABBED ifadesi ile sekmelere dahil edilir.

SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
PARAMETERS: p_carrid TYPE spfli-carrid,
p_connid TYPE spfli-connid.
SELECTION-SCREEN END OF SCREEN 1001.
SELECTION-SCREEN BEGIN OF SCREEN 1002 AS SUBSCREEN.
PARAMETERS pa_chkbx TYPE c AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1002.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF TABBED BLOCK tblock FOR 3 LINES.
SELECTION-SCREEN TAB (5) tab1 USER-COMMAND cmd1 DEFAULT SCREEN 1001.
SELECTION-SCREEN TAB (5) tab2 USER-COMMAND cmd2 DEFAULT SCREEN 1002.
SELECTION-SCREEN END OF BLOCK tblock.
SELECTION-SCREEN END OF BLOCK bl1.
INITIALIZATION.
tab1 = ‘Tab 1’.
tab2 = ‘Tab 2’.
tblock-prog = sy-repid.
tblock-dynnr = 1002.
tblock-activetab = ‘CMD2’.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN ‘PUSH1’.
tblock-dynnr = 1001.
WHEN ‘PUSH2’.
tblock-dynnr = 1002.
WHEN OTHERS.
ENDCASE.
ENDCASE.

 

FUNCTION KEY

Uygulama çubuğuna buton eklemek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN FUNCTION KEY n [mvt_secenekleri].

Örnek: Seçim ekranında Yürüt butonu yanına yardım butonu ekleyen örnek.

TYPE-POOLS icon.
TABLES sscrfields.
DATA functxt TYPE smp_dyntxt.
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN FUNCTION KEY 1.
INITIALIZATION.
functxt-icon_id   = icon_system_help.
functxt-quickinfo = ‘Yardım’.
functxt-icon_text = ‘Yardım’.
sscrfields-functxt_01 = functxt.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN ‘FC01’.
MESSAGE ‘Yardım butonuna tıklandı.’ TYPE ‘I’.
WHEN OTHERS.
ENDCASE.

 

INCLUDE İfadesi

INCLUDE ifadesi ile tanımlanan parametre, seçim kriteri, yorum, buton ve blok bileşenleri başka ekranlara dahil edilebilir.

INCLUDE PARAMETERS

Parametre alanı dahil etmek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN INCLUDE PARAMETERS para
[OBLIGATORY [OFF]]
[MODIF ID modid]
[ID id].

Örnek: Daha önce tanımlanmış parametreyi 1001 numaralı ekrana dahil eden örnek.

PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN BEGIN OF SCREEN 1001.
SELECTION-SCREEN INCLUDE PARAMETERS p_carrid.
SELECTION-SCREEN END OF SCREEN 1001.
START-OF-SELECTION.
CALL SELECTION-SCREEN ‘1001’.

 

INCLUDE SELECT-OPTIONS

Seçim kriteri dâhil etmek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN INCLUDE SELECT-OPTIONS selcrit
[OBLIGATORY [OFF]]
[NO INTERVALS [OFF]]
[MODIF ID modid]
[ID id].

Örnek: Daha önce tanımlanmış seçim kriterini 1001 numaralı ekrana dahil eden örnek.

TABLES spfli.
SELECT-OPTIONS p_carrid FOR spfli-carrid.
SELECTION-SCREEN BEGIN OF SCREEN 1001.
SELECTION-SCREEN INCLUDE SELECT-OPTIONS p_carrid.
SELECTION-SCREEN END OF SCREEN 1001.
START-OF-SELECTION.
CALL SELECTION-SCREEN ‘1001’.

 

INCLUDE COMMENT

Yorum alanını dâhil etmek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN INCLUDE COMMENT [/][pozisyon](uzunluk) metin
[FOR FIELD alan]
[MODIF ID modif_id]
[ID id].

INCLUDE PUSHBUTTON

Buton dâhil etmek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN INCLUDE PUSHBUTTON [/][pozisyon](uzunluk) boton_metni
[USER-COMMAND ucom]
[MODIF ID modid]
[ID id].

INCLUDE BLOCKS

Blok dahil etmek için kullanılır. Kullanımı aşağıdaki gibidir.

SELECTION-SCREEN INCLUDE BLOCKS block [ID id].

PARAMETERS

Seçim ekranında bir değer girişine izin veren alan oluşturur.

PARAMETERS {parametre[(uzunluk)]}|{parametre [LENGTH uzunluk]}

[tip_secenekleri]

[ekran_secenekleri]

[deger_secenekleri].

Ekler: parametre ile parametre ismi belirtilir. En fazla sekiz karakter uzunluğunda olabilir. LENGTH uzunluk ile genel veri tipleri için alan ekran uzunluğu belirtir. Sayısal değerdir. Belirtilmez ise değeri 1 olarak tanımlanır. Genel veri tipleri dışındaki veri tipleri için referans gösterilen veri tipi uzunluğu kullanılır.

tip_secenekleri ile parametrenin veri tipini belirtir. Kullanımı aşağıdaki gibidir.

  • TYPE type [DECIMALS dec]: Ön tanımlı ABAP tipleri c, d, i, n, p, string, t, ve x ve genel olmayan tipler, ABAP Dictionary tipleri, global bir sınıfın veri tipi, programda tanımlanan (f veya xstring dışında) bir veri tipi olabilir. DECIMALS dec ile ABAP p veri tipinin ondalık hane uzunluğu belirtilir.
  • LIKE veri_nesnesi: ABAP Dictionary’ de tanımlı bir veri tipini belirtmek için kullanılır.
  • LIKE (isim): c tipinde ve 132 karakter uzunluğunda alan tanımlar. isim ABAP Dictionary’ de tanımlı bir structure’ ın bileşenidir. Giriş yapıldıktan sonra girilen değer 132 karakter uzunluğundaki parametre alanına aktarılır.

deger_secenekleri:

  • DEFAULT ile parametre için varsayılan değer atması yapar.
  • LOWER CASE küçük harf girilen değerleri, büyük harflere çevirmeden veri nesnesine aktarır.
  • MATCHCODE OBJECT arama yardımı tanımlanır.
  • MEMORY ID parametre_id ile parametre tanımlanır.
  • VALUE CHECK ile alana girilen değerin veri tindeki domain’de bulunup, bulunmadığı kontrol edilir veya kontrol tablosuna bakılır. ABAP Dictionary veri tipi ile referans gösterilen alanlar için kullanılabilir.

PARAMETERS: p_carrid TYPE spfli-carrid OBLIGATORY VALUE CHECK,
p_metin  TYPE c LENGTH 10 LOWER CASE DEFAULT ‘metin1’.

SELECT-OPTIONS

Seçim ekranında kriter girişi için alan oluşturur. Bu kriter mantıksal ifadelerde ve OPEN SQL koşullarında IN anahtar kelimesi ile kullanılır. Kullanımı aşağıdaki gibidir.

SELECT-OPTIONS secim_kriteri FOR {veri_nesnesi|(veri_tipi_ismi)}

[ekran_secenekleri]

[deger_secenekleri]

[NO DATABASE SELECTION].

SELECT-OPTIONS ifadesi bir seçim tablosu tanımlar. İsmi en fazla sekiz karakter uzunluğunda olabilir. Seçim tablosu birden fazla koşul içeren bir stadart internal tablodur. Bu internal tablonun başlık satırı vardır. İnternal tablonun alanları tabloda belirtilmiştir.

Alan Tip Anlamı
sign CHAR(1) I veya E değerlerini alabilir. Seçimin dâhil edileceğini veya hariç tutulacağını belirtir.
option CHAR(2) Koşul için mantıksal seçim seçenekleri içerir. “EQ”, “NE”, “GE”, “GT”, “LE”, “LT”, “CP”, ve “NP” ve high alanı boş olmadığı zaman “BT”, “NB” değerlerini alabilir.
low FOR ile kullanılan veri tipi. Alan uzunluğu maksimum 45 karakter. Aralığın alt limitini belirtir. Üst limit belirtilmezse karşılaştırma için kullanılır.
high FOR ile kullanılan veri tipi. Alan uzunluğu maksimum 45 karakter. Aralığın üst limitini belirtmek için kullanılır.

FOR {veri_nesnesi|(veri_tipi_ismi)}: Seçim tablosunda kullanılacak veri tipini belirtir. ABAP Dictionary’ de tanımlı bir veri tipi veya ABAP kodunda tanımlanmış bir veri tipi olabilir.

FOR veri_nesnesi: Low ve high (alt ve üst limit) alanlarının özelliklerini veri_nesnesi ile belirtilen veri tipinden devralır.

FOR (veri_tipi_ismi): Low ve high (alt ve üst limit) alanları için c tipinde ve 45 karakter uzunluğunda tanımlar. veri_tipi_ismi ile belirtilen ABAP Dictionary tanımlı bir structure’ ın bileşeni belirtilir. Arama yardımı, alan metinleri, alan uzunluğu belirtilen structure üzerinden devralınarak seçim ekranında gösterilir. Giriş yapıldıktan sonra girilen değer 45 karakter uzunluğundaki alanalara aktarılır.

Ekler:

ekran_secenekleri:

  • OBLIGATORY ile alt limit alanına veri girişini zorunlu yapılır.
  • NO-DISPLAY ile alan gizlenir.
  • VISIBLE LENGTH g_uzunluk ile belirtilen uzunlukta giriş alanı oluşturulur.
  • NO-EXTENSION ile çoklu seçim butonu gizlenir.
  • NO INTERVALS ile üst limit alanı gizlenir.

deger_secenekleri: DEFAULT deger1 [TO deger2] [OPTION opt] [SIGN sgn] varsayılan değer atması yapmak için kullanılır. TO deger2 üst limiti berlitir.

  • OPTION secenek ile seçim tablosundaki option sütununa başlangıç değeri tanımlanır. eq, ne, ge, gt, le, lt, cp, np, bt ve nb değerlerini alabilir.
  • SIGN sgn ile sign sütununa başlangıç değeri tanımlanır. I ve E değerlerini alabilir. I (include) dahil etme, E (exclude) hariç etme anlamındadır.
  • LOWER CASE ile kullanıcının alana girdiği küçük harfler büyük harflere çevrilmeden seçim tablosuna aktarılır.
  • MATCHCODE OBJECT arama_yardimi ile arama yardımı tanımlanır.
  • MEMORY ID parametre_id ile parametre tanımlanır.

Örnek: Basit bir SELECT-OPTIONS kullanım örneği. S_CARRID alanı için çoklu seçim butonu kaldırılmıştır. Varsayılan değer olarak AA ve UA arası değerler atanmıştır. S_CONNID alanı zorunludur ve üst limit alanı ekrandan kaldırılmıştır. S_COUNTR alanı ekranda gösterilmez.

TABLES spfli.
SELECT-OPTIONS: s_carrid FOR spfli-carrid NO-EXTENSION DEFAULT ‘AA’ TO ‘UA’,
s_connid FOR spfli-connid OBLIGATORY NO INTERVALS,
s_countr FOR spfli-countryfr NO-DISPLAY.

Örnek: P_COUNTR parametresi için arama yardımı tanımlayan ve arama yardımında SPFLI tablosundaki ilk kaydı gösteren örnek.

TYPES: BEGIN OF ty_countryfr,
carrid    TYPE spfli-carrid,
connid    TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
END OF ty_countryfr.
DATA: gt_countryfr  TYPE STANDARD TABLE OF ty_countryfr,
gt_return     TYPE STANDARD TABLE OF ddshretval,
gs_return     TYPE ddshretval.
PARAMETERS p_countr TYPE spfli-countryfr.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_countr.
REFRESH gt_countryfr.
SELECT carrid connid countryfr
FROM spfli UP TO 10 ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_countryfr.
CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
EXPORTING
retfield        = ‘COUNTRYFR’
value_org       = ‘S’
TABLES
value_tab       = gt_countryfr
return_tab      = gt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS          = 3.
READ TABLE gt_return INTO gs_return INDEX 1.
IF sy-subrc = 0.
p_countr = gs_return-fieldval.
ENDIF.