POPUP FONKSİYONLARI

POPUP_TO_INFORM

Ekranda en az 2 en fazla 4 satırlık bilgi gösteren popup pencere açar. Pencere başlığı ve 4 satırlık bilgi için 4 ayrı parametre alır.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
TITEL X Pencere başlık metni
TXT1 X Birinci satır metni
TXT2 X İkinci satır metni
TXT3 SPACE X X Üçüncü satır metni
TXT4 SPACE X X Dördüncü satır metni

DATA : lv_titel(35),
lv_txt1(80),
lv_txt2(80),
lv_txt3(80),
lv_txt4(80).
lv_titel = ‘Pencere başlığı’.
lv_txt1  = ‘Birinci satır’.
lv_txt2  = ‘İkinci satır’.
lv_txt3  = ‘Üçüncü satır’.
lv_txt4  = ‘Dördüncü satır’.
CALL FUNCTION ‘POPUP_TO_INFORM’
EXPORTING
titel         = lv_titel
txt1          = lv_txt1
txt2          = lv_txt2
txt3          = lv_txt3
txt4          = lv_txt4.

POPUP_TO_CONFIRM_DATA_LOSS

Saklanmayan bilgilerin kaybolacağı ile ilgili uyarı veren popup ekran açar. Kullanıcı “Evet”, “Hayır” veya “İptal” butonlarından birisini seçerek iletiyi onaylayabilir. Kullanıcının tıkladığı buton “ANSWER” parametresi ile fonksiyondan döner.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
DEFAULTOPTION ‘J’ X X Varsayılan seçim butonu
TITEL X Pencere başlık metni
START_COLUMN LIKE SY-CUCOL 25 X X Pencerenin başlangıç pozisyonu (sütun)
START_ROW LIKE SY-CUROW 6 X X Pencerenin başlangıç pozisyonu (satır)
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
ANSWER X Seçilen buton değeri

DATA : lv_titel(70),
lv_answer(1).
lv_titel = ‘Pencere başlığı’.
CALL FUNCTION ‘POPUP_TO_CONFIRM_DATA_LOSS’
EXPORTING
defaultoption       = ‘Y’
titel               = lv_titel
start_column        = 25
start_row           = 6
IMPORTING
answer              = lv_answer.
WRITE lv_answer.

Bir buton seçildikten sonra ekrana seçilen butonu yazar.

POPUP_TO_CONFIRM

Kullanıcıdan teyit almak için kullanılır. Pencere başlığı, 2 satırlık metin alanı, uyarı ikonu ve pencere ekran pozisyonu gibi parametreler alır. Tıklanan buton “ANSWER” parametresi ile fonksiyondan döner.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
TITLEBAR SPACE X X Pencere başlık metni
DIAGNOSE_OBJECT LIKE DOKHL-OBJECT SPACE X X Dökümantasyon nesnesi
TEXT_QUESTION X Soru metni
TEXT_BUTTON_1 ‘Ja'(001) X X Birinci buton metni
ICON_BUTTON_1 LIKE ICON-NAME SPACE X X Birinci buton ikonu
TEXT_BUTTON_2 ‘Nein'(002) X X İkinci buton metni
ICON_BUTTON_2 LIKE ICON-NAME SPACE X X İkinci buton ikonu
DEFAULT_BUTTON ‘1’ X X Varsayılan seçim butonu
DISPLAY_CANCEL_BUTTON ‘X’ X X İptal butonunu göster
USERDEFINED_F1_HELP LIKE DOKHL-OBJECT SPACE X X Kullanıcı tanımlı yardım için doküman nesnesi
START_COLUMN LIKE SY-CUCOL 25 X X Pencerenin başlangıç pozisyonu (sütun)
START_ROW LIKE SY-CUROW 6 X X Pencerenin başlangıç pozisyonu (satır)
POPUP_TYPE LIKE ICON-NAME X X Popup ikonu
IV_QUICKINFO_BUTTON_1 TYPE TEXT132 SPACE X Mouse birinci butonun üzerinde iken görüntülenecek metin
IV_QUICKINFO_BUTTON_2 TYPE TEXT132 SPACE X Mouse ikinci butonun üzerinde iken görüntülenecek metin
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
ANSWER X Seçilen buton değeri
EXCEPTIONS
Exception Tanım
TEXT_NOT_FOUND

Örnek 1: Basit bir teyit alma örneği.

REPORT zpp_r_test.
DATA lv_answer(1).
CALL FUNCTION ‘POPUP_TO_CONFIRM’
EXPORTING
titlebar  = ‘Uyarı’
text_question         = ‘Devam etmek istiyor musunuz?’
iv_quickinfo_button_1 = ‘Birinci buton bilgilendirme metni’
IMPORTING
answer        = lv_answer.
WRITE lv_answer.

Bir buton seçildikten sonra ekrana seçilen butonun değerini yazar.

Örnek 2: Doküman metni gösteren ve pencere pozisyonu değiştirilen bir teyit alma örneği.

DATA lv_answer(1).
DATA : lt_parameter TYPE STANDARD TABLE OF spar,
ls_parameter TYPE spar.
ls_parameter-param = ‘M1’.
ls_parameter-value = ‘— Metin parametresi —‘.
APPEND ls_parameter TO lt_parameter.
CALL FUNCTION ‘POPUP_TO_CONFIRM’
EXPORTING
titlebar = ‘Uyarı’
diagnose_object         = ‘BZAL_MSG1’
text_question           = ‘Devam etmek istiyor musunuz?’
display_cancel_button   = ‘X’
start_column            = 30
start_row               = 10
IMPORTING
answer                  = lv_answer
TABLES
parameter               = lt_parameter.
WRITE lv_answer.

Bir buton seçildikten sonra ekrana seçilen butonun değerini yazar.

Örnek 3: Buton üzerinde ikon gösteren bir teyit alma örneği.

DATA lv_answer(1).
CALL FUNCTION ‘POPUP_TO_CONFIRM’
EXPORTING
titlebar  = ‘Uyarı’
text_question               = ‘Tüm kayıtlar silinecek!’
text_button_1               = ‘Sil’
icon_button_1               = ‘ICON_DELETE’
text_button_2               = ‘İptal’
icon_button_2               = ‘ICON_CANCEL’
default_button              = ‘2’
display_cancel_button       = ‘ ‘
IMPORTING
answer                      = lv_answer
EXCEPTIONS
text_not_found              = 1
OTHERS                      = 2.
WRITE lv_answer.

Bir buton seçildikten sonra ekrana seçilen butonun değerini yazar.

Örnek 4: Popup parametresi eklenmiş başka bir örnek.

DATA lv_answer(1).
CALL FUNCTION ‘POPUP_TO_CONFIRM’
EXPORTING
titlebar      = ‘Uyarı’
text_question         = ‘Çıkmak için iptale tıklayın’
text_button_1         = ‘Devam’
icon_button_1         = ‘ICON_CHECKED’
text_button_2         = ‘İptal’
icon_button_2         = ‘ICON_CANCEL’
display_cancel_button = ‘ ‘
popup_type            = ‘ICON_MESSAGE_ERROR’
IMPORTING
answer                = lv_answer.
WRITE lv_answer.

Bir buton seçildikten sonra ekrana seçilen butonun değeri yazılır.

POPUP_GET_VALUES

Popup pencereye eklenen alanlardan değerler alınmasını sağlar. Değer kontrolü, pencere başlığı, pencere pozisyonu parametrelerini alır. “RETURNCODE” parametresi döner. “FIELDS” internal tablosu ile ekranda gösterilecek alan bilgileri fonksiyona aktarılır. Seçilen değer yine “FIELDS” tablosundan geri döner.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
NO_VALUE_CHECK SPACE X X Veri tipi kontrolü yapılmamasını sağlar
POPUP_TITLE X Pencere başlık metni
START_COLUMN ‘5’ X X Pencerenin başlangıç pozisyonu (sütun)
START_ROW ‘5’ X X Pencerenin başlangıç pozisyonu (satır)
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
RETURNCODE X Kullanıcı yanıtı
TABLES
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
FIELDS LIKE SVAL Popup’ ta gösterilecek alanları, özellikler ve değerleri tutar
EXCEPTIONS
Exception Tanım
ERROR_IN_FIELDS Alan bilgilerinde hata var

Örnek: SPFLI tablosundan uçuş hava yolu ve uçuş bağlantı numarası alanından değer alan örnek.

DATA : gt_fields TYPE STANDARD TABLE OF sval,
gs_fields TYPE sval,
gv_returncode(1) TYPE c.
gs_fields-tabname   = ‘SPFLI’ .
gs_fields-fieldname = ‘CARRID’ .
gs_fields-field_obl = ‘X’ .
APPEND gs_fields TO gt_fields.
CLEAR gs_fields.
gs_fields-tabname   = ‘SPFLI’ .
gs_fields-fieldname = ‘CONNID’ .
APPEND gs_fields TO gt_fields.
CALL FUNCTION ‘POPUP_GET_VALUES’
EXPORTING
no_value_check        = ‘ ‘
popup_title           = ‘Uçuş seçiniz’
start_column          = ‘5’
start_row             = ‘5’
IMPORTING
returncode            = gv_returncode
TABLES
fields               = gt_fields
EXCEPTIONS
error_in_fields       = 1
OTHERS                = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT gt_fields INTO gs_fields.
WRITE :/ ‘Alan ismi:’ ,gs_fields-fieldname,
‘Alan değeri:’, gs_fields-value.
ENDLOOP.

Seçim yapıldıktan sonra değerler ekrana yazdırılır.

POPUP_TO_DECIDE_LIST

Bir liste içerisinden seçim yapılmasını sağlar. Pencere başlığı, 3 satırlık metin alanı, pencere ekran pozisyonu gibi parametreler alır. Seçilen diğer “ANSWER” parametresi ve “t_spopli” internal tablosu ile fonksiyondan döner.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
CURSORLINE LIKE SY-LILLI 1 X X Varsayılan liste satırı
MARK_FLAG SPACE X X Checkbox şeklinde seçim yapılmasını sağlar. Birden fazla seçim yapılabilir
MARK_MAX 1 X X MARK_FLAG ‘X’ parametresi ile kullanıldığında maksimum seçim yapılabilecek satırı sayısı.
START_COL LIKE SY-CUCOL 0 X X Pencerenin başlangıç pozisyonu (sütun)
START_ROW LIKE SY-CUROW 0 X X Pencerenin başlangıç pozisyonu (satır)
TEXTLINE1 X İlk metin alanı
TEXTLINE2 SPACE X X İkinci metin alanı
TEXTLINE3 SPACE X X Üçüncü metin alanı
TITEL X Pencere başlık metni
DISPLAY_ONLY SPACE X X Sadece liste değerlerini gösterir. Seçim yapılmasına izin vermez.
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
ANSWER X Seçilen buton değeri
TABLES
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
T_SPOPLI LIKE SPOPLI Seçim listesi ve seçilenlerin olduğu tablo
EXCEPTIONS
Exception Tanım
NOT_ENOUGH_ANSWERS
TOO_MUCH_ANSWERS
TOO_MUCH_MARKS

Örnek 1: Bir listeden yalnızca bir seçime izin veren örnek.

DATA : lt_sel_tab TYPE STANDARD TABLE OF spopli,
ls_sel_tab TYPE spopli,
lv_answer(1).
ls_sel_tab-varoption = ‘Seçenek 1’.
APPEND ls_sel_tab TO lt_sel_tab.
ls_sel_tab-varoption = ‘Seçenek 2’.
APPEND ls_sel_tab TO lt_sel_tab.
CALL FUNCTION ‘POPUP_TO_DECIDE_LIST’
EXPORTING
cursorline               = 1
start_col                = 60
start_row                = 4
textline1                = ‘Satır 1’
textline2                = ‘Satır 2’
titel                    = ‘Seçim yapınız’
IMPORTING
answer                   = lv_answer
TABLES
t_spopli                 = lt_sel_tab
EXCEPTIONS
not_enough_answers       = 1
too_much_answers         = 2
too_much_marks           = 3
OTHERS                   = 4.
WRITE lv_answer.

Listeden seçim yaptıktan sonra ekrana seçilen satır numarasını yazar.

Örnek2: Bir listeden birden fazla seçim yapılabilmesine olanak sağlayan örnek.

