SAP ABAP belső táblázat: létrehozás, olvasás, feltöltés, másolás és törlés

Mi az a belső asztal?

BELSŐ TÁBLÁZAT arra szolgálnak, hogy adatokat nyerjenek egy rögzített struktúrából dinamikus használatra az ABAP-ban. A belső táblázat minden sora azonos mezőszerkezettel rendelkezik. A belső táblák fő felhasználási területe egy programon belüli adatbázistáblázatból származó adatok tárolása és formázása.

Mi az a munkaterület?

A munkaterületek egysoros adatsorok. Ugyanolyan formátumúnak kell lenniük, mint bármelyik belső tábla. Egy belső tábla adatainak soronkénti feldolgozására szolgál.

Mi a különbség a belső asztal és a munkaterület között?

Egy kép többet mond ezer szónál

Különbség a belső asztal és a munkaterület között

A belső táblázatok típusai

Kétféle belső tábla létezik.

  1. Belső táblázatok HEADER sorral
  2. Belső táblázatok HEADER sor nélkül.

Belső táblázatok fejlécsorral

  • Itt a rendszer automatikusan létrehozza a munkaterületet.
  • A munkaterület adattípusa megegyezik a belső táblával.
  • Ezt a munkaterületet HEADER vonalnak nevezik.
  • Itt hajtják végre a táblázat tartalmával kapcsolatos összes módosítást vagy bármely műveletet. Ennek eredményeként a rekordok közvetlenül beilleszthetők a táblába, vagy közvetlenül elérhetők a belső táblából.

Belső táblázatok fejléc nélkül :

  • Itt nincs a táblázathoz társított munkaterület.
  • A munkaterületet kifejezetten meg kell adni, amikor ilyen táblákhoz kell hozzáférnünk.
  • Ezért ezek a táblázatok nem érhetők el közvetlenül.

Belső táblázatok létrehozása

Számos módja van a belső táblázat létrehozásának. Nézzük őket egyenként...

1.A Típusutasítás használatával

Most hozzunk létre egy belső táblázatot az ittab segítségével TYPE utasítás.

A szintaxis:

Types : begin of line,

column1 type I,

column2 type I,

end of line.

Példa:

TYPES : begin of line,

empno		type I,

empname(20)   	type c	,

end of line.

A TYPES utasítás a meghatározott struktúrasort hoz létre.

Egy belső tábla ittab létrehozásához használja a következő parancsot-

Data itab type line occurs 10.

Létrejön egy belső tábla itab a line szerkezetével. A belső tábla szerkezetének deklarálása mellett az OCCURS záradék azt is meghatározza, hogy hány táblabejegyzés kerül tárolásra a fő tárolóban (jelen esetben 10). A további rekordok a lapozási területre íródnak ki, és hatással lehetnek a teljesítményre

2. Egy másik táblázatra hivatkozva

Létrehozhat egy belső táblát egy meglévő táblára hivatkozva. A meglévő táblázat lehet szabvány SAP táblázat, egy Z tábla vagy egy másik belső tábla.

Szintaxis-

Data <f> <type> [with header line].

Példa-

DATA itab TYPE line OCCURS 10 with header line.

Itt egy belső táblázat ittab jön létre a típussorból fejlécsorral. Kérjük, vegye figyelembe, hogy a „fejlécsorral” nem kötelező.

3. A meglévő Struktúrára hivatkozva

Szintaxis-

Data	<f> LIKE <struct> occurs n [with header line].

Példa-

DATA itab LIKE sline OCCURS 10.

Itt egy ittab táblázat jön létre, amelynek szerkezete megegyezik a sline-éval

4. Új struktúra létrehozásával

Most készítsünk egy belső táblát saját struktúrával. Itt a táblázat egy fejlécsorral jön létre, alapértelmezés szerint.

Szintaxis –

Data : Begin of <f> occurs <n>,

<component declaration>,

.................................,

End of <f>.

Példa -

Data : Begin of itab occurs 10,

column1       type I,

column2(4)  type C,

column3      like  mara-ernam,

End of itab.

A belső tábla ittab létrejön

Belső táblázatok feltöltése

Most, hogy sikeresen létrehoztunk néhány belső táblát, nézzük meg, hogyan tölthetjük fel azokat néhány rekorddal. Különféle módszerek állnak rendelkezésre a táblák feltöltésére

1.Adatok hozzáfűzése soronként

Az első elérhető módszer az APPEND utasítás használata.

Az APPEND utasítás használatával vagy hozzáadhatunk egy sort egy másik munkaterületről a belső táblázathoz, vagy hozzáadhatunk egy kezdő sort a belső táblához.

Szintaxis –

APPEND [<wa> TO / INITIAL LINE TO] <itable>.

Itt a munkaterület vagy az Initial Line hozzá van fűzve a belső táblához .

