ABAP geliştirme sürecinde internal table verileriyle çalışırken farklı veri erişim yöntemleri kullanılır. En yaygın üç yöntem:
- Work Area (kopyalama tabanlı klasik yöntem)
- Field-Symbol (pointer mantığı)
- REFERENCE INTO (modern referans yaklaşımı)
Bu yöntemler benzer görünse de performans, bellek kullanımı ve çalışma mantığı açısından önemli farklara sahiptir.
Work Area (Klasik Yöntem)
Work Area internal table satırını kopyalayarak çalışır.
DATA: wa_mara TYPE mara.
LOOP AT it_mara INTO wa_mara.
WRITE: wa_mara-matnr.
ENDLOOP.
Özellikleri
- Satır kopyalanır
- Değişiklikler tabloya yansımaz
- Güncelleme için MODIFY gerekir
Avantajları
- Basit ve anlaşılır
- Yeni başlayanlar için uygundur
Dezavantajları
- Her döngüde kopyalama yapılır
- Büyük veride performans düşer
Field-Symbol (En Hızlı Yöntem)
Field-symbol veriyi kopyalamadan doğrudan hafıza üzerinden erişir.
FIELD-SYMBOLS: <fs_mara> TYPE mara.
LOOP AT it_mara ASSIGNING <fs_mara>.
WRITE: <fs_mara>-matnr.
ENDLOOP.
Özellikleri
- Veri kopyalanmaz
- Direkt tablo satırı üzerinde işlem yapılır
Avantajları
- Çok yüksek performans
- Minimum bellek kullanımı
Dezavantajları
- Yanlış kullanımda runtime error riski
- Debug daha zordur
REFERENCE INTO (Modern ABAP)
REFERENCE INTO satırı referans (pointer) olarak alır.
DATA lr_mara TYPE REF TO mara.
LOOP AT it_mara REFERENCE INTO lr_mara.
WRITE: lr_mara->matnr.
ENDLOOP.
Özellikleri
- Kopyalama yapılmaz
- Referans üzerinden erişim sağlar
- Modern ABAP (7.40+) uyumludur
Avantajları
- Performanslı
- OOP yapıya uygundur
- Temiz ve kontrollü kod
Dezavantajları
- Syntax daha karmaşıktır
- Field-symbol kadar esnek değildir
Karşılaştırma
| Yöntem | Kopyalama | Performans | Güncelleme |
|---|---|---|---|
| Work Area | Var | Düşük | MODIFY gerekir |
| Field-Symbol | Yok | Çok yüksek | Direkt |
| REFERENCE INTO | Yok | Yüksek | Direkt |
Kullanım Senaryoları
Work Area
- Küçük veri
- Basit işlemler
Field-Symbol
- Büyük veri
- Performans kritik işlemler
REFERENCE INTO
- Modern ABAP projeleri
- OOP tabanlı geliştirme
Sonuç
ABAP’ta doğru yöntem seçimi doğrudan performansı etkiler:
- Work Area → Basit ama yavaş
- Field-Symbol → En hızlı yöntem
- REFERENCE INTO → Modern ve temiz yaklaşım
![]()