DATA : lt_sel_tab TYPE STANDARD TABLE OF spopli,
ls_sel_tab TYPE spopli,
lv_answer(1).
ls_sel_tab-varoption = ‘Seçenek 1’.
APPEND ls_sel_tab TO lt_sel_tab.
ls_sel_tab-varoption = ‘Seçenek 2’.
APPEND ls_sel_tab TO lt_sel_tab.
ls_sel_tab-varoption = ‘Seçenek 3’.
APPEND ls_sel_tab TO lt_sel_tab.
ls_sel_tab-varoption = ‘Seçenek 4’.
APPEND ls_sel_tab TO lt_sel_tab.
CALL FUNCTION ‘POPUP_TO_DECIDE_LIST’
EXPORTING
cursorline               = 2
mark_flag                = ‘X’
mark_max                 = 4
start_col                = 60
start_row                = 10
textline1                = ‘Açıklama satırı 1’
titel                    = ‘Seçim yapınız’
IMPORTING
answer                   = lv_answer
TABLES
t_spopli                 = lt_sel_tab
EXCEPTIONS
not_enough_answers       = 1
too_much_answers         = 2
too_much_marks           = 3
OTHERS                   = 4.
LOOP AT lt_sel_tab INTO ls_sel_tab WHERE selflag = ‘X’.
WRITE / ls_sel_tab-varoption.
ENDLOOP.

Listeden seçilenler daha sonra ekrana yazdırılırlar.

POPUP_WITH_TABLE_DISPLAY

Bir tablo içerisinden bir satırın seçilmesini sağlar. Pencere başlığı, başlangıç, bitiş pozisyonu ve gösterilecek tabloyu parametre olarak alır. Seçilen satırı “CHOISE” parametresi ile döner.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
ENDPOS_COL TYPE INT4 X Pencerenin bitiş pozisyonu (sütun)
ENDPOS_ROW TYPE INT4 X Pencerenin bitiş pozisyonu (satır)
STARTPOS_COL TYPE INT4 X Pencerenin başlangıç pozisyonu (sütun)
STARTPOS_ROW TYPE INT4 X Pencerenin başlangıç pozisyonu (satır)
TITLETEXT TYPE CHAR80 X Pencere başlık metni
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
CHOISE LIKE SY-TABIX X Seçilen satır numarası
TABLES
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
VALUETAB Seçim tablosu
EXCEPTIONS
Exception Tanım
BREAK_OFF

TYPES: BEGIN OF ly_valuetab,
alan1(40),
alan2(40),
END OF ly_valuetab.
DATA : lt_valuetab TYPE STANDARD TABLE OF ly_valuetab,
ls_valuetab TYPE ly_valuetab,
lv_choise   TYPE sy-tabix.
ls_valuetab-alan1 = ‘Birinci satır, birinci sütun’.
ls_valuetab-alan2 = ‘Birinci satır, ikinci sütun’.
APPEND ls_valuetab TO lt_valuetab.
ls_valuetab-alan1 = ‘İkinci satır, birinci sütun’.
ls_valuetab-alan2 = ‘İkinci satır, ikinci sütun’.
APPEND ls_valuetab TO lt_valuetab.
CALL FUNCTION ‘POPUP_WITH_TABLE_DISPLAY’
EXPORTING
endpos_col         = 80
endpos_row         = 5
startpos_col       = 1
startpos_row       = 1
titletext          = ‘Seçim yapınız’
IMPORTING
choise             = lv_choise
TABLES
valuetab           = lt_valuetab
EXCEPTIONS
break_off           = 1
OTHERS              = 2.
WRITE lv_choise.

Listeden bir seçim yaptıktan sonra, seçilen satır numarası ekrana yazdırılır.

REUSE_ALV_POPUP_TO_SELECT

Bir tablo içerisinden bir veya daha fazla seçim yapılmasını sağlar veya sadece tabloyu görüntüler. Pencere başlığı, başlangıç, bitiş pozisyonu ve gösterilecek tablo gibi parametreler alır. Seçilen satırı “ES_SELFIELD” parametresi ile döner.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
I_TITLE X X Pencere başlık metni
I_SELECTION ‘X’ X X Gösterilen listeden seçim yapılmasına izin verir
I_ALLOW_NO_SELECTION TYPE CHAR1 X X Bir değer seçilmeden de devam edilmesini sağlar
I_ZEBRA SPACE X X Gölgeli gösterimi sağlar.
I_SCREEN_START_COLUMN 0 X X Pencerenin başlangıç pozisyonu (sütun)
I_SCREEN_START_LINE 0 X X Pencerenin başlangıç pozisyonu (satır)
I_SCREEN_END_COLUMN 0 X X Pencerenin bitiş pozisyonu (sütun)
I_SCREEN_END_LINE 0 X X Pencerenin bitiş pozisyonu (satır)
I_CHECKBOX_FIELDNAME X X Checkbox olarak gösterilecek alan
I_LINEMARK_FIELDNAME X X Satır seçimindeki renk bilgisi
I_SCROLL_TO_SEL_LINE ‘X’ X X Varsayılan seçime yönlendirme
I_TABNAME X Gösterilecek tablo
I_STRUCTURE_NAME LIKE DD02L-TABNAME X X Gösterilecek tablo structure’ ı
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV X X Gösterilecek tablo field catalogu’ u
IT_EXCLUDING TYPE SLIS_T_EXTAB X X Gizlenecek ALV fonksiyonları
I_CALLBACK_PROGRAM LIKE SY-REPID X X Fonksiyonu çalıştıran program
I_CALLBACK_USER_COMMAND TYPE SLIS_FORMNAME X X USER_COMMAND kullanılacaksa alt rutin ismi
IS_PRIVATE TYPE SLIS_DATA_CALLER_EXIT X X Sadece dahili kullanım göstergesi
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
ES_SELFIELD TYPE SLIS_SELFIELD X Seçilen satır bilgileri
E_EXIT X Kullanıcı tarafından iptal edildi göstergesi
TABLES
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
T_OUTTAB Seçim tablosu
EXCEPTIONS
Exception Tanım
PROGRAM_ERROR Program hatası

Örnek 1: Seçim yapılmasına izin vermeyen sadece tablo içeriğini gösteren örnek.

DATA lt_spfli TYPE STANDARD TABLE OF spfli.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE lt_spfli.
CALL FUNCTION ‘REUSE_ALV_POPUP_TO_SELECT’
EXPORTING
i_title              = ‘Uçuş bilgileri’
i_allow_no_selection = ‘X’
i_tabname            = ‘SPFLI’
i_structure_name     = ‘SPFLI’
i_zebra              = ‘X’
TABLES
t_outtab             = lt_spfli
EXCEPTIONS
program_error        = 1
OTHERS               = 2.

Örnek 2: ALV içerisinde seçilen satır numarasını gösteren örnek.

TYPE-POOLS: slis.
DATA: lt_outtab   TYPE spfli OCCURS 0,
ls_selfield TYPE slis_selfield,
lv_exit(1).
START-OF-SELECTION.
SELECT * FROM spfli INTO TABLE lt_outtab.
CALL FUNCTION ‘REUSE_ALV_POPUP_TO_SELECT’
EXPORTING
i_title                 = ‘Seçim yapınız’
i_selection             = ‘X’
i_zebra                 = ‘ ‘
i_screen_start_column   = 0
i_screen_start_line     = 0
i_screen_end_column     = 0
i_screen_end_line       = 0
i_scroll_to_sel_line    = ‘X’
i_tabname               = ‘LT_OUTTAB’
i_structure_name        = ‘SPFLI’
IMPORTING
es_selfield             = ls_selfield
e_exit                  = lv_exit
TABLES
t_outtab                = lt_outtab
EXCEPTIONS
program_error           = 1
OTHERS                  = 2.
WRITE ls_selfield-tabindex.

Listeden bir seçim yaptıktan sonra, seçilen satır numarası ekrana yazdırılır.

Örnek 3: ALV içerisinde mara tablosundan ilk 10 kayıt gösterilir. Seçilen malzeme kodu “MM03” işlem koduna aktarılır ve malzeme bilgileri gösterilir.

TYPE-POOLS slis.
DATA: lt_mara TYPE STANDARD TABLE OF mara,
ls_mara TYPE mara.
DATA: lv_selfield TYPE slis_selfield,
lv_exit TYPE c.
SELECT * UP TO 10 ROWS INTO TABLE lt_mara FROM mara.
CALL FUNCTION ‘REUSE_ALV_POPUP_TO_SELECT’
EXPORTING
i_title          = ‘Malzeme seçimi’
i_tabname        = ‘LT_MARA’
i_structure_name = ‘MARA’
IMPORTING
es_selfield      = lv_selfield
e_exit           = lv_exit
TABLES
t_outtab         = lt_mara.
IF lv_exit IS INITIAL.
READ TABLE lt_mara INTO ls_mara INDEX lv_selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID ‘MAT’ FIELD ls_mara-matnr.
CALL TRANSACTION ‘MM03’ AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.

Örnek 4: Seçim yapılacak ALV içerisinde tanımlı dil anahtarları gösterilir. ALV’ de T002 tablosunun tüm alanları değil field cataloga eklenen alanlar gösterilir. Seçilen dil anahtarına göre yeni bir ALV içerisinde seçim yapılan dili kullanan ülkeler gösterilir.

TYPE-POOLS: slis.
TYPES: BEGIN OF t_t002,
checkbox TYPE c,
spras    TYPE t002-spras,
sptxt    TYPE t002t-sptxt,
END OF t_t002.
DATA : lt_t002 TYPE STANDARD TABLE OF t_t002,
lt_t005 TYPE STANDARD TABLE OF t005.
TYPES: t_fieldcat  TYPE slis_fieldcat_alv,
t_layout    TYPE slis_layout_alv.
DATA : ls_fieldcat TYPE t_fieldcat,
ls_layout   TYPE t_layout.
DATA lt_fieldcat TYPE STANDARD TABLE OF t_fieldcat.
DATA lv_program TYPE sy-repid.
CLEAR: ls_fieldcat, lt_fieldcat[].
ls_fieldcat-fieldname = ‘SPRAS’.
ls_fieldcat-tabname   = ‘LT_T002’.
ls_fieldcat-seltext_m = ‘Dil Anahtarı’.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = ‘SPTXT’.
ls_fieldcat-tabname   = ‘LT_T002’.
ls_fieldcat-seltext_m = ‘Tanım’.
APPEND ls_fieldcat TO lt_fieldcat.
SELECT a~spras sptxt
FROM t002 AS a
INNER JOIN t002t AS b ON a~spras = b~sprsl
INTO CORRESPONDING FIELDS OF TABLE lt_t002
WHERE b~spras = sy-langu.
CALL FUNCTION ‘REUSE_ALV_POPUP_TO_SELECT’
EXPORTING
i_title              = ‘Seçim yapınız’
i_tabname            = ‘LT_T002’
i_checkbox_fieldname = ‘CHECKBOX’
it_fieldcat          = lt_fieldcat
i_callback_program   = lv_program
TABLES
t_outtab             = lt_t002.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CHECK sy-subrc =  0.
DELETE lt_t002 WHERE checkbox NE ‘X’.
SELECT *
FROM t005
INTO CORRESPONDING FIELDS OF TABLE lt_t005
FOR ALL ENTRIES IN lt_t002
WHERE spras = lt_t002-spras.
lv_program = sy-repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = lv_program
i_structure_name   = ‘T005’
TABLES
t_outtab           = lt_t005.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

Resmi dili seçilen değer olan ülkeler listelenir.

Örnek 5: Üç satır ve bir sütundan oluşan, bazı ALV fonksiyonları gizlenmiş bir örnek. Sadec

TYPE-POOLS:  slis.
TYPES: BEGIN OF t_outtab,
text(60) TYPE c,
END OF t_outtab.
DATA: lt_outtab    TYPE STANDARD TABLE OF t_outtab,
ls_outtab    TYPE t_outtab,
lt_fieldcat  TYPE slis_t_fieldcat_alv,
ls_fieldcat  TYPE slis_fieldcat_alv,
lt_excluding TYPE slis_t_extab,
ls_excluding TYPE slis_extab,
lv_exit      TYPE c.
ls_outtab-text = ‘İlk satır’.     APPEND ls_outtab TO lt_outtab.
ls_outtab-text = ‘İkinci satır’.  APPEND ls_outtab TO lt_outtab.
ls_outtab-text = ‘Üçüncü satır’.  APPEND ls_outtab TO lt_outtab.
ls_fieldcat-col_pos    = 1.
ls_fieldcat-fieldname  = ‘TEXT’.
ls_fieldcat-outputlen  = 60.
ls_fieldcat-seltext_m  = ‘Açıklamalar’.
APPEND ls_fieldcat TO lt_fieldcat.
ls_excluding-fcode = ‘&ETA’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘%SC’.  APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘%SC+’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&OUP’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&ODN’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&ILT’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&OL0’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&CRB’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&CRL’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&CRR’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&CRE’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&ALL’. APPEND ls_excluding TO lt_excluding.
ls_excluding-fcode = ‘&SAL’. APPEND ls_excluding TO lt_excluding.
CALL FUNCTION ‘REUSE_ALV_POPUP_TO_SELECT’
EXPORTING
i_title               = ‘Bilgilendirme’
i_selection           = ”
i_screen_start_column = 1
i_screen_start_line   = 1
i_screen_end_column   = 62
i_screen_end_line     = 10
i_tabname             = ‘LT_OUTTAB’
it_fieldcat           = lt_fieldcat
it_excluding          = lt_excluding
IMPORTING
e_exit                = lv_exit
TABLES
t_outtab              = lt_outtab.