A SY-TABIX rendszerváltozó tartalmazza a hozzáfűzött sor indexét.

Példa:

Data: Begin of itab occurs 10,

col1 type C,

col2 type I,

end of itab.

Append initial line to itab.

Eredmények: ' ' 0'

Az Initial lines a típusának megfelelő értékkel inicializált sort ad a táblázathoz. Itt a col1 egy karakter, a col2 pedig egy egész szám. Ezután APPEND kezdősor, hozzáad egy sort, amely az oszlopok adattípusának megfelelően inicializálódik, azaz szóköz az 1. oszlopnak és 0 a 2. oszlopnak.

2. A COLLECT utasítás használata

A COLLECT egy másik utasítás, amelyet a belső táblák feltöltésére használnak. Általában a COLLECT használatos, amikor sorokat szúr be egy belső táblázatba egyedi szabványos kulccsal.

Szintaxis-

COLLECT [<wa> INTO] <itable>.

Fejléc sorral rendelkező táblák esetén az INTO opció kimarad. Tegyük fel, hogy már van egy bejegyzés, amelynek kulcsa megegyezik azzal, amelyet hozzá akarsz fűzni, akkor nem kerül új sor a táblázatba, hanem mindkét bejegyzés numerikus mezői hozzáadódnak, és csak egy, a kulcsnak megfelelő bejegyzés található. . A SY-TABIX értéke az eredeti bejegyzés sorára módosul. Az Else COLLECT az APPEND-hez hasonlóan működik, és a SY-TABIX tartalmazza a feldolgozott sor indexét.

3.INSERT utasítás használatával

Az INSERT utasítás egy sort/munkaterületet ad a belső táblához. Megadhatja azt a pozíciót, ahol az új sort hozzá kell adni, az INDEX záradék használatával az INSERT utasítással.

Szintaxis

INSERT [<wa> INTO / INITIAL LINE INTO] <itable> [index <idx>].

Itt a munkaterület vagy INICIAL LINE beszúrásra kerül a belső táblázatba indexnél .

Belső táblázatok másolása

Egy belső tábla tartalma átmásolható egy másikba az APPEND LINES vagy INSERT LINES utasítás használatával. Egy egyszerűbb módszer az alábbi szintaxisok bármelyikének használata.

MOVE  <itab1> To <itab2>.

OR

<itab1> = <itab2>.

Ezek átmásolják az ITAB1 tartalmát az ITAB2-be. A fejlécsort tartalmazó belső táblák esetében a []-t kell használnunk, hogy megkülönböztessük a munkaterülettől. Tehát a fejlécsorral rendelkező belső táblázatok tartalmának másolásához a szintaxis a következő lesz:

itab1[] = itab2[].

Olvassa el a belső táblázatokat

Ma már ismerjük a belső táblák létrehozását és adatokkal való feltöltését. Most meglátjuk, hogy ténylegesen hogyan használjuk fel az adatokat, vagy hogyan kérhetjük le az adatokat a belső táblákból.

1. A Loop -Endloop használata

A belső tábla elérésének vagy olvasásának egyik módja a LOOP-ENDLOOP használata.

Szintaxis

LOOP AT <itable> [INTO <wa>]

...................................

ENDLOOP.

Ha itt azt mondod, hogy LOOP AT ITABLE, akkor a belső ITABLE tábla soronként beolvasásra kerül. Az adott sor oszlopainak értékeit a LOOP-ENDLOOP struktúra bármely részében elérheti. Az SY-SUBRC értéke a következőre van állítva 0, még akkor is, ha csak egy rekordot olvasnak be.

2. A READ használata

A belső tábla olvasásának másik módja a READ utasítás használata.

Szintaxis-

READ TABLE <itable> [INTO <wa>] INDEX <idx>.

Ez az utasítás beolvassa az aktuális sort vagy sort az index által meghatározottak szerint . A SY-TABIX értéke a beolvasott sor indexe. Ha a rendszer a megadott indexű bejegyzést találja, akkor az SY-SUBRC értéke 0. Ha a megadott index kisebb, mint 0, akkor futásidejű hiba lép fel. Ha a megadott index meghaladja a táblázat méretét, akkor az SY-SUBRC értéke 4.

Belső táblák törlése

Számos módja van a sorok törlésének egy belső táblából.

1. Sorok törlése hurokban.

Ez a legegyszerűbb módja a sorok törlésének.

Szintaxis

DELETE <ITABLE>.

Ez az állítás csak cikluson belül működik. Törli az aktuális sort. A hurokban lévő sorokat feltételesen törölheti, ha hozzáadja a WHERE záradék.

2.Sorok törlése az index segítségével.

Ez egy sor törlésére szolgál a belső táblából bármely ismert indexnél.

Szintaxis

DELETE <ITABLE> INDEX <IDX>.

A sor az indexszel törlésre kerül. A következő sor indexe 1-gyel csökken.