SAP ABAP Intern tabell: Opprett, les, fylle ut, kopiere og amp; Slett

Innholdsfortegnelse:

Anonim

Hva er et internt bord?

INTERNTABELL brukes til å innhente data fra en fast struktur for dynamisk bruk i ABAP. Hver linje i den interne tabellen har samme feltstruktur. Hovedbruken for interne tabeller er for lagring og formatering av data fra en databasetabell i et program.

I denne opplæringen lærer du:

  • Hva er et internt bord?
  • Hva er et arbeidsområde?
  • Forskjellen mellom internt bord og et arbeidsområde?
  • Typer av interne tabeller
  • Opprette interne tabeller
  • Befolker interne tabeller
  • Kopiere interne tabeller
  • Lesing Internt
  • Slette interne tabeller

Hva er et arbeidsområde?

Arbeidsområder er enkle rader med data. De skal ha samme format som noen av de interne tabellene. Den brukes til å behandle dataene i en intern tabell en linje om gangen.

Forskjellen mellom internt bord og et arbeidsområde?

Et bilde sier tusen ord :-)

Typer av interne tabeller

Det er to typer interne bord.

  1. Interne bord med HEADER-linje
  2. Interne bord uten HEADER-linje.

Interne bord med topplinje

  • Her oppretter systemet automatisk arbeidsområdet.
  • Arbeidsområdet har samme datatype som intern tabell.
  • Dette arbeidsområdet kalles HEADER-linjen.
  • Det er her at alle endringene eller noe av handlingen på innholdet i tabellen er gjort. Som et resultat av dette, kan poster settes direkte inn i tabellen eller nås direkte fra den interne tabellen.

Interne tabeller uten overskrift :

  • Her er det ikke noe arbeidsområde knyttet til tabellen.
  • Arbeidsområdet skal spesifiseres spesifikt når vi trenger tilgang til slike tabeller.
  • Derfor er disse tabellene ikke tilgjengelige direkte.

Opprette interne tabeller

Det er mange måter å lage en intern tabell på. La oss se på dem en etter en - 1.
Ved å
bruke typeforklaringen La oss nå lage en intern tabell der den bruker TYPE-setningen.
Syntaksen er -

Typer: begynnelse av linjen,kolonne1 type I,kolonne2 type I,slutten av linjen.

Eksempel:

TYPER: begynnelsen av linjen,empno type I,empname (20) type c,slutten av linjen.

TYPES-setningen oppretter en strukturlinje som definert.
For å lage en intern tabell, bruk følgende kommando-

Datalinjens typelinje forekommer 10.

En intern tabell-itab opprettes med linjestrukturen. I tillegg til å erklære strukturen til en intern tabell, definerer OCCURS-paragrafen også hvor mange tabelloppføringer som opprettholdes i hovedlagringen (i dette tilfellet 10). Ekstra poster skrives ut til personsøkerområdet og kan påvirke ytelsen
2. Ved å henvise til en annen tabell
Du kan opprette en intern tabell ved å referere til en eksisterende tabell. Den eksisterende tabellen kan være en standard SAP-tabell, en Z-tabell eller en annen intern tabell.
Syntaks-

Data   [med overskrift].

Eksempel-

DATA itab TYPE-linjen OCCURS 10 med topptekstlinje.

Her opprettes en intern tabell itab av typelinjen med en headerlinje. Vær oppmerksom på "med topplinja" er valgfritt
3.By henviser til eksisterende struktur
Syntax-

Data  LIKE  forekommer n [med overskriftslinje].

Eksempel-

DATA itab LIKE sline OCCURS 10.

Her opprettes en tabell-itab med samme struktur som sline
4. Ved å lage en ny struktur
La oss nå lage en intern tabell med en egen struktur. Her er tabellen opprettet med en overskriftslinje, som standard .
Syntaks -

Data: Start av  forekommer ,,…,Slutt på .

Eksempel -

Data: Start av itab forekommer 10,kolonne1 type I,kolonne2 (4) type C,kolonne3 som mara-ernam,Slutten på ITAB.

Intern tabell itab opprettes

Befolker interne tabeller