POPUP_TO_SELECT_MONTH

Yıl ve ay bilgisi sormak için kullanılır.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
ACTUAL_MONTH LIKE ISELLIST-MONTH X Varsayılan yıl ve ay
FACTORY_CALENDAR LIKE TFACD-IDENT SPACE X X Fabrika takvimini dikkate al
HOLIDAY_CALENDAR LIKE THOCI-IDENT SPACE X X Tatil takvimini dikkate al
LANGUAGE LIKE SY-LANGU SY-LANGU X X Dil
START_COLUMN LIKE SY-SCOLS 8 X X Pencerenin başlangıç pozisyonu (sütun)
START_ROW LIKE SY-SROWS 5 X X Pencerenin başlangıç pozisyonu (satır)
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
SELECTED_MONTH LIKE ISELLIST-MONTH X Seçilen yıl ve ay değeri
RETURN_CODE LIKE SY-SUBRC X İşlem sonucu
EXCEPTIONS
Exception Tanım
FACTORY_CALENDAR_NOT_FOUND Fabrika takvimi bulunamadı
HOLIDAY_CALENDAR_NOT_FOUND Tatil takvimi bulunamadı
MONTH_NOT_FOUND Ay bulunamadı

DATA : lv_month TYPE isellist-month,
lv_code TYPE sy-subrc.
CALL FUNCTION ‘POPUP_TO_SELECT_MONTH’
EXPORTING
actual_month               = ‘201304’
language = sy-langu
start_column               = 8
start_row                  = 5
IMPORTING
selected_month             = lv_month
return_code                = lv_code
EXCEPTIONS
factory_calendar_not_found = 1
holiday_calendar_not_found = 2
month_not_found            = 3
OTHERS                     = 4.
IF lv_code = 0.
WRITE : lv_month, lv_code.
ENDIF.

Seçilen ay, yıl ve işlem sonucu ekrana yazdırılır.

ÖRNEK SAP FONKSİYONLARI

SAPGUI_PROGRESS_INDICATOR

Geçerli pencerede işlem durumunu belirtmek için kullanılır. Durumu belirten “PERCENTAGE” değerini ve bu durumu tanımlayan “TEXT” değişkenleri alır.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
PERCENTAGE 0 X X İşlem durumu (yüzde olarak)
TEXT SPACE X X İşlem tanımı

CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’
EXPORTING
percentage       = 25
text             = ‘Birinci işlem başlıyor…’.
WAIT UP TO 3 SECONDS.
CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’
EXPORTING
percentage       = 75
text             = ‘İkinci işlem başlıyor…’.
WAIT UP TO 1 SECONDS.

Örnek çalıştığında önce sol alt köşede “Birinci işlem başlıyor…” yazısı ardından “İkinci işlem başlıyor…” yazısı ve işlem yüzdesi görüntülenir.

COMPUTE_YEARS_BETWEEN_DATES

Tarih iki tarih arasındaki yılı hesaplar.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
FIRST_DATE LIKE PREL-BEGDA X İlk tarih
MODIFY_INTERVAL ‘ ‘ X X
SECOND_DATE LIKE PREL-ENDDA X İkinci tarih
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
YEARS_BETWEEN_DATES X Fark (yıl olarak)
EXCEPTIONS
Exception Tanım
SEQUENCE_OF_DATES_NOT_VALID İlk tarih ikinciden büyük ise hata

DATA lv_years TYPE i.
PARAMETERS pa_ilktr LIKE sy-datum.
CALL FUNCTION ‘COMPUTE_YEARS_BETWEEN_DATES’
EXPORTING
first_date                        = pa_ilktr
modify_interval                   = ‘ ‘
second_date                       = sy-datum
IMPORTING
years_between_dates               = lv_years
EXCEPTIONS
sequence_of_dates_not_valid       = 1
OTHERS                            = 2.
WRITE: / ‘İşlem sonucu:’, sy-subrc.
WRITE: / ‘Yıl farkı:’, lv_years.

NUMBER_GET_NEXT

Bir numara aralığından sonraki numarayı elde etmek için kullanılır.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
NR_RANGE_NR LIKE INRI-NRRANGENR X Numara aralığı numarası
OBJECT LIKE INRI-OBJECT X Numara aralığı nesnesi
QUANTITY LIKE INRI-QUANTITY ‘1’ X X Numara miktarı
SUBOBJECT SPACE X X Alt nesnenin değeri
TOYEAR LIKE INRI-TOYEAR ‘0000’ X X Mali yıl
IGNORE_BUFFER SPACE X X Ara belleği göz ardı et
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
NUMBER X Alınan numara
QUANTITY LIKE INRI-QUANTITY X Numara miktarı
RETURNCODE LIKE INRI-RETURNCODE X İşlem sonucu
EXCEPTIONS
Exception Tanım
INTERVAL_NOT_FOUND Aralık bulunamadı
NUMBER_RANGE_NOT_INTERN Numara aralığı yerel değil
OBJECT_NOT_FOUND Nesne TNRO tablosunda bulunamadı
QUANTITY_IS_0 Talep edilen sayı miktarı sıfırdan (0) büyük olmalı
QUANTITY_IS_NOT_1 Talep edilen sayı miktarı bir (1) olmalı
INTERVAL_OVERFLOW Aralık doldu
BUFFER_OVERFLOW Ara bellek dolu

Örnek: “ZTEST” numara aralığın nesnesinin “01” numara aralığını kullanarak numara alan örnek.

DATA gv_number TYPE c.
CALL FUNCTION ‘NUMBER_GET_NEXT’
EXPORTING
nr_range_nr                  = ’01’
object                       = ‘ZTEST’
IMPORTING
number                       = gv_number
EXCEPTIONS
interval_not_found            = 1
number_range_not_intern       = 2
object_not_found              = 3
quantity_is_0                 = 4
quantity_is_not_1             = 5
interval_overflow             = 6
buffer_overflow               = 7
OTHERS                        = 8.
WRITE: ‘Şu anki boş numara’, gv_number.

Numara Aralığı Tanımlama

SNRO işlem kodu çalıştırılır. Nesne adı alanına ZTEST yazılır. Yarat butonuna (<IMG src=”file:///C:\Users\abapmaster\AppData\Local\Temp\msohtmlclip1\01\clip_image008.jpg” width=23 height=23 v:shapes=””>) tıklanır.

Yeni ekranda tanım kümesi için domain seçilir ve kaydedilir.

Nesne oluşturulduktan sonra numara aralıklarının tanımlanması gerekir. “Numara alanları” butonuna tıklanarak bakım ekranına geçilir.

Yeni aralık tanımlamak için kalem ikonu olan “Aralıkları” butonuna tıklanır.

Gelen ekranda numara aralığı tanımı yapılır.

ABAP Hafızasına (ABAP Memory) Veri Nesnesi Aktarımı

EXPORT ifadesi ile veri nesnelerini ABAP memory’ e aktarmak mümkündür. Aktarılan veri nesneleri daha sonra IMPORT ifadesi ile okunabilir.

Veri nesneleri birer birer aktarılabilir veya internal tablo aktarılabilir. Kullanımı aşağıdaki gibidir.

EXPORT parametre_listesi TO MEMORY ID id.

parametre_listesi: Parametreler 3 şekilde aktarılabilir.

… {p1 = dobj1 p2 = dobj2 …}
  | {p1 FROM dobj1 p2 FROM dobj2 …}
  | (ptab) … .

p1 = dobj1 p2 = dobj2 …: parametreler birer birer değişkenlere atanır ve aktarılır.

p1 FROM dobj1 p2 FROM dobj2: p1 = dobj1 ile aynıdır.

ptab: Parametreleri listesi olarak aktarım için kullanılır. İki sütunluk bir tablo tanımlanır. İlk sütunda parametrenin ismi atanır. İkinci sütunda veri nesnesi atanır.

IMPORT ifadesi ile veri nesneleri ABAP memory’ den almak mümkündür. Kullanımı aşağıdaki gibidir.

IMPORT parametre_listesi FROM MEMORY ID id [çeviri_seçenekleri].

parametre_listesi: EXPORT ile aynıdır.

[çeviri_seçenekleri]: Aşağıdaki ekler kullanılır.

… { { { {[ACCEPTING PADDING] [ACCEPTING TRUNCATION]}
        | [IGNORING STRUCTURE BOUNDARIES] }
        [IGNORING CONVERSION ERRORS [REPLACEMENT CHARACTER rc]] }
    | [IN CHAR-TO-HEX MODE] }
    [CODEPAGE INTO cp]
    [ENDIAN INTO endian].

Örnek1: p1 = dobj1 p2 = dobj2 kullanılımına ait örnek. gv_metin değişkeni EXPORT ifadesi ile ABAP memory’ e aktarılır. Daha sonra IMPORT parametresi ile gv_metin2 değişkenine atanarak, ekrana yazdırılır.

DATA : gv_metin TYPE c LENGTH 15 VALUE ‘ABAP memory’,
gv_metin2 TYPE c LENGTH 15.
EXPORT metin = gv_metin TO MEMORY ID ‘EXXX’.
IMPORT metin = gv_metin2 FROM MEMORY ID ‘EXXX’.
WRITE: ‘Metin:’, gv_metin2.

Örnek2: p1 FROM dobj1 p2 FROM dobj2 …} kullanımana ait örnek. Hafızaya metin durağan şekilde aktarılır.

DATA : gv_metin TYPE c LENGTH 15.
EXPORT metin from ‘ABAP memory’ TO MEMORY ID ‘EXXX’.
IMPORT metin = gv_metin FROM MEMORY ID ‘EXXX’.
WRITE: ‘Metin:’, gv_metin.

Örnek3: (ptab) kullanımına ait örnek. gv_emX değişkenlerini ABAP memory’ e aktaran ve daha sonra bunları hafızadan okuyup ekrana yazdırır.

TYPES: BEGIN OF t_type,
para TYPE string,
dobj TYPE string,
END OF t_type.
DATA : gv_em1 TYPE c LENGTH 15 VALUE ‘metin1’,
gv_em2 TYPE c LENGTH 15 VALUE ‘metin2’,
gv_im1 TYPE c LENGTH 15,
gv_im2 TYPE c LENGTH 15,
gs_line TYPE t_type,
gt_line TYPE STANDARD TABLE OF t_type.
gs_line-para = ‘m1’.
gs_line-dobj = ‘gv_em1’.
APPEND gs_line TO gt_line.
gs_line-para = ‘m2’.
gs_line-dobj = ‘gv_em2’.
APPEND gs_line TO gt_line.
EXPORT (gt_line)     TO MEMORY ID ‘EXXX’.
IMPORT m1 = gv_im1
m2 = gv_im2
FROM MEMORY ID ‘EXXX’.
WRITE: ‘Metin 1′, gv_im1,
/’Metin 2’, gv_im2.

Örnek4: İnternal tabloyu hafızaya aktaran bir örnek.

TYPES: BEGIN OF t_data,
id    TYPE c LENGTH 2,
metin TYPE c LENGTH 15,
END OF t_data.
DATA : gs_data  TYPE t_data,
gt_edata TYPE STANDARD TABLE OF t_data,
gt_idata TYPE STANDARD TABLE OF t_data.
gs_data-id    = ‘1’.
gs_data-metin = ‘Metin 1’.
APPEND gs_data TO gt_edata.
gs_data-id    = ‘2’.
gs_data-metin = ‘Metin 2’.
APPEND gs_data TO gt_edata.
EXPORT data_tab = gt_edata TO MEMORY ID ‘EXXX’.
IMPORT data_tab = gt_idata FROM MEMORY ID ‘EXXX’.
WRITE: 3 ‘ID’, 8 ‘Metin’.
LOOP AT gt_idata INTO gs_data.
WRITE: /3 gs_data-id, 8 gs_data-metin.
ENDLOOP.

ÇEVRİM FONKSİYONLARI

CONVERSION_EXIT_ALPHA_INPUT

Fonksiyona verilen nümerik bir değişkenin sol tarafına değişken uzunluğu tamamlanana kadar sıfır “0” ekler. Genelde malzeme numarası ve hesap numaraları için kullanılır. Harici formatı dâhili formata çevirir.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
INPUT TYPE CLIKE X Dönüştürülecek değer
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
OUTPUT TYPE TYPE X Dönüştürülecek değer

CONVERSION_EXIT_ALPHA_OUTPUT

Fonksiyona verilen nümerik bir değişkenin sol tarafındaki sıfır “0” değerlerini kaldırır. Genelde malzeme numarası ve hesap numaraları için kullanılır. Dahili formatı harici formata çevirir.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
INPUT TYPE CLIKE X Dönüştürülecek değer
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
OUTPUT TYPE TYPE X Dönüştürülecek değer

DATA : lv_matnr(18).
lv_matnr = ‘1’.
WRITE : / ‘Değişkene atanan malzeme no:’, lv_matnr.
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
EXPORTING
input = lv_matnr
IMPORTING
output = lv_matnr.
WRITE : / ‘Exit Alpha Input çıktısı:’, lv_matnr.
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’
EXPORTING
input     = lv_matnr
IMPORTING
output   = lv_matnr.
WRITE : / ‘Exit Alpha Output çıktısı:’, lv_matnr.

SPELL_AMOUNT

Fonksiyona verilen sayısal değer istenilen para biriminde ve dilde metine dönüştürülür. Metin kısmı tamsayı ve ondalık olarak iki ayrı değişkene atanır.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
AMOUNT 0 X X Çevrilecek sayısal değer
CURRENCY LIKE SY-WAERS SPACE X X Çevrim yapılacak para birimi
FILLER SPACE X X Çıktı alanı için karakter
LANGUAGE LIKE SY-LANGU SY-LANGU X X Çevrim yapılacak dil
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
IN_WORDS LIKE SPELL X Tutar/sayı ve rakamla yazılışını içeren alan çubuğu
EXCEPTIONS
Exception Tanım
NOT_FOUND Argüman T015Z tablosunda bulunamadı
TOO_LARGE Tutar, dönüştürme işlemi için çok büyük

Örnek: Verilen tutarı Türkçe ve TL olarak metne çeviren örnek.

DATA: lv_netwr TYPE vbak-netwr,
ls_words TYPE spell.
lv_netwr = ‘55428.37’.
CALL FUNCTION ‘SPELL_AMOUNT’
EXPORTING
amount          = lv_netwr
currency       = ‘TRY’
filler          = ‘ ‘
language        = sy-langu
IMPORTING
in_words        = ls_words
EXCEPTIONS
not_found       = 1
too_large       = 2
OTHERS          = 3.
IF sy-subrc = 0.
WRITE / ‘Metne dönüştürülecek tutar’.
WRITE / lv_netwr left-justified.
SKIP 1.
WRITE / ‘Tamsayı:’.
WRITE / ls_words-number.
SKIP 1.
WRITE / ‘Ondalık:’.
WRITE / ls_words-decimal.
SKIP 1.
WRITE / ‘Tamsayı metni:’.
WRITE / ls_words-word.
SKIP 1.
WRITE / ‘Ondalık metni:’.
WRITE / ls_words-decword.
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CONVERT_TO_FOREIGN_CURRENCY

Yerel para birimi tutarını yabancı para birimi tutarına çevirir.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
CLIENT LIKE SY-MANDT SY-MANDT X X Üst birim
DATE LIKE SYST-DATUM X Çevrim yapılacak kur tarihi
FOREIGN_CURRENCY X Hedef para birimi
LOCAL_AMOUNT X Çevrim yapılacak tutar
LOCAL_CURRENCY X Kaynak para birimi
RATE 0 X X Çevrim yapılması istenilen kur
TYPE_OF_RATE ‘M’ X X Kur tipi
READ_TCURR ‘X’ X X Çevrim kurunu TCURR tablosundan okuma göstergesi
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
EXCHANGE_RATE X Çevrim yapılan kur 4.5
FOREIGN_AMOUNT X Yabancı para birimi tutarı
FOREIGN_FACTOR X Yabancı para birimi faktörü
LOCAL_FACTOR X Yerel para birimi faktörü
EXCHANGE_RATEX X Çevrim yapılan kur 4.1
DERIVED_RATE_TYPE LIKE TCURR-KURST X Alternatif çevrim kur tipi
FIXED_RATE X Sabit çevrim kuru 4.5
EXCEPTIONS
Exception Tanım
NO_RATE_FOUND Çevrim kuru bulunamadı
OVERFLOW FOREIGN_AMOUNT alanı çevrim tutarı için çok küçük.
NO_FACTORS_FOUND TCURF tablosunda çevrim faktörü bulunamadı
NO_SPREAD_FOUND TCURS tablosuda aralık bulunamadı
DERIVED_2_TIMES Çevrim kuru tipi sorunu

Örnek1: Türk lirası olarak verilen tutarı sabit bir kur ile Euro’ ya çeviren örnek.

DATA : gv_amount TYPE netpr,
gv_rate   TYPE tcurr-ukurs VALUE ‘2.50000’.
CALL FUNCTION ‘CONVERT_TO_FOREIGN_CURRENCY’
EXPORTING
date  = sy-datum
foreign_currency        = ‘EUR’
local_amount            = ‘600.00’
local_currency          = ‘TRY’
rate                    = gv_rate
type_of_rate            = ‘M’
IMPORTING
foreign_amount          = gv_amount
EXCEPTIONS
no_rate_found           = 1
overflow                = 2
no_factors_found        = 3
no_spread_found         = 4
derived_2_times         = 5
OTHERS                  = 6.
WRITE: ‘Euro tutarı:’, gv_amount LEFT-JUSTIFIED.

<IMG src=”file:///C:\Users\abapmaster\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png” width=162 height=31 v:shapes=””>

Örnek2: Türk lirası olarak verilen tutarı günün kuru ile Euro’ ya çeviren örnek.

DATA : gv_amount TYPE netpr,
gv_rate   TYPE tcurr-ukurs.
CALL FUNCTION ‘CONVERT_TO_FOREIGN_CURRENCY’
EXPORTING
date                    = sy-datum
foreign_currency        = ‘EUR’
local_amount            = ‘600.00’
local_currency          = ‘TRY’
type_of_rate            = ‘M’
IMPORTING
foreign_amount          = gv_amount
exchange_rate           = gv_rate
EXCEPTIONS
no_rate_found           = 1
overflow                = 2
no_factors_found        = 3
no_spread_found         = 4
derived_2_times         = 5
OTHERS                  = 6.
WRITE: ‘Euro tutarı:’, gv_amount LEFT-JUSTIFIED,
/’Çevrim kuru:’, gv_rate.

CONVERT_TO_LOCAL_CURRENCY

Yabancı para birimi tutarını terel para birimi tutarına çevirir.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
CLIENT LIKE SY-MANDT SY-MANDT X X Üst birim
DATE LIKE SYST-DATUM X Çevrim yapılacak kur tarihi
FOREIGN_AMOUNT X Çevrim yapılacak tutar
FOREIGN _CURRENCY X Kaynak para birimi
LOCAL_CURRENCY X Hedef para birimi
RATE 0 X X Çevrim yapılması istenilen kur
TYPE_OF_RATE ‘M’ X X Kur tipi
READ_TCURR ‘X’ X X Çevrim kurunu TCURR tablosundan okuma göstergesi
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
EXCHANGE_RATE X Çevrim yapılan kur 4.5
FOREIGN_FACTOR X Yabancı para birimi faktörü
LOCAL_AMOUNT X Yabancı para birimi tutarı
LOCAL_FACTOR X Yerel para birimi faktörü
EXCHANGE_RATEX X Çevrim yapılan kur 4.1
FIXED_RATE X Sabit çevrim kuru 4.5
DERIVED_RATE_TYPE LIKE TCURR-KURST X Alternatif çevrim kur tipi
EXCEPTIONS
Exception Tanım
NO_RATE_FOUND Çevrim kuru bulunamadı
OVERFLOW FOREIGN_AMOUNT alanı çevrim tutarı için çok küçük
NO_FACTORS_FOUND TCURF tablosunda çevrim faktörü bulunamadı
NO_SPREAD_FOUND TCURS tablosuda aralık bulunamadı
DERIVED_2_TIMES Çevrim kuru tipi sorunu

Örnek1: Euro olarak verilen tutarı günün kuru ile TL’ ye çeviren örnek.

DATA : gv_amount TYPE netpr VALUE ‘307.28260’,
gv_rate   TYPE tcurr-ukurs.
CALL FUNCTION ‘CONVERT_TO_LOCAL_CURRENCY’
EXPORTING
date = sy-datum
foreign_currency  = ‘EUR’
foreign_amount    = gv_amount
local_currency    = ‘TRY’
type_of_rate      = ‘M’
IMPORTING
local_amount      = gv_amount
exchange_rate     = gv_rate
EXCEPTIONS
no_rate_found     = 1
overflow          = 2
no_factors_found  = 3
no_spread_found   = 4
derived_2_times   = 5
OTHERS            = 6.
WRITE: ‘TL tutarı:’, gv_amount LEFT-JUSTIFIED,
/’Çevrim kuru:’, gv_rate.

READ_EXCHANGE_RATE

TCURR tablosundan istenilen tarihin döviz kurunu bulmak için kullanılır. “EXACT_DATE” parametresi boş olarak kullanılır ise belirtilen tarihte kur olmasa bile en yakın tarihteki kuru geri döner.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
CLIENT LIKE SY-MANDT SY-MANDT X X Üst birim
DATE LIKE SYST-DATUM X Kur tarihi
FOREIGN _CURRENCY LIKE TCURR-FCURR X Yabancı para birimi
LOCAL_CURRENCY LIKE TCURR-TCURR X Yerel para birimi
TYPE_OF_RATE LIKE TCURR-KURST ‘M’ X X Kur tipi
EXACT_DATE TYPE XFELD SPACE X Sadece belirtilen tarihteki kur mevcut ise
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
EXCHANGE_RATE X Döviz kuru
FOREIGN_FACTOR X Yabancı para birimi faktörü
LOCAL_FACTOR X Yerel para birimi faktörü
VALID_FROM_DATE LIKE SYST-DATUM X Geçerlilik tarihi başlangıcı
DERIVED_RATE_TYPE LIKE TCURR-KURST X Alternatif çevrim kur tipi
FIXED_RATE X Sabit çevrim kuru 4.5
OLDEST_RATE_FROM LIKE SYST-DATUM En son kur hesaplaması
EXCEPTIONS
Exception Tanım
NO_RATE_FOUND Çevrim kuru bulunamadı
NO_FACTORS_FOUND TCURF tablosunda çevrim faktörü bulunamadı
NO_SPREAD_FOUND TCURS tablosuda aralık bulunamadı
DERIVED_2_TIMES Çevrim kuru tipi sorunu
OVERFLOW
ZERO_RATE Gösterge: Kur mevcut değil

Örnek1: Euro cinsinden “M” tipi kur için günün kurunu ekrana yazan örnek.

DATA gv_rate TYPE tcurr-ukurs.
CALL FUNCTION ‘READ_EXCHANGE_RATE’
EXPORTING
client           = sy-mandt
date = sy-datum
foreign_currency = ‘EUR’
local_currency   = ‘TRY’
type_of_rate     = ‘M’
IMPORTING
exchange_rate    = gv_rate
EXCEPTIONS
no_rate_found    = 1
no_factors_found = 2
no_spread_found  = 3
derived_2_times  = 4
overflow         = 5
zero_rate        = 6
OTHERS           = 7.
WRITE: ‘Günün kuru:’, gv_rate.

MD_CONVERT_MATERIAL_UNIT

Malzemede tanımlı çevrim faktörüne göre birim çevirimi yapar. Malzemenin alternatif ölçü birimlerinin tanımlı olması gerekir. Alternatif ölçü birimleri MM03>Ek veriler>Ölçü birimleri ile görülebilir. Malzeme ölçü birimleri MARM tablosunda saklanır.

IMPORT
Parametre Tanım tipi İlişkili tip Başlanıç d. Ops. Dğr atn. Parametre açıklaması
I_MATNR LIKE MARA-MATNR X Çevrim yapılacak malzeme
I_IN_ME LIKE MARA-MEINS X Kaynak birim
I_OUT_ME LIKE MARA-MEINS X Hedef birim
I_MENGE LIKE EKPO-MENGE X Çevrim miktar
EXPORT
Parametre Tanım tipi İlişkili tip Dğr atn. Parametre açıklaması
E_MENGE LIKE EKPO-MENGE X Çevrilen miktar
EXCEPTIONS
Exception Tanım
ERROR_IN_APPLICATION Uygulama hatası
ERROR Hata

Örnek: Girilen malzeme miktarını tanılandığı birim çevrimine göre dönüştüren örnek.

DATA gv_menge TYPE mseg-menge.
PARAMETERS: pa_matnr TYPE mara-matnr,
pa_in_me TYPE mara-meins,
pa_out_m TYPE mara-meins,
pa_menge TYPE ekpo-menge.
CALL FUNCTION ‘MD_CONVERT_MATERIAL_UNIT’
EXPORTING
i_matnr              = pa_matnr
i_in_me              = pa_in_me
i_out_me             = pa_out_m
i_menge              = pa_menge
IMPORTING
e_menge              = gv_menge
EXCEPTIONS
error_in_application = 1
error                = 2
OTHERS               = 3.
WRITE: ‘Birim dönüşümü yapılan miktar’, gv_menge.