Etiket arşivi | "internal table"

Etiketler: , , ,

SAP İnternal table işlemleri


İnternal table işlemleri

İndex erişimi ile seçilen kayıt değiştirilir. Standart table lar için uygundur. Sorted table lar için de kullanılabilir. Hash tablolar için kullanılamaz. İndex tipi genellikle i‘dir.

Key erişimi: Sorted table lar için en makul erişim yöntemidir.Diğer tablo türleri için de kullanılabilir.

Read:

Key erişimi: Tablonu key alanlarını work area daki aynı isimli alanlarla karşılaştırır, eşleşen kayıdı okur, header line varsa ona atar yoksa into ile belirtilen work area ya atar.

READ TABLE tab_name FROM wa ASSIGNING <fs>.

(INTO wa)

(REFERENCE INTO dref)

Ya da

READ TABLE spfli_tab
WITH [TABLE] KEY carrid = 'LH' connid = '2402'
ASSIGNING <spfli>.

With table key yerine With key denirse tüm key alanlarını yazmak zorunda olmayız.bu durumda birden fazla kayıt koşulu sağlar. Birden fazla uygun kayıt varsa düşük indexli olanı okur.

Standart table sıralama yapılırsa read komutunun sonuna BINARY SEARCH ifadesi eklenebilir.

İndex erişimi:

READ TABLE tab_name INDEX sy-index INTO sflight_wa.

İşlemde kayıt okunmuşsa sy-subrc 0 olur.aksi halde 0 değildir.sy-tabix son okunan kaydın indeksini verir.

Modify:

İndex erişimi : ile. TRANSPORTING NO FIELDS ifadesi hiç alan okumayacam demek sadece kaydın index bilgisi lazım demek. Bu yüzden into wa ifadesi aşağıda kullanılmamıştır.loop un içinde itabı değiştiriyosam sy-tabix i kullanabiklirim. Ya da tek bir kaydı değiştiriyosam read table komutuyla sy-tabixe indexin atanmasını sağlayıp yine sy-tabix i kullanabilirim.


READ TABLE scarr_tab
WITH TABLE KEY carrid   = p_carrid
TRANSPORTING NO FIELDS.

idx = sy-tabix.

scarr_wa-currcode = 'EUR'.

MODIFY scarr_tab INDEX idx FROM scarr_wa
TRANSPORTING currcode.

scarr_tab tablosunun idx indexli kaydının currcode alanını wa daki gibi güncelle demektir. Transporting olmasa tüm alanları wa da ki gibi güncelle demek oluyodu.

Key erişimi

İtabda Work area’daki key alanlarıyla eşleşen kayıdı work area’daki alan bilgilerine göre değiştirir.

READ TABLE scarr_tab INTO scarr_wa
WITH TABLE KEY carrid = p_carrid.

scarr_wa-currcode = 'EUR'.

MODIFY TABLE scarr_tab FROM scarr_wa
TRANSPORTING currcode.

veya

SELECT *
FROM sflight
INTO TABLE sflight_tab
WHERE carrid = p_carrid AND
connid = p_connid.

sflight_wa-planetype = p_plane2.

MODIFY sflight_tab FROM sflight_wa
TRANSPORTING planetype WHERE planetype = p_plane1

Bu işlemde read komutu with den sonra table eklentisi kullanılmıştır burası önemlidir.Uygun kayıt sayısı 1 den fazlaysa yine ilk buluna kayıt güncellenir.

Delete:

Key erişimi:

DELETE TABLE scarr_tab FROM scarr_wa.

DELETE TABLE scarr_tab WITH TABLE KEY carrid = p_carrid.

İndex erişimi:

READ TABLE scarr_tab WITH TABLE KEY carrid = p_carrid
TRANSPORTING NO FIELDS.

IF sy-subrc = 0.
DELETE scarr_tab INDEX sy-tabix.
ENDIF.

Append:

Standart tablolar lar için kullanılır. Sorted ve hash tablolar için kullanılamaz. Sıralı ekleme de yapılabilir.

Tek satır veri eklenmesi

APPEND wa TO itab SORTED BY field_name.

Bir internal table ın satırlarını diğerine eklenmesi

APPEND  LINES OF itab1 [FROM idx1] [TO idx2] to itab2

İnsert:

TEK SATIR.

INSERT wa INTO TABLE itab.

1 itabın satırlarını diğerine kopyalama.

INSERT LINES OF jtab [FROM idx1] [TO idx2]} INTO TABLE connection_tab.

Collect:

COLLECT wa INTO itab

İfadenin sonuna bunu eklersek eklenen satıra işaret ettirebiliriz.

{ASSIGNING <fs> [CASTING] } | { REFERENCE INTO dref }.

Kategori AbapYorum (0)

Advertise Here
  • Popüler
  • Son
  • Yorumlar
  • Etiketler
  • RSS Üyelik
Advertise Here

Our Flickr Photos - See all photos

Dost siteler

Sap Haber Arşivi

Kategoriler