Nå som vi har opprettet noen interne tabeller, la oss se hvordan vi fyller dem med noen poster. Det er forskjellige metoder som er tilgjengelige for å fylle ut tabeller 1. Legg til data linje for linje Den første tilgjengelige metoden er bruken av APPEND-setningen.
Ved å bruke APPEND-setningen kan vi enten legge til en linje fra et annet arbeidsområde til den interne tabellen, eller vi kan legge til en første linje til den interne tabellen ...
Syntaks -
LEGG TIL [ TIL / INITIAL LINE TO] .
Her er arbeidsområdet eller den første linjen lagt til den interne tabellen .
Systemvariabelen SY-TABIX inneholder indeksen til den vedlagte linjen.
Eksempel:
Data: Start av itab forekommer 10,col1 type C,col2 type I,slutten på itab.Legg til første linje til itab.

Resultater: '' '0'
Innledende linjer legger til en linje initialisert med riktig verdi for sin type i tabellen. Her er col1 et tegn og col2 er et helt tall. TILLEG deretter initiallinjen, legger til en linje initialisert med hensyn til datatypen til kolonnene, dvs. plass for col1 og 0 for col2. 2.Bruk av COLLECT-setningCOLLECT er en annen form for uttalelse som brukes til å fylle ut de interne tabellene. Generelt brukes COLLECT mens du setter inn linjer i et internt bord med unik standardnøkkel.
Syntaks-
SAMLER [ INTO] .

Tilfelle av tabeller med overskrift, INTO-alternativet er utelatt. Anta at det allerede er en oppføring som har den samme nøkkelen som den du prøver å legge til, så blir ikke en ny linje lagt til i tabellen, men de numeriske feltene i begge oppføringene blir lagt til og bare en oppføring som tilsvarer nøkkelen er til stede . Verdien på SY-TABIX endres til raden i den opprinnelige oppføringen. Else COLLECT fungerer som APPEND og SY-TABIX inneholder indeksen til den behandlede linjen. 3 . Bruke INSERT-setningINSERT-setning legger til en linje / arbeidsområde i den interne tabellen. Du kan spesifisere posisjonen der den nye linjen skal legges til ved å bruke INDEX-setningen med INSERT-setningen.
Syntaks
INSERT [ INTO / INITIAL LINE INTO]  [index ].
Her settes arbeidsområdet eller INITIAL LINE inn i den interne tabellen ved indeks .

Kopiere interne tabeller

Innholdet i en intern tabell kan kopieres til en annen ved å bruke setningen APPEND LINES eller INSERT LINES. En enklere måte er å bruke mange av følgende syntakser.
FLYTT  Til .ELLER = .

Disse kopierer innholdet av ITAB1 til ITAB2. I tilfelle interne tabeller med overskriftslinje må vi bruke [] for å skille fra arbeidsområdet. Så, for å kopiere innholdet i interne tabeller med overskrift, blir syntaksen,
itab1 [] = itab2 [].

Les interne tabeller

Vi er nå kjent med å lage interne tabeller og fylle dem med data. Vi får nå se hvordan vi faktisk bruker dataene eller henter dataene fra de interne tabellene. 1. Bruke Loop -EndloopEn av måtene å få tilgang til eller lese den interne tabellen er å bruke LOOP-ENDLOOP.
Syntaks
LOOP AT  [INTO ]… ENDLOOP.

Her når du sier LOOP AT ITABLE, så leses den interne tabellen ITABLE linje for linje. Du kan få tilgang til verdiene til kolonnene for den linjen under hvilken som helst del av LOOP-ENDLOOP-strukturen. Verdien til SY-SUBRC er satt til 0 , selv om bare en post blir lest. 2. Bruke READDen andre metoden for å lese den interne tabellen er å bruke READ-setningen.
Syntaks-
LES TABELL  [IN ] INDEX .

Denne erklæringen leser gjeldende linje eller linje som spesifisert av indeks . Verdien av SY-TABIX er indeksen for den avleste linjen. Hvis en oppføring med den spesifiserte indeksen blir funnet, blir SY-SUBRC satt til 0. Hvis den angitte indeksen er mindre enn 0, oppstår det en kjøretidsfeil. Hvis den angitte indeksen overstiger tabellstørrelsen, er SY-SUBRC satt til 4.

Slette interne tabeller

Det er mange måter å slette linjer fra en intern tabell. 1.Slette linjer i en løkke.
Dette er den enkleste måten å slette linjer på.
Sytax
SLETT .

Denne uttalelsen fungerer bare i en løkke. Den sletter den nåværende linjen. Du kan slette linjene i en løkke betinget ved å legge til WHERE-setningen. 2.Slette linjer ved hjelp av indeksen.
Dette brukes til å slette en linje fra den interne tabellen ved hvilken som helst kunnskapsindeks.
Syntaks
SLETT  INDEKS .
Linjen med indeksen slettes. Indeksen på følgende linje reduseres med 1.