Interná tabuľka SAP ABAP: Vytváranie, čítanie, vyplňovanie, kopírovanie a Odstrániť

Obsah:

Anonim

Čo je interná tabuľka?

INTERNÁ TABUĽKA sa používajú na získanie údajov z pevnej štruktúry pre dynamické použitie v ABAP. Každý riadok v internej tabuľke má rovnakú štruktúru poľa. Hlavné použitie pre interné tabuľky je na ukladanie a formátovanie údajov z databázovej tabuľky v rámci programu.

V tomto návode sa dozviete:

  • Čo je interná tabuľka?
  • Čo je pracovná oblasť?
  • Rozdiel medzi interným stolom a pracovnou oblasťou?
  • Typy interných tabuliek
  • Vytváranie interných tabuliek
  • Naplnenie interných tabuliek
  • Kopírovanie interných tabuliek
  • Čítanie interné
  • Vymazávanie interných tabuliek

Čo je pracovná oblasť?

Pracovné oblasti sú jednotlivé riadky údajov. Mali by mať rovnaký formát ako ktorákoľvek z interných tabuliek. Používa sa na spracovanie údajov v internej tabuľke po jednom riadku.

Rozdiel medzi interným stolom a pracovnou oblasťou?

Obrázok hovorí tisíc slov :-)

Typy interných tabuliek

Existujú dva typy interných tabuliek.

  1. Interné stoly s riadkom HEADER
  2. Interné stoly bez riadku HEADER.

Interné tabuľky s hlavičkou

  • Tu systém automaticky vytvorí pracovnú oblasť.
  • Pracovná oblasť má rovnaký dátový typ ako interná tabuľka.
  • Táto pracovná oblasť sa nazýva riadok HEADER.
  • Tu sa vykonajú všetky zmeny alebo akékoľvek akcie týkajúce sa obsahu tabuľky. Vďaka tomu je možné záznamy priamo vkladať do tabuľky alebo k nim priamo pristupovať z internej tabuľky.

Interné tabuľky bez nadpisu :

  • Tu nie je s tabuľkou spojená žiadna pracovná oblasť.
  • Pracovná oblasť musí byť výslovne špecifikovaná, keď potrebujeme prístup k takýmto tabuľkám.
  • Preto k týmto tabuľkám nie je možné získať priamy prístup.

Vytváranie interných tabuliek

Existuje mnoho spôsobov, ako vytvoriť internú tabuľku. Pozrime sa na ne jeden po druhom.
1. Použitím
príkazu typu Vytvorme teraz pomocou príkazu TYPE internú tabuľku itab.
Syntax je -

Typy: začiatok riadku,stĺpec 1 typ I,stĺpec 2 typ I,koniec riadku.

Príklad:

TYPY: začiatok riadku,empno typu I,empname (20) typ c,koniec riadku.

Príkaz TYPES vytvorí riadok štruktúry, ako je definované.
Ak chcete skutočne vytvoriť internú tabuľku itab, použite nasledujúci príkaz

Údajový riadok typu itab sa vyskytuje 10.

Interná tabuľka itab je vytvorená so štruktúrou riadku. Okrem deklarovania štruktúry internej tabuľky klauzula OCCURS tiež definuje, koľko záznamov tabuľky sa uchováva v hlavnom úložisku (v tomto prípade 10). Do stránkovacej oblasti sa zapisujú ďalšie záznamy, ktoré môžu ovplyvňovať výkon
2. Odkazy na inú tabuľku
Internú tabuľku môžete vytvoriť odkazom na existujúcu tabuľku. Existujúca tabuľka môže byť štandardná tabuľka SAP, tabuľka Z alebo iná interná tabuľka.
Syntax-

Údaje   [s riadkom hlavičky].

Príklad-

DATA itab TYPE riadok OCCURS 10 s riadkom hlavičky.

Tu sa vytvorí interná tabuľka itab z typového riadku s riadkom hlavičky. Upozorňujeme, že text „s riadkom hlavičky“ je voliteľný.
3. Odkazom na existujúcu
syntax štruktúru

Dáta  LIKE  sa vyskytujú n [s riadkom hlavičky].

Príklad-

DATA itab LIKE sline NACHÁDZA SA 10.

Tu sa vytvorí tabuľka itab, ktorá má rovnakú štruktúru ako riadok
4. Vytvorením novej štruktúry
Poďme si teraz vytvoriť internú tabuľku s vlastnou štruktúrou. Tu je vytvorená tabuľka s riadok hlavičky, v predvolenom nastavení .
Syntax -

Údaje: Začiatok  nastáva ,,…,Koniec .

Príklad -

Údaje: Začiatok itab nastáva 10,stĺpec 1 typ I,stĺpec 2 (4) typ C,stĺpec3 ako mara-ernam,Koniec itab.

Vytvorí sa interná tabuľka itab

Naplnenie interných tabuliek

Teraz, keď sme úspešne vytvorili niektoré interné tabuľky, pozrime sa, ako ich vyplníme niektorými záznamami. Na vyplnenie tabuliek sú k dispozícii rôzne metódy 1. Pripojiť údaj po riadku Prvou dostupnou metódou je použitie príkazu APPEND.
Pomocou príkazu APPEND môžeme do vnútornej tabuľky pridať jeden riadok z inej pracovnej oblasti alebo do vnútornej tabuľky pridať jeden začiatočný riadok ...
Syntax -
PRIPOJIŤ [ DO / POČIATOČNÉHO RIADKU] .
Tu je pracovná oblasť alebo začiatočný riadok pripojená k internej tabuľke .
Systémová premenná SY-TABIX obsahuje index pripojeného riadku.
Príklad:
Údaje: Začiatok itab nastáva 10,col1 typ C,col2 typ I,koniec itab.Pripojiť začiatočný riadok k itab.

Výsledky: '' '0'
Počiatočné riadky pridajú do tabuľky riadok inicializovaný so správnou hodnotou svojho typu. Col1 je tu znak a col2 je celé číslo. Potom APPEND počiatočný riadok pridá riadok inicializovaný vzhľadom na dátový typ stĺpcov, tj medzeru pre stĺpec 1 a 0 pre stĺpec 2. 2. Použitie príkazuCOLLECT COLLECT je iná forma príkazu používaného na vyplnenie interných tabuliek. Spravidla sa COLLECT používa pri vkladaní riadkov do internej tabuľky s jedinečným štandardným kľúčom.
Syntax-
ZBIERAŤ [ DO] .

V prípade tabuliek s riadkom Hlavička je možnosť INTO vynechaná. Predpokladajme, že už existuje záznam, ktorý má kľúč rovnaký ako ten, ktorý sa pokúšate pridať, potom sa do tabuľky nepridá nový riadok, ale pridajú sa numerické polia oboch záznamov a je prítomný iba jeden záznam zodpovedajúci kľúču. . Hodnota SY-TABIX sa zmení na riadok pôvodného záznamu. Else COLLECT funguje podobne ako APPEND a SY-TABIX obsahuje index spracovaného riadku. 3 . Pomocou príkazu INSERT príkazINSERT pridá do internej tabuľky riadok / pracovnú oblasť. Môžete určiť pozíciu, na ktorú sa má nový riadok pridať, pomocou klauzuly INDEX s príkazom INSERT.
Syntax
INSERT [ INTO / INITIAL LINE INTO]  [index ].
Tu sa pracovná oblasť alebo INITIAL LINE vloží do internej tabuľky v indexe .

Kopírovanie interných tabuliek

Obsah jednej internej tabuľky je možné kopírovať do druhej pomocou príkazu APPEND LINES alebo INSERT LINES. Jednoduchším spôsobom je použitie nasledujúcich syntaxí.
PRESUNÚŤ  do .ALEBO = .

Tieto kopírujú obsah ITAB1 do ITAB2. V prípade interných tabuliek s riadkom hlavičky musíme na rozlíšenie od pracovnej oblasti použiť poradie []. Takže na kopírovanie obsahu interných tabuliek s riadkom hlavičky sa stane syntax,
itab1 [] = itab2 [].

Prečítajte si interné tabuľky

Teraz poznáme vytváranie interných tabuliek a ich vyplnenie údajmi. Teraz uvidíme, ako vlastne použijeme údaje alebo ich načítame z interných tabuliek. 1. Používanie Loop -EndloopJedným zo spôsobov prístupu alebo čítania internej tabuľky je použitie LOOP-ENDLOOP.
Syntax
SLUČKA AT  [DO ] ... KONIEC.

Tu, keď poviete LOOP AT ITABLE, potom sa interná tabuľka ITABLE číta riadok po riadku. K hodnotám stĺpcov pre tento riadok môžete pristupovať počas ktorejkoľvek časti štruktúry LOOP-ENDLOOP. Hodnota SY-SUBRC je nastavená na 0 , aj keď je načítaný iba jeden záznam. 2. Používanie READDruhou metódou čítania internej tabuľky je použitie príkazu READ.
Syntax-
READ TABLE  [INTO ] INDEX .

Tento príkaz prečíta aktuálny riadok alebo riadok tak, ako je určené indexom . Hodnota SY-TABIX je index prečítaného riadku. Ak sa nájde záznam so zadaným indexom, potom sa SY-SUBRC nastaví na 0. Ak je zadaný index menší ako 0, dôjde k chybe spustenia. Ak zadaný index presahuje veľkosť tabuľky, potom je SY-SUBRC nastavený na 4.

Vymazávanie interných tabuliek

Existuje mnoho spôsobov, ako odstrániť riadky z internej tabuľky. 1. Odstránenie riadkov v slučke.
Toto je najjednoduchší spôsob mazania riadkov.
Sytax
ODSTRÁNIŤ .

Toto vyhlásenie funguje iba v rámci slučky. Vymaže aktuálny riadok. Riadky v slučke môžete odstrániť podmienene pridaním klauzuly WHERE. 2. Odstránenie riadkov pomocou indexu.
Používa sa na odstránenie riadku z internej tabuľky v ľubovoľnom známom indexe.
Syntax
ODSTRÁNIŤ  INDEX .
Riadok s indexom sa odstráni. Index nasledujúceho riadku sa zníži o 1.