SAP ABAP sisemine tabel: loomine, lugemine, täitmine, kopeerimine ja & Kustuta

Lang L: none (table-of-contents):

Anonim

Mis on sisemine tabel?

SISETABELI kasutatakse andmete saamiseks fikseeritud struktuurilt dünaamiliseks kasutamiseks ABAP-is. Igal sisemise tabeli real on sama väljastruktuur. Sisemiste tabelite peamine kasutusala on andmebaasis olevate andmete salvestamine ja vormindamine programmi sees.

Selles õpetuses saate teada:

  • Mis on sisemine tabel?
  • Mis on tööpiirkond?
  • Erinevus sisemise laua ja tööpiirkonna vahel?
  • Sisemiste tabelite tüübid
  • Sisemiste tabelite loomine
  • Sisetabelite täitmine
  • Sisemiste tabelite kopeerimine
  • Sisemine lugemine
  • Sisemiste tabelite kustutamine

Mis on tööpiirkond?

Tööpiirkonnad on üks rida andmeid. Neil peaks olema sama vorming nagu mis tahes sisemistel tabelitel. Seda kasutatakse sisemise tabeli andmete töötlemiseks üks rida korraga.

Erinevus sisemise laua ja tööpiirkonna vahel?

Pilt ütleb tuhat sõna :-)

Sisemiste tabelite tüübid

Sisemisi tabeleid on kahte tüüpi.

  1. Sisemised tabelid reaga HEADER
  2. Sisemised tabelid ilma reata HEADER.

Päisjoonega sisemised tabelid

  • Siin loob süsteem automaatselt tööpiirkonna.
  • Tööpiirkonnal on sama andmetüüp kui sisemisel tabelil.
  • Seda tööpiirkonda nimetatakse liiniks HEADER.
  • Siin tehakse kõik muudatused või toimingud tabeli sisus. Selle tulemusena saab kirjeid otse tabelisse sisestada või otse sisemisest tabelist juurde pääseda.

Siselauad ilma päisereata :

  • Siin pole tabeliga seotud tööpiirkonda.
  • Tööpiirkond tuleb selgelt määratleda, kui peame sellistele tabelitele juurde pääsema.
  • Seetõttu ei saa nendele tabelitele otse juurde pääseda.

Sisemiste tabelite loomine

Sisemise tabeli loomiseks on palju võimalusi. Vaatame neid ükshaaval- 1.
Tüüplause kasutades
loome nüüd sisemise tabeli itab, kasutades käsku TÜÜP.
Süntaks on -

Tüübid: rea algus,veerg1 tüüp I,veerg 2 tüüp I,rea lõpp.

Näide:

TÜÜBID: rea algus,I tüüpi empno,emnimi (20) tüüp c,rea lõpp.

TYPES-lause loob struktuuri joone vastavalt määratlusele.
Sisemise tabeli itab loomiseks kasutage järgmist käsku

Andmete itabi tüübi rida esineb 10.

Sisemine tabel itab luuakse rea struktuuriga. Lisaks sisemise tabeli struktuuri deklareerimisele määratleb OCCURS-klausel ka selle, mitu tabelikirjet põhihoidlas hoitakse (antud juhul 10). Lisakirjed kirjutatakse otsingualale ja need võivad mõjutada jõudlust
2. Viidates teisele tabelile,
saate luua sisemise tabeli, viidates olemasolevale tabelile. Olemasolev tabel võib olla tavaline SAP-tabel, Z-tabel või mõni muu sisetabel.
Süntaks-

Andmed   [koos päisereaga].

Näide

ANDMED itab TÜÜPI rida VÄLJAB 10 päisereaga.

Siin luuakse sisemine tabel itab tüübireal koos päisereaga. Pane tähele "koos päisega" on vabatahtlik
3.By viidates olemasolevatele struktuur
Syntax-

Andmed  LIKE  esinevad n [koos päisereaga].

Näide

ANDMED itab NAGU slaid ESINEMISED 10.

Siin luuakse tabel itab, mille struktuur on sama mis
slaidil 4. Uue struktuuri loomisega Looge
nüüd sisemine tabel, millel on oma struktuur. Siin luuakse tabel vaikimisi reaga Päis .
Süntaks -

Andmed:  algus toimub ,,…, lõpp.

Näide -

Andmed: itabi algus toimub 10,veerg1 tüüp I,2. veeru (4) tüüp C,veerg 3 nagu mara-ernam,Itabi lõpp.

Sisemine tabel itab on loodud

Sisetabelite täitmine

Nüüd, kui oleme edukalt loonud mõned sisemised tabelid, vaatame, kuidas neid mõne kirjega täita. Tabelite 1 täitmiseks on saadaval mitu meetodit. Lisa andmed rea kaupa Esimene saadaolev meetod on lause APPEND kasutamine.
Lauset APPEND kasutades saame kas lisada ühe rea teisest tööpiirkonnast sisemisse tabelisse või lisada ühe esialgse rea sisemisse tabelisse ...
Süntaks -
LISA [ TO / INITIAL LINE TO] .
Siin on tööala või algne rida lisatud sisemisele tabelile .
Süsteemimuutuja SY-TABIX sisaldab lisatud rea indeksit.
Näide:
Andmed: itabi algus toimub 10,col1 tüüp C,col2 I tüüp,itabi lõpp.Lisa algne rida itabile.

Tulemused: '' '0'
Esialgsed read lisavad tabelisse rea, mis on initsialiseeritud selle tüübi õige väärtusega. Siin on col1 tähemärk ja col2 täisarv. Seejärel lisage esialgne rida, lisatakse veergude andmetüübi suhtes initsialiseeritud rida, st ruumi col1 ja 0 col2 jaoks. 2. COLLECT-lause kasutamineCOLLECT on veel üks avaldusvorm, mida kasutatakse sisemiste tabelite täitmiseks. Üldiselt kasutatakse COLLECT-i, samal ajal kui sisestatakse read unikaalse standardvõtmega sisetabelisse.
Süntaks-
KOGU [ INTO] .

Tabelite lisamine reaga Päis, valik INTO jäetakse välja. Oletame, et juba on kirje, millel on sama võti kui sellel, mida proovite lisada, siis tabelisse uut rida ei lisata, kuid mõlema kirje numbriväljad lisatakse ja ainult üks võtmele vastav kirje on olemas . SY-TABIX väärtus muudetakse algse kirje reaks. Muidu COLLECT toimib sarnaselt lisaga ja SY-TABIX sisaldab töödeldud rea indeksit. 3 . INSERT-lause kasutamine INSERT-lauselisab sisemisele tabelile rea / tööala. Punkti, kuhu uus rida lisatakse, saate kasutada lauset INSERT käsuga INDEX.
Süntaks
INSERT [ INTO / INITIAL LINE INTO]  [register ].
Siin sisestatakse tööpiirkond või INITIAL LINE sisetabelisse indeksis .

Sisemiste tabelite kopeerimine

Ühe sisemise tabeli sisu saab teisele kopeerida, kasutades käsku LISANDA RIDAD või LISA RIDAD. Lihtsam viis on kasutada järgmisi süntakse.
LIIGU  asukohta .VÕI = .

Need kopeerivad ITAB1 sisu ITAB2-sse. Sisemiste tabelite lisamine päisereaga peame tööpiirkonnast eristamiseks kasutama [] inorder. Niisiis, sisetabelite sisu kopeerimiseks päisereaga muutub süntaks,
itab1 [] = itab2 [].

Lugege sisetabeleid

Oleme nüüd kursis sisetabelite loomise ja nende andmetega täitmisega. Nüüd näeme, kuidas me andmeid tegelikult kasutame või andmeid sisemistest tabelitest kätte saame. 1. Loop -Endloopi kasutamineSisemise tabeli juurde pääsemiseks või selle lugemiseks on üks viis LOOP-ENDLOOP.
Süntaks
LOOP AT  [INTO ] ... LÕPP.

Siin, kui ütlete LOOP AT ITABLE, loetakse sisemist tabelit ITABLE ridade kaupa. Selle rea veergude väärtustele pääseb juurde LOOP-ENDLOOP-i struktuuri mis tahes osas. SY-SUBRC väärtuseks määratakse 0 , isegi kui loetakse ainult ühte kirjet. 2. READ-i kasutamineTeine meetod sisemise tabeli lugemiseks on READ-lause kasutamine.
Süntaks-
LUGEGE TABEL  [INTO ] INDEKS .

See lause loeb praegust rida või rida, nagu on määratletud indeksiga . SY-TABIX väärtus on loetud rea indeks. Kui leitakse määratud indeksiga kirje, seatakse SY-SUBRC väärtuseks 0. Kui määratud indeks on väiksem kui 0, siis ilmneb käitustõrge. Kui määratud indeks ületab tabeli suurust, määratakse SY-SUBRC väärtuseks 4.

Sisemiste tabelite kustutamine

Sisemisest tabelist ridade kustutamiseks on palju võimalusi. 1. Joonte kustutamine silmusest.
See on lihtsaim viis ridade kustutamiseks.
Sytax
Kustuta .

See lause töötab ainult silmus. See kustutab praeguse rea. Tsüklis olevad read saab tinglikult kustutada, lisades klausli WHERE. 2. Joonte kustutamine indeksi abil.
Seda kasutatakse sisetabeli rea kustutamiseks mis tahes teabeandmest.
Süntaks
KUSTUTA  INDEKS .
Rida indeksiga kustutatakse. Järgmise rea indeksit vähendatakse 1-ga.