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.
****

Merve Polat

https://medium.com/@pmervepolat977

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir