Úvod do ABAP: datové typy, Operators & Editor – Tutorial

⚡ Chytré shrnutí

Úvod do ABAP zahrnuje jazyk SAP vytvořeno pro tvorbu aplikací v systému R/3. Tento zdroj vysvětluje datové typy, operátory, řídicí příkazy, interní tabulku a editor SE38, kde začíná každý program ABAP.

  • 🔤 Syntaxe deklarace: DATA variable_name TYPE variable_type deklaruje každou proměnnou v ABAP.
  • 🔢 Typy dat: I, F a P obsahují čísla; C, D, N a T obsahují znaky; X obsahuje hexadecimální data.
  • Operators: Aritmetické operátory mění hodnoty, zatímco logické operátory jako EQ, NE, GT a LT řídí rozhodnutí.
  • 🔁 Řídicí příkazy: IF, CASE, WHILE a DO určují, které řádky programu se skutečně spustí.
  • ???? Interní tabulky: Interní tabulka uchovává v paměti více řádků a je pracantem každé ABAP sestavy.
  • 🖥️ Editor: Transakce SE38 je editor ABAP, kde se programy píší, kontrolují a spouští.

Úvod do SAP ABAP

Co je ABAP?

ABAP je zkratka pro Advanced Business Application Programming (pokročilé programování obchodních aplikací). Je to programovací jazyk pro vývojping žádosti o SAP systém R/3.

Nejnovější verze ABAP se nazývá ABAP Objects a podporuje objektově orientované programování. SAP bude spouštět aplikace napsané pomocí ABAP/4, dřívější verze ABAP, stejně jako aplikace využívající ABAP Objects.

Tento úvod se nepokouší zdokumentovat všechny jazyk ABAP konstrukt. Rychle představuje klíčové koncepty, abyste mohli začít psát funkční programy a poté přejít k pokročilejším tématům.

Typy dat

Každý ABAP program začíná deklarací dat, se kterými bude pracovat.

Syntaxe pro deklaraci proměnné v ABAP –

DATA Variable_Name TYPE Variable_Type.

Příklad:

DATA employee_number TYPE I.

Následuje seznam datových typů podporovaných protokolem ABAP.

Datový typ Počáteční délka pole Platná délka pole Počáteční hodnota Význam
Číselné typy
I 4 4 0 Celé číslo (celé číslo)
F 8 8 0 Číslo s plovoucí desetinnou čárkou
P 8 1 - 16 0 Zabalené číslo
Typy postav
C 1 1 - 65535 '…' Textové pole (alfanumerické znaky)
D 8 8 '00000000' Pole s datem (formát: RRRRMMDD)
N 1 1 - 65535 '0 … 0' Číselné textové pole (číselné znaky)
T 6 6 '000000' Časové pole (formát: HHMMSS)
Hexadecimální typ
X 1 1 - 65535 X'0…0′ Hexadecimální pole

Osm výše uvedených typů jsou klasické typy s pevnou délkou. ABAP také nabízí dva typy s proměnnou délkou, se kterými se začátečníci setkávají téměř okamžitě: STRING pro text libovolné délky a XSTRING pro binární data libovolné délky.

ABAP Operatorů

Jakmile jsou data deklarována, operátory je mění a porovnávají.

Přiřazení hodnot

a = 16.
MOVE 16 TO a.
WRITE a TO b.

Všechny tři příkazy přesouvají hodnotu. Znaménko rovnosti je moderní tvar, zatímco MOVE a WRITE TO jsou starší ekvivalenty, se kterými se stále setkáte ve starších programech.

Aritmetické operace

COMPUTE a = a * 100.

ABAP také podporuje operace ADD a SUB.TRACKlíčové funkce T, MIPLY a DIVIDE se používají jako samostatná klíčová slova, ale nejčastěji se používá výše uvedený tvar COMPUTE.

logické operátory

Logické operátory vracejí hodnotu true nebo false a právě je testuje každý řídicí příkaz v následující části. Každý z nich má slovní a symbolický tvar a tyto dva jsou zaměnitelné.

Slovní forma Symbolický tvar Význam
EQ = Rovná
NE <> Nerovná se
GT > Větší než
GE >= Větší nebo roven
LT < Less než
LE <= Less než nebo rovno

Kontrolní výkazy

Řídicí příkazy používají výše uvedené logické operátory k určení, které řádky kódu se spustí a jak často.

POKUD … KONEC POKUD

IF [NOT] exp [ AND / OR [NOT] exp ].
  ........
[ELSEIF exp.
  .......]
[ELSE.
  .......]
ENDIF.

Příkaz CASE

CASE variable.
  WHEN value1.
    .........
  WHEN value2.
    .........
  [WHEN OTHERS.
    .........]
ENDCASE.

Smyčka WHILE

WHILE <logical expression>.
  .....
ENDWHILE.

DO smyčka

DO <n> TIMES.
  .....
ENDDO.

Smyčka WHILE běží tak dlouho, dokud je splněna její podmínka. Smyčka DO běží pevně stanovený početkrát nebo donekonečna, dokud ji nezastaví příkaz EXIT.

Interní tabulky v ABAP

Jednotlivé proměnné málokdy stačí. Obchodní programy čtou mnoho řádků najednou a interní tabulka je struktura, která je uchovává v paměti.

Interní tabulka je dynamické pole. Nemá pevnou velikost, existuje pouze po dobu běhu programu a je standardním způsobem, jak přesouvat řádky mezi databází a obrazovkou.

" 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.

Tři výše uvedené operace pokrývají většinu každodenní práce: deklarace tabulky, její vyplnění pomocí SELECT a následná procházení smyčkou LOOP AT. APPEND přidává řádek, READ TABLE vyhledá řádek a DELETE odstraňuje řádky, které splňují podmínku.

Editor ABAP/4

Veškerá výše uvedená syntaxe je zapsána na jednom místě.

transakce SE38 otevře editor ABAP, kde jako vývojář strávíte většinu času vytvářením a úpravou programů.

Editor ABAP/4

Editor ABAP/4, transakce SE38

Jak napsat svůj první ABAP program

Na výše uvedené obrazovce probíhají následující kroky. Následující sekvence vytvoří funkční zprávu během několika minut.

  1. Otevřete editor. Zadejte kód transakce SE38 v SAP Příkazové pole grafického uživatelského rozhraní a stiskněte klávesu Enter.
  2. Pojmenujte program. Zadejte jméno začínající na Z or Y, Například ZHELLO_WORLDTato dvě písmena představují jmenný prostor zákazníka a SAP zaručuje, že je během upgradu nikdy nepřepíše.
  3. Vytvořte to. klikněte Vytvořit, zadejte krátký popis a vyberte Spustitelný program jako typ.
  4. Přiřadit balíček. Vybrat Lokální objekt pro cvičnou práci. Lokální objekt zůstává ve vašem systému a nevyžaduje žádný požadavek na transport.
  5. Napište kód.
REPORT zhello_world.

DATA employee_name TYPE string.
employee_name = 'Guru99'.

WRITE: / 'Hello, ABAP!',
       / 'Welcome', employee_name.
  1. Zkontrolujte syntaxi. Pro média Ctrl + F2Stavový řádek hlásí jakoukoli chybu a řádek, který ji způsobil.
  2. Aktivujte program. Pro média Ctrl + F3Neaktivní program nelze spustit.
  3. Vykonat. Pro média F8Otevře se výstupní seznam a zobrazí se oba řádky WRITE.

Lomítko v příkazu WRITE vynutí nový řádek. Jeho odstraněním se vše vypíše na jeden řádek, což je první formátovací návyk, který si většina začátečníků osvojí.

Běžná transakce ABAP Codes

Několik transakčních kódů pokrývá téměř vše, co nový vývojář ABAP potřebuje.

transakce Účel
SE38 ABAP Editor. Vytvářejte, upravujte, kontrolujte a spouštějte programy.
SE80 Navigátor objektů. Jednotný pracovní stůl pro programy, třídy, balíčky a obrazovky.
SE11 Slovník ABAP. Definuje a kontroluje databázové tabulky, datové prvky a domény.
SE16N Prohlížeč dat. Zobrazte obsah libovolné tabulky bez nutnosti psaní příkazu SELECT.
SE37 Tvůrce funkcí. Vytvářejte a testujte funkční moduly.
SE24 Tvůrce tříd. Vytvořte globální třídy pro objekty ABAP.
ST22 Analýza výpisu. Přečte chybu za běhu při ukončení programu.

SE38 a SE11 stačí k vytvoření první zprávy. ST22 se stává nejcennějším ze skupiny v okamžiku, kdy dojde k pádu programu.

Nejčastější dotazy

Z a Y tvoří jmenný prostor zákazníka. SAP nikdy nedodává objekty s těmito předponami, takže upgrade nemůže váš program přepsat. Názvy mimo tento jmenný prostor riskují, že budou nahrazeny.

ABAP/4 je procedurální verze, postavená na reportech a podprogramech. Objekty ABAP přidávají třídy, rozhraní a dědičnost. Oba běží ve stejném systému, takže starý i nový kód existují vedle sebe.

Použijte P, zabalený typ. Ukládá desetinná čísla přesně, což je to, co peníze vyžadují. Typ F je číslo s plovoucí desetinnou čárkou a zavádí chyby zaokrouhlování, které činí finanční součty nespolehlivými.

Ano. Asistent s umělou inteligencí dokáže vysvětlit výpis, přeložit pseudokód do ABAP a navrhnout čistší smyčku. Vždy spusťte kontrolu syntaxe, protože vygenerovaný kód může odkazovat na tabulky, které vašemu systému chybí.

Ne bez kontroly. Vygenerovaný kód často ignoruje kontroly autorizace, pravidla výkonu a seznam vydaných API od ABAP Cloud. Považujte ho za první návrh a poté ho otestujte jako jakýkoli jiný kód.

Shrňte tento příspěvek takto: