Type Range Of — ABAP
SAP ABAP’ta Range Type, bir seçim kriteri belirlemek için kullanılan özel bir veri yapısıdır. Genellikle SELECT sorgularında belirli bir alan üzerinde filtreleme yapmak için kullanılır.
Range Type, SIGN, OPTION, LOW, ve HIGH olmak üzere dört alan içerir:
- SIGN: Dahil (I = Include) veya hariç (E = Exclude) olduğunu belirtir.
- OPTION: Karşılaştırma operatörünü belirtir (EQ, NE, BT, NB, CP, NP, vb.).
- LOW: Alt sınır veya tam karşılaştırma değeri.
- HIGH: Üst sınır (sadece aralık için kullanılır, örneğin BT).
Kullanım Senaryosu
Range Type, özellikle SELECT…WHERE ifadelerinde birden fazla kriteri dinamik olarak belirlemek için kullanılır. Örneğin, bir kullanıcı ekranında bir seçim parametresi girerse, bu parametreyi Range Type ile işleyip sorguya dahil edebilirsiniz.
TYPES: BEGIN OF lty_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF lty_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF lty_ekko INITIAL SIZE 0,
wa_ekko TYPE lty_ekko.
DATA: r_ebeln TYPE RANGE OF ekko-ebeln, "range table,
wa_ebeln LIKE LINE OF r_ebeln. "work area for range table.
**********************************************************************
START-OF-SELECTION.
* populate range table to receive all entries
refresh r_ebeln.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
from ekpo
into table it_ekko
where ebeln in r_ebeln.
***************************************************
* spesifik bir değer için
wa_ebeln-sign = 'I'. "I = include, E = exclude
wa_ebeln-option = 'EQ'. "EQ, BT, NE ....
wa_ebeln-low = '12345678'.
*wa_ebeln-high = "not needed unless using the BT option
append wa_ebeln to r_ebeln.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
from ekpo
into table it_ekko
where ebeln in r_ebeln.
***********************************************************
* bir aralıktaki değerler için
wa_ebeln-sign = 'I'. "I = include, E = exclude
wa_ebeln-option = 'BT'. "EQ, BT, NE ....
wa_ebeln-low = '11111111'.
wa_ebeln-high = '99999999'.
append wa_ebeln to r_ebeln.
SELECT
ebeln,
ebelp,
statu,
aedat,
matnr,
menge,
meins,
netpr,
peinh,
FROM ekpo
INTO CORRESPONDING FIELDS OF TABLE @it_ekko
WHERE ebeln IN @r_ebeln.
****
