Introduktion till ABAP: Datatyper, Operators & Editor – Handledning
⚡ Smart sammanfattning
Introduktionen till ABAP täcker språket SAP skapad för att bygga applikationer på R/3-systemet. Denna resurs förklarar datatyperna, operatorerna, kontrollsatserna, den interna tabellen och SE38-editorn där varje ABAP-program börjar.

Vad är ABAP?
ABAP står för Advanced Business Application Programming. Det är ett programmeringsspråk för utvecklingping ansökningar för SAP R/3-system.
Den senaste versionen av ABAP heter ABAP Objects och stöder objektorienterad programmering. SAP kommer att köra applikationer skrivna med ABAP/4, den tidigare ABAP-versionen, samt applikationer som använder ABAP-objekt.
Denna introduktion försöker inte dokumentera alla ABAP-språk konstruktion. Den introducerar snabbt de viktigaste begreppen, så att du kan börja skriva arbetsprogram och sedan gå vidare till de mer avancerade ämnena.
Datatyper
Varje ABAP-program börjar med att deklarera de data det ska arbeta med.
Syntax för att deklarera en variabel i ABAP –
DATA Variable_Name TYPE Variable_Type.
Exempel:
DATA employee_number TYPE I.
Följande är en lista över datatyper som stöds av ABAP.
| Data typ | Initial fältlängd | Giltig fältlängd | Ursprungligt värde | Betydelse |
|---|---|---|---|---|
| Numeriska typer | ||||
| I | 4 | 4 | 0 | Heltal (heltal) |
| F | 8 | 8 | 0 | Flyttalsnummer |
| P | 8 | 1 - 16 | 0 | Packat nummer |
| Karaktärstyper | ||||
| C | 1 | 1 - 65535 | '...' | Textfält (alfanumeriska tecken) |
| D | 8 | 8 | '00000000' | Datumfält (format: ÅÅÅÅMMDD) |
| N | 1 | 1 - 65535 | '0 … 0' | Numeriskt textfält (numeriska tecken) |
| T | 6 | 6 | '000000' | Tidsfält (format: TTMMSS) |
| Hexadecimal typ | ||||
| X | 1 | 1 - 65535 | X'0 … 0′ | Hexadecimalt fält |
De åtta typerna ovan är de klassiska typerna med fast längd. ABAP erbjuder också två typer med variabel längd som nybörjare stöter på nästan omedelbart: STRÄNG för text av valfri längd, och XSTRING för binära data av valfri längd.
ABAP Operatorer
När data har deklarerats är det operatorerna som ändrar och jämför den.
Tilldela värden
a = 16. MOVE 16 TO a. WRITE a TO b.
Alla tre satserna flyttar ett värde. Likhetstecknet är den moderna formen, medan MOVE och WRITE TO är de äldre motsvarigheterna som du fortfarande kommer att stöta på i äldre program.
Aritmetiska operationer
COMPUTE a = a * 100.
ABAP stöder även ADD, SUBTRACT, MULTIPLY och DIVIDE är fristående nyckelord, men COMPUTE-formen som visas ovan är den som används oftast.
logiska operatorer
Logiska operatorer returnerar sant eller falskt, och det är dessa som varje kontrollsats i nästa avsnitt testar. Var och en har en ordform och en symbolform, och de två är utbytbara.
| Ordform | Symbolform | Betydelse |
|---|---|---|
EQ |
= |
Lika med |
NE |
<> |
Inte lika med |
GT |
> |
Större än |
GE |
>= |
Större än eller lika med |
LT |
< |
Less än |
LE |
<= |
Less än eller lika med |
Kontrollutlåtanden
Kontrollsatser använder de logiska operatorerna ovan för att bestämma vilka kodrader som körs och hur ofta.
OM … SLUTOM
IF [NOT] exp [ AND / OR [NOT] exp ]. ........ [ELSEIF exp. .......] [ELSE. .......] ENDIF.
CASE-uttryck
CASE variable. WHEN value1. ......... WHEN value2. ......... [WHEN OTHERS. .........] ENDCASE.
WHILE-slinga
WHILE <logical expression>. ..... ENDWHILE.
DO-slinga
DO <n> TIMES. ..... ENDDO.
En WHILE-loop körs så länge dess villkor gäller. En DO-loop körs ett fast antal gånger, eller oändligt tills en EXIT-sats stoppar den.
Interna tabeller i ABAP
Enskilda variabler är sällan tillräckligt. Affärsprogram läser många rader samtidigt, och den interna tabellen är den struktur som lagrar dem i minnet.
En intern tabell är en dynamisk array. Den har ingen fast storlek, den existerar bara under programmets varaktighet och det är standardsättet att flytta rader mellan databasen och skärmen.
" Declare an internal table and a work area DATA: lt_employees TYPE TABLE OF pa0001, ls_employee TYPE pa0001. " Fill it from the database SELECT * FROM pa0001 INTO TABLE lt_employees UP TO 10 ROWS. " Read it row by row LOOP AT lt_employees INTO ls_employee. WRITE: / ls_employee-pernr, ls_employee-ename. ENDLOOP.
De tre operationerna ovan täcker det mesta av det dagliga arbetet: deklarera tabellen, fyll den med en SELECT-funktion och gå sedan igenom den med LOOP AT. APPEND lägger till en rad, READ TABLE hittar en och DELETE tar bort rader som matchar ett villkor.
ABAP/4-redaktör
All syntax ovan är inskriven på ett enda ställe.
transaktion SE38 öppnar ABAP-redigeraren, där du kommer att spendera större delen av din tid som utvecklare med att skapa och modifiera program.
ABAP/4-redigeraren, transaktion SE38
Hur man skriver sitt första ABAP-program
Skärmen ovan är där följande steg sker. Sekvensen nedan producerar en arbetsrapport på några minuter.
- Öppna redigeraren. Ange transaktionskod SE38 i SAP GUI-kommandofältet och tryck på Enter.
- Namnge programmet. Skriv ett namn som börjar med Z or Y, till exempel
ZHELLO_WORLDDe två bokstäverna är kundens namnrymd, och SAP garanterar att de aldrig kommer att skrivas över under en uppgradering. - Skapa det. Klicka Skapa, ange en kort beskrivning och välj Körbart program som typen.
- Tilldela ett paket. Välja Lokalt objekt för övningsarbete. Ett lokalt objekt stannar kvar i ditt system och behöver ingen transportförfrågan.
- Skriv koden.
REPORT zhello_world. DATA employee_name TYPE string. employee_name = 'Guru99'. WRITE: / 'Hello, ABAP!', / 'Welcome', employee_name.
- Kontrollera syntaxen. Klicka Ctrl + F2Statusfältet rapporterar eventuella fel och raden som orsakade det.
- Aktivera programmet. Klicka Ctrl + F3Ett inaktivt program kan inte köras.
- Kör. Klicka F8Utdatalistan öppnas och visar båda WRITE-raderna.
Snedstrecket i WRITE-satsen tvingar fram en ny rad. Om det tas bort skrivs allt ut på en rad, vilket är den första formateringsvanan som de flesta nybörjare lär sig.
Vanlig ABAP-transaktion Codes
En handfull transaktionskoder täcker nästan allt en ny ABAP-utvecklare behöver.
| transaktion | Syfte |
|---|---|
SE38 |
ABAP-redigerare. Skapa, redigera, kontrollera och kör program. |
SE80 |
Objektnavigator. En enda arbetsbänk för program, klasser, paket och skärmar. |
SE11 |
ABAP-ordbok. Definiera och inspektera databastabeller, dataelement och domäner. |
SE16N |
Dataläsare. Visa innehållet i valfri tabell utan att skriva en SELECT. |
SE37 |
Funktionsbyggare. Skapa och testa funktionsmoduler. |
SE24 |
Klassbyggare. Skapa globala klasser för ABAP-objekt. |
ST22 |
Dumpanalys. Läs körtidsfelet när ett program avslutas. |
SE38 och SE11 räcker för att bygga en första rapport. ST22 blir den mest värdefulla i gruppen i det ögonblick ett program kraschar.

