Tabela wewnętrzna SAP ABAP: tworzenie, odczytywanie, wypełnianie, kopiowanie & Kasować

Spisie treści:

Anonim

Co to jest tabela wewnętrzna?

TABELA WEWNĘTRZNA służy do uzyskiwania danych ze stałej struktury do dynamicznego użytku w ABAP. Każdy wiersz w tabeli wewnętrznej ma taką samą strukturę pól. Głównym zastosowaniem tabel wewnętrznych jest przechowywanie i formatowanie danych z tabeli bazy danych w programie.

W tym samouczku dowiesz się:

  • Co to jest tabela wewnętrzna?
  • Co to jest obszar roboczy?
  • Różnica między stołem wewnętrznym a miejscem do pracy?
  • Rodzaje tabel wewnętrznych
  • Tworzenie tabel wewnętrznych
  • Wypełnianie tabel wewnętrznych
  • Kopiowanie tabel wewnętrznych
  • Czytanie wewnętrzne
  • Usuwanie tabel wewnętrznych

Co to jest obszar roboczy?

Obszary robocze to pojedyncze wiersze danych. Powinny mieć ten sam format, co wszystkie tabele wewnętrzne. Służy do przetwarzania danych w wewnętrznej tabeli po jednym wierszu na raz.

Różnica między stołem wewnętrznym a miejscem do pracy?

Zdjęcie mówi więcej niż tysiąc słów :-)

Rodzaje tabel wewnętrznych

Istnieją dwa rodzaje tabel wewnętrznych.

  1. Stoły wewnętrzne z linią HEADER
  2. Stoły wewnętrzne bez linii HEADER.

Tabele wewnętrzne z linią nagłówka

  • Tutaj system automatycznie tworzy obszar roboczy.
  • Obszar roboczy ma ten sam typ danych, co tabela wewnętrzna.
  • Ten obszar roboczy nazywany jest linią HEADER.
  • To tutaj są wykonywane wszystkie zmiany lub dowolna akcja na zawartości tabeli. W rezultacie rekordy mogą być bezpośrednio wstawiane do tabeli lub bezpośrednio dostępne z tabeli wewnętrznej.

Tabele wewnętrzne bez linii nagłówka :

  • Tutaj nie ma obszaru roboczego związanego ze stołem.
  • Obszar roboczy ma być wyraźnie określony, kiedy musimy uzyskać dostęp do takich tabel.
  • Dlatego nie można uzyskać bezpośredniego dostępu do tych tabel.

Tworzenie tabel wewnętrznych

Istnieje wiele sposobów tworzenia tabeli wewnętrznej. Przyjrzyjmy się im jeden po drugim - 1.
Używając instrukcji Type Utwórzmy
teraz wewnętrzną tabelę itab przy użyciu instrukcji TYPE.
Składnia to -

Rodzaje: początek wiersza,kolumna 1 typ I,kolumna2 typ I,koniec linii.

Przykład:

RODZAJE: początek wiersza,empno typ I,empname (20) typ c,koniec linii.

Instrukcja TYPES tworzy linię konstrukcyjną zgodnie z definicją.
Aby faktycznie utworzyć wewnętrzną tabelę itab, użyj następującego polecenia:

Pojawia się linia typu Data itab 10.

Tworzony jest wewnętrzny itab tabeli o strukturze line. Oprócz deklaracji struktury tabeli wewnętrznej, klauzula OCCURS definiuje również, ile wpisów tabeli jest utrzymywanych w pamięci głównej (w tym przypadku 10). Dodatkowe rekordy są zapisywane w obszarze stronicowania i mogą wpływać na wydajność 2.
Odwołanie się do innej tabeli
Możesz utworzyć wewnętrzną tabelę, odwołując się do istniejącej tabeli. Istniejąca tabela może być standardową tabelą SAP, tabelą Z lub inną tabelą wewnętrzną.
Składnia-

Data   [z wierszem nagłówka].

Przykład-

DANE itab TYPE linia OCCURS 10 z wierszem nagłówka.

Tutaj wewnętrzna tabela itab jest tworzona z linii typu z wierszem nagłówka. Uwaga: opcja „z wierszem nagłówka” jest opcjonalna.
3. Odnosząc się do istniejącej
składni struktury -

Data  LIKE  występuje n [z linią nagłówka].

Przykład-

DANE itab LIKE sline WYSTĘPUJE 10.

Tutaj tworzona jest tabela itab mająca taką samą strukturę jak sline
4. Tworząc nową Strukturę
Stwórzmy teraz wewnętrzną tabelę z naszą własną strukturą. Tutaj tabela jest domyślnie tworzona z wierszem nagłówka .
Składnia -

Dane: pojawia się początek  ,,…,Koniec .

Przykład -

Dane: Początek itab następuje 10,kolumna 1 typ I,kolumna2 (4) typ C,column3 jak mara-ernam,Koniec itab.

Tworzona jest wewnętrzna tabela itab

Wypełnianie tabel wewnętrznych

Po pomyślnym utworzeniu niektórych tabel wewnętrznych zobaczmy, jak zapełnimy je niektórymi rekordami. Istnieją różne metody wypełniania tabel 1. Dodawanie danych wiersz po wierszu Pierwszą dostępną metodą jest użycie instrukcji APPEND.
Używając instrukcji APPEND, możemy albo dodać jedną linię z innego obszaru roboczego do wewnętrznej tabeli, albo możemy dodać jedną linię początkową do wewnętrznej tabeli…
Składnia -
DODAJ [ DO / POCZĄTKOWA LINIA DO] .
Tutaj obszar roboczy lub linia początkowa jest dołączana do wewnętrznej tabeli .
Zmienna systemowa SY-TABIX zawiera indeks dołączanej linii.
Przykład:
Dane: Początek itab następuje 10,col1 typ C,col2 typ I,koniec itab.Dołącz pierwszą linię do itab.

Wyniki: '' '0'
Początkowe wiersze dodają do tabeli wiersz zainicjowany poprawną wartością dla swojego typu. Tutaj col1 to znak, a col2 to liczba całkowita. Następnie APPEND początkowa linia dodaje linię zainicjowaną w odniesieniu do typu danych kolumn, tj. Miejsce na kolumnę1 i 0 na kolumnę2. 2.Korzystanie z instrukcji COLLECT COLLECTjest inną formą instrukcji używaną do zapełniania tabel wewnętrznych. Ogólnie rzecz biorąc, COLLECT jest używany podczas wstawiania wierszy do wewnętrznej tabeli za pomocą unikalnego standardowego klucza.
Składnia-
ZBIERZ [ DO] .

W przypadku tabel z nagłówkiem, opcja INTO jest pomijana. Załóżmy, że istnieje już wpis mający taki sam klucz jak ten, który próbujesz dodać, a następnie nowy wiersz nie jest dodawany do tabeli, ale pola numeryczne obu wpisów są dodawane i obecny jest tylko jeden wpis odpowiadający kluczowi . Wartość SY-TABIX jest zmieniana na wiersz pierwotnego wpisu. W przeciwnym razie COLLECT działa podobnie do APPEND, a SY-TABIX zawiera indeks przetwarzanej linii. 3 . Użycie instrukcji INSERT InstrukcjaINSERT dodaje wiersz / obszar roboczy do wewnętrznej tabeli. Możesz określić pozycję, w której ma zostać dodany nowy wiersz, używając klauzuli INDEX z instrukcją INSERT.
Składnia
INSERT [ INTO / INITIAL LINE INTO]  [index ].
Tutaj obszar roboczy lub INITIAL LINE jest wstawiany do wewnętrznej tabeli pod indeksem .

Kopiowanie tabel wewnętrznych

Zawartość jednej tabeli wewnętrznej można skopiować do innej za pomocą instrukcji APPEND LINES lub INSERT LINES. Prostszym sposobem jest użycie kilku z poniższych składni.
MOVE  To .LUB = .

Te kopiują zawartość ITAB1 do ITAB2. W przypadku wewnętrznych tabel z nagłówkiem musimy użyć [] w celu odróżnienia od obszaru roboczego. Tak więc, aby skopiować zawartość tabel wewnętrznych z wierszem nagłówka, składnia wygląda następująco:
itab1 [] = itab2 [].

Przeczytaj tabele wewnętrzne

Jesteśmy teraz zaznajomieni z tworzeniem tabel wewnętrznych i wypełnianiem ich danymi. Zobaczymy teraz, jak faktycznie wykorzystujemy dane lub pobieramy dane z tabel wewnętrznych. 1. Używanie Loop -EndloopJednym ze sposobów uzyskiwania dostępu lub odczytywania wewnętrznej tabeli jest użycie LOOP-ENDLOOP.
Składnia
LOOP AT  [INTO ]… ENDLOOP.

Tutaj, kiedy powiesz LOOP AT ITABLE, wewnętrzna tabela ITABLE jest odczytywana wiersz po wierszu. Możesz uzyskać dostęp do wartości kolumn dla tej linii w dowolnej części struktury LOOP-ENDLOOP. Wartość SY-SUBRC jest ustawiana na 0 , nawet jeśli czytany jest tylko jeden rekord. 2. Używanie READInną metodą czytania wewnętrznej tabeli jest użycie instrukcji READ.
Składnia-
CZYTAJ TABELĘ  [INTO ] INDEKS .

Ta instrukcja odczytuje bieżący wiersz lub wiersz określony przez indeks . Wartość SY-TABIX jest indeksem odczytanego wiersza. Jeśli zostanie znaleziony wpis z określonym indeksem, wówczas SY-SUBRC jest ustawiana na 0. Jeśli określony indeks jest mniejszy niż 0, wystąpi błąd w czasie wykonywania. Jeśli określony indeks przekracza rozmiar tabeli, wówczas SY-SUBRC jest ustawiana na 4.

Usuwanie tabel wewnętrznych

Istnieje wiele sposobów usuwania wierszy z wewnętrznej tabeli. 1. usuwanie linii w pętli.
To najprostszy sposób usuwania linii.
Sytax
USUŃ .

Ta instrukcja działa tylko w pętli. Usuwa bieżącą linię. Możesz warunkowo usunąć wiersze w pętli, dodając klauzulę WHERE. 2. usuwanie wierszy za pomocą indeksu.
Służy do usuwania wiersza z tabeli wewnętrznej w dowolnym znanym indeksie.
Składnia
USUŃ  INDEKS .
Linia z indeksem jest usuwana. Indeks następującego wiersza jest zmniejszany o 1.