Az ABAP fejlesztői környezet Az SAP programozása 1. Tarcsi Ádám
1. Fejlesztői környezet Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 2
Fejlesztői környezet ABAP Allgemeiner Berichtsaufbereitungsprozessor Advanced Business Application Programming JAVA.Net konnektor Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 3
Fejlesztés SAP Web Application Server: - Prezentációs réteg: JSP, BSP, Web Dynpro - Business / üzleti réteg: ABAP, Java,.NET - Integrációs réteg: SAP AS - Connectivity réteg: HTTP, HTTPS, SOAP, SSL, SMTP FastCGI - Adatbázis réteg: adatbázis elérés, Open SQL, JDBC Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 4
ABAP 80-as években kezdődött Típusos, Moduláris, Negyedik generációs nyelv, Beágyazott SQL használata: Open SQL / Natív SQL, Elrejti az adatbázist és a felhasználói interfészt is, Objektum-orientált kiegészítéssel is rendelkezik, Platform-független, Szintaktikailag hasonlít a COBOL-ra, Pascal-ra, Interpreter nyelv, Eseményvezérelt utasításokkal rendelkezik, Üzleti folyamatok, az SAP rendszermag fejlesztésére egyaránt alkalmas. Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 5
ABAP program futása Program indítása ABAP Program ABAP blokk Adatbázis tábla ABAP blokk ABAP futtató környezet Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 6
Repository fejlesztési objektumok tára Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 7
ABAP Repository Client 900 Client 901 Application data User accounts Application data User accounts Client dependent Customizing Client dependent Customizing FI CO Client independent customizing Repository (tables, programs, function groups ) Divided into development classes PP TR PS PY BC KM PA Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. Forrás: SAP UCC 8 FS
Object navigator Repository browser Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 9
ABAP Dictionary (SE11) Adatelem Struktúra Domain Adatbázistábla Nézet Osztályok / Interfészek Keresési segítség Zárolási objektum Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 10
Dictionary objektumok - SE11 Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 11
ABAP Development Workbench: Object navigator (SE80) Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 12
ABAP Development Workbench = ABAP fejlesztői környezet Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 13
Fejlesztői környezet Object Navigator (SE80) Alkalmazási hierarchia Csomag Program Funkciócsoport Osztály / interfész Internet service Lokális objektumok BSP-alkalmazás Inaktív objektumok Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 14
A fejlesztés folyamata Fejlesztői rendszer DEV SAP Teszt rendszer QAS SAP Produktív (éles) rendszer PRD Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 15
A fejlesztés lépései 1. Kérelem létrehozása 2. Csomag létrehozása 3. Domain-ek készítése 4. Adatelemek létrehozása 5. Tábla létrehozása 6. Új program létrehozása 7. Program elkészítése 8. Ellenőrzés 9. Aktiválás 10. Tranzakciós kód hozzárendelése 11. Kérelem átvitele a teszt rendszerbe 12. Tesztelés 13. Kérelem átvitele a produktív rendszerbe Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 16
Transzportálás Módosítási kérelem Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 17
Elnevezési konvenciók Vevői program és egyéb objektum (néhány kivételtől eltekintve) csak Z* vagy Y* betűvel kezdődhet. Oka: SAP frissítés vagy bugfix esetén a módosítások problémát, összeakadást okozhatnának! Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 18
Mielőtt elkezdenénk fejleszteni? Fejlesztés előtt nem kötelező csomagot készítneni. Ilyenkor a fejlesztési objektumok a $TMP csomagba kerülnek, azaz lokális objektumok lesznek. Ebben az esetben azonban nem transzportálhatóak át más, az éles rendszerbe. Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 19
2. Egyszerű példaprogram készítése Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 20
Program létrehozása 1. SE80 Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 21
Program készítése 2. Objektum létrehozás Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 22
Program készítése 3. - Programjellemzők Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 23
Program készítése 4. Üres program Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 24
Fejlesztői környezet Nyomógombsor Browser-ek Navigáció Munkaterület Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 25
Ablakok felépítése Menüsor Szimbólumsor Címsor Nyomógombsor Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 26
Nyomógombsor az ABAP fejlesztői környezetben Navigáció Módosítás / megjelenítés váltókapcsoló Aktív / inaktív változat váltókapcsoló Másik objektum Aktiválás Futtatás, tesztelés Ellenőrzés Felhasználáskimutatás Objektumlista megjelenítése Navigációs ablak megjelenítése Teljes képernyős ki- / bekapcsolás Segítség Töréspont beállítása / törlése Minta beszúrása Pretty Priter Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 27
Program készítése 5. Program megírása Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 28
Program készítése 6: Hibakezelés Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 29
Program készítése 7: Ellenőrzés (CTRL+F2) Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 30
Program készítése 8: Futtatás (F8) Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 31
Program készítése 9: Mentés és aktiválás (CTRL+F3) Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 32
Program készítése 10: mentés és aktiválás Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 33
Vizsgálat (CTRL+F2) Megjelenítés Módosítás (CTRL+F1) Közvetlen (F8) - futtatás Aktiválás (CTRL+F3) Felhasználás-kimutatás (CTRL+SHIFT+F3) Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 34
Első program: Típus és adatdeklaráció TYPES: NEV_TIPUS(20) TYPE C. TYPES: CIM_TIPUS(50) TYPE C, BEGIN OF VEVO_TIPUS, NEV TYPE NEV_TIPUS, IR_SZAM TYPE I, CIM TYPE CIM_TIPUS, END OF VEVO_TIPUS. DATA VEVOK_SZAMA TYPE I. " Ez INTEGER típusú DATA VEVO TYPE VEVO_TIPUS. " Egy struktúra DATA UDVOZLET(23) TYPE C VALUE 'Szép jó napot,'. WRITE: Udvozlet, 'Ádám!', VEVOK_SZAMA, VEVO-IR_SZAM. Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 35
Második program REPORT Z_ELSO_01_PRG. * Megjegyzés DATA sv_flight TYPE sflight. "Megjegyzés WRITE 'A járat tábla tartalma:'. SELECT * FROM sflight INTO sv_flight WHERE paymentsum > 10000. NEW-LINE. WRITE: sv_flight-carrid, sv_flight-connid, sv_flight-fldate, sv_flight-price, sv_flight-seatsmax, sv_flight-seatsocc, sv_flight-paymentsum. ENDSELECT. Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 36
Harmadik program: Return code (sy szerkezet) PARAMETERS pa_carr TYPE scarr-carrid. DATA wa_scarr TYPE scarr. WRITE 'A keresett adatok: '. SELECT SINGLE * FROM scarr INTO wa_scarr WHERE carrid = pa_carr. IF sy-subrc EQ 0. NEW-LINE. WRITE: wa_scarr-carrid, wa_scarr-carrname, wa_scarr-url. ELSE. WRITE: 'Nem találtam a szelekciónak megfelelő rekordokat!'. ENDIF. Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 37
Fejlesztői segítségek Online fejlesztői kézikönyv példákkal és egy példavállalattal. SAP Community (Developer) Network https://www.sdn.sap.com Letöltések: https://www.sdn.sap.com/irj/sdn/downloads SAP NetWeaver 7.0 ABAP Trial Version Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 38
3. Tranzakciós kód készítése Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 39
SE93 Tranzakció hozzárendelése a programhoz Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 40
SE93 Tranzakció hozzárendelése a programhoz 2. Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 41
4. Standard SAP program módosítás Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 42
Standard SAP program módosítása elérési kulcs Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 43
5. Kérelem és csomag készítése Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 44
Kérelem és csomag A csomagba kell rakni a fejlesztés összes objektumát: domain, adatelem, tábla, program, stb. Kérelem fogja össze a szállítandó csomagokat. Egy kérelem egy fejlesztési projektet foghat össze és több csomagot is tartalmazhat. A rendszerek közötti mozgatást segíti elő. Úgy értelmzhetőek, hogy a csomagok a leszállítandó áruk és a kérelem a szállítólevél. Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 45
Csomag létrehozása Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 46
Kérelem létrehozása a csomaghoz Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 47
Csomaghozzárendelés módosítása Tarcsi Ádám, ELTE Informatikai Kar: Az SAP programozása 1. 48