340 likes | 652 Views
SAP ABAP. A short introduction. SAP ABAP. Selectie: IF …… ENDIF. IF …. ELSE … ENDIF. IF …. ELSEIF …. ELSEIF …. ELSE …. ENDIF. IF condition _1. IF condition _2 . statement_ block _1 ENDIF. ENDIF. SAP ABAP. Loops: SELECT * FROM ZMEMBER WHERE Zzcoursetitle = ‘SAP01’.
E N D
SAP ABAP A short introduction
SAP ABAP • Selectie: • IF …… ENDIF. • IF …. ELSE … ENDIF. • IF …. ELSEIF …. ELSEIF …. ELSE …. ENDIF. • IF condition_1. IF condition_2. statement_block_1 ENDIF. ENDIF.
SAP ABAP • Loops: • SELECT * FROM ZMEMBER WHERE Zzcoursetitle = ‘SAP01’. counter_SAP_01 = counter_SAP_01 +1. ENDSELECT. • DO. Statement block. ENDDO. • WHILE condition. ENDWHILE.
SAP ABAP Vb. DO 24 TIMES. minute = 0. DO 60 TIMES. second = 0. DO 60 TIMES. WRITE: / HOUR, MINUTE, SECOND. SECOND = SECOND +1. ENDDO. MINUTE = MINUTE +1. ENDDO. HOUR = HOUR + 1. ENDDO.
SAP ABAP • Loops: Bv. WHILE second > 0. WRITE: / second. second = second -1. ENDWHILE.
SAP ABAP • CONTINUE Statement SELECT * FROM ZMEMBER02. IF ZMEMBER02 LT ‘19850101’. CONTINU . ENDIF. STATEMENT_BLOCK_1. ENDSELECT. Programma gaat statementblock _1 niet uitvoeren als aan de voorwaarde van de IF is voldaan. De loop zal wel verder uitgewerkt worden. • CHECK SELECT * FROM ZMEMBER02. CHECK ZMEMBER02 – mgender = ‘W’. STATEMENT_BLOCK_1. ENDSELECT Indien aan de check voldaan is dan wordt het statementbloc wel uitgevoerd
SAP ABAP • Logische operatoren • EQ = • NE <> • LT < • LE <= • GT > • GE >= Je mag beide gebruiken in de code
SAP ABAP • DATA Type • DATA number01 TYPE i. (integer) TYPE P DECIMALS 2. (double met 2 dec) • DATA number01 TYPE P decimals 2. DATA number02 LIKE number1. • Als je geen type geeft automatisch type c DATA last-name (20) TYPE C. (+/- String met 20 chars) • DATA areacode (4) TYPE N. (numeric field van 4 cijfers)
SAP ABAP • MATH EXPRESSIONS • ADD + • SUBTRACT - • MULTIPLY * • DIVIDE / • MOD rest • DIV resultaat van een integraldivision Je kan beide gebruiken
SAP ABAP • Nog enkele ABAP <-> Java verschillen • Afsluiten met een . • , bij opvolging • WRITE / -> nieuwe regel • WRITE -> gewoon erachter • this . In java me -> in ABAP • Package -> Class -> Programs • Parameters op voorhand ingeven in
SAP ABAP compileren activeren Let op: als je wenst te veranderen of toevoegen ->
Voorbeeld programma class • *&---------------------------------------------------------------------**& Report Z_JA_KHLCATERING*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT z_ja_khlcatering.*DATA gt_resto TYPE REF TO z_ja_koekenkraam.include Z_JA_KHLCATERING_I.CREATE OBJECT gt_resto EXPORTING name = 'GT_RESTO'.DATA koek1 TYPE REF TO z_ja_koffiekoek.DATA koek2 TYPE REF TO z_ja_koffiekoek.DATA koek3 TYPE REF TO z_ja_koffiekoek.DATA prijs1 TYPE p VALUE '0.85'.CREATE OBJECT koek1 EXPORTING name = 'Puddinghoorntje'price = prijs1.DATA prijs2 TYPE p VALUE '1.65'.CREATE OBJECT koek2EXPORTINGname = 'Frangipanne'price = prijs2.DATA prijs3 TYPE p VALUE '2.05'.CREATE OBJECT koek3EXPORTINGname = 'Berliner bol'price = prijs3.
Vb. class programma met ‘switch’ • method VERKOPEN. DATA: TOTAAL TYPE P DECIMALS 2, SUBTOT TYPE P DECIMALS 2. CASE keuze. WHEN 0. WRITE / 'Het TOTAAL van deze aankoop = '. WRITE TOTAAL. WHEN 1. CALL METHOD KOEK1->VERKOOP. CALL METHOD KOEK1->GET_PRIJS Wat staat hier? Doe een call naar de methode VERKOOP via object IMPORTING E_PRIJS = SUBTOT. KOEK1 . In Java: KOEK1.verkoop ( ); TOTAAL = TOTAAL + SUBTOT. WHEN 2. een call naar de methode GET_PRIJS. Je ontvangt E_PRIJS (zo heb je CALL METHOD KOEK2->VERKOOP. De parameter genoemd bij het definiëren van de ‘EXPORT’ value bij de CALL METHOD KOEK2->GET_PRIJS methode GET_PRIJS). Je stelt E_PRIJS gelijk aan SUBTOT. IMPORTING E_PRIJS = SUBTOT. TOTAAL = TOTAAL + SUBTOT. WHEN 3. CALL METHOD KOEK3->VERKOOP. CALL METHOD KOEK3->GET_PRIJS IMPORTING E_PRIJS = SUBTOT. TOTAAL = TOTAAL + SUBTOT. WHEN OTHERS. WRITE / 'U keuze is momenteel niet in de aanbieding'. ENDCASE.endmethod.
Voorbeeld methode uit class method KASSA. DATA KAS TYPE p DECIMALS 2. DATA KASTOT TYPE p DECIMALS 2. CALL METHOD KOEK1->BEREKENOMZET IMPORTING OMZET = KAS. KASTOT = KASTOT + KAS. CALL METHOD KOEK2->BEREKENOMZET IMPORTING OMZET = KAS. KASTOT = KASTOT + KAS.CALL METHOD KOEK3->BEREKENOMZET IMPORTING OMZET = KAS. KASTOT = KASTOT + KAS. WRITE / 'De omzet van vandaag is:'. WRITE KASTOT.endmethod.
SE 80 Package aanmaken: Z_JA_ loginnr. Normaal gaat SAP je een developerkey vragen. Check Docent Maak een programma (of class) aan. Transport nodig? Maak de oefening van de thermostaat. Maak de nodige methodes en bijhorende parameters imports/ exports Goodluck.
Oefening : • Maak een thermostaat voor een airco. • (instantie)variabelen: • temperatuur • increment (de eenheid waarmee je verhoogd of verlaagd) • (class)variabelen: • minimum • maximum • Constructor krijgt de temperatuur en het increment mee als parameter • Maak de nodige setters/getters • Maak een methode verhoog (als je deze methode selecteert dan verhoog hij met incr. tot een maximum) • Methode toString: Schrijf een ‘String’ notatie van de huidige temperatuur bv.