Abap Range Kullanımı

Abapta range kullanımı için örnek senaryomuz aşağıdaki gibidir;

dfkkop tablosunda xblnr ile erdk tablosundaki opbel satırlarının eşitliğini kullanarak select yapılacak. Fakat xblnr için tutulan alan 16 karakterlik, opbel için ise 12. Dolayısıyla bu satırlar hiç bir zaman eşit olmayacak. Range işlemi yaparak 12 karakterlik satırların başına sıfır eklenerek benzetme işlemi yapılacaktır.

Önce range tanımlıyoruz.

RANGES:rg_xblnr FOR dfkkop-xblnr.

LOOP AT lt_erdk INTO DATA(ls_erdk).
rg_xblnr = 'IEQ'.
rg_xblnr-low = ls_erdk-opbel.

"bu fonksiyon alanın karakter sayısı kadar başına 0 eklerek doldurur
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "
EXPORTING
input = rg_xblnr-low
IMPORTING
output = rg_xblnr-low.
APPEND rg_xblnr.

ENDLOOP.

Select sorgumuzu şimdi range şartımıza göre yapabiliriz.

SELECT t2~xblnr, t2~sctax
FROM dfkkop AS t2
INTO TABLE @DATA(lt_dfkkop)
WHERE t2~xblnr IN @rg_xblnr.

Mehdi Kapsal

Bilgisayar Mühendisi

Sence de böyle mi?

%d blogcu bunu beğendi: