ABAP’ta internal table’lar ile çalışırken en sık yapılan işlemler veri ekleme, güncelleme ve silmedir. Bu işlemler doğru kullanılmadığında hem performans sorunları hem de beklenmeyen sonuçlar ortaya çıkabilir. Bu yazıda internal table üzerinde yapılan temel CRUD işlemlerini (Create, Read, Update, Delete) örneklerle inceleyeceğiz.
1) INSERT Kullanımı (Veri Ekleme)
Internal table’a yeni kayıt eklemek için kullanılır.
Tek satır ekleme
INSERT ls_line INTO TABLE lt_table.
Append (en çok kullanılan)
APPEND ls_line TO lt_table.
Not:
APPENDgenelde sıralı tablolarda kullanılırINSERTise sorted / hashed tablolarda da kullanılabilir
Index ile INSERT
INSERT ls_line INTO lt_table INDEX 1.
Belirli bir sıraya ekleme yapmak için kullanılır.
2) MODIFY Kullanımı (Güncelleme)
Var olan bir kaydı değiştirmek için kullanılır.
Key ile güncelleme
MODIFY TABLE lt_table FROM ls_line.
Index ile güncelleme
MODIFY lt_table FROM ls_line INDEX 1.
ASSIGNING ile güncelleme (modern ve hızlı)
LOOP AT lt_table ASSIGNING FIELD-SYMBOL(<fs>).
<fs>-matnr = 'NEW_VALUE'.
ENDLOOP.
Bu yöntem kopyalama yapmaz, performans açısından daha iyidir.
3) DELETE Kullanımı (Silme)
Internal table’dan veri silmek için kullanılır.
Key ile silme
DELETE TABLE lt_table WITH KEY matnr = '123'.
Index ile silme
DELETE lt_table INDEX 1.
Loop içinde silme
LOOP AT lt_table INTO ls_line.
IF ls_line-matnr = '123'.
DELETE lt_table.
ENDIF.
ENDLOOP.
Not: Bu kullanım dikkatli yapılmalıdır, performans ve index kayması sorun yaratabilir.
4) READ TABLE ile birlikte kullanım
CRUD işlemlerinde çoğu zaman önce kayıt kontrol edilir:
READ TABLE lt_table INTO ls_line
WITH KEY matnr = '123'.
IF sy-subrc = 0.
" kayıt bulundu
ENDIF.
5) Modern ABAP Yaklaşımı
line_exists ile kontrol
IF line_exists( lt_table[ matnr = '123' ] ).
INSERT / MODIFY modern kullanım
lt_table = VALUE #( BASE lt_table ( matnr = '123' werks = '1000' ) ).
Yeni ABAP syntax ile immutable (daha fonksiyonel) yaklaşım kullanılabilir.
6) Önemli Performans Notları
- Büyük tablolarda
APPENDdaha hızlıdır LOOP içinde DELETEdikkatli kullanılmalıdırASSIGNING FIELD-SYMBOLperformans açısından avantaj sağlar- Sorted / hashed table kullanımı CRUD performansını ciddi etkiler
7) Kısa Özet
- INSERT → tabloya veri ekler
- MODIFY → mevcut veriyi günceller
- DELETE → veriyi siler
- READ → veri kontrolü yapar
Sonuç
Internal table işlemleri ABAP geliştirmede en temel konulardan biridir.
Doğru CRUD kullanımı hem kod kalitesini artırır hem de performans açısından büyük fark yaratır.
Özellikle büyük veri setlerinde hangi methodun kullanıldığı kritik önem taşır.
Abap’ta internal table farklarını incelemek için bu yazıyı inceleyebilirsiniz.
![]()