Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
Bevezetés az SAP világába
4. Az ABAP fejlesztıi környezet
Zolnai László[email protected]://zolnai.web.elte.hu/bev_sap.html
2ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 2
� Fejlesztés SAP-ban� Az ABAP� ABAP Dictionary� A fejlesztıi környezet� Fejlesztés folyamata� Példaprogramok
Tartalom
3ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 3
SAP Testreszabás eszközei
� A testreszabás hosszú folyamat� A testreszabási feladatok lehetnek:
▪ Nagyon egyszerők▪ Iparág specifikusak (bonyolultak)
� A vállalat szakértı felhasználói és az SAP tanácsadók közösen végzik
� IMG (Implementacion Guide) - Customizingelektronikus kézikönyv, a vállalati igényeket a speciális üzleti igényeknek felelteti meg
A testreszabás nagyon fontos eleme az SAP rendszer imlementációjának. A rendszer átvétele után, amikor az összes kiválasztott modul rendelkezésre áll, be kell állítani a rendszert.
IMG - interaktív modell, projektek szervezésére, megvalósítására vonatkozó javaslatok automatikus létrehozását segíti. Segítik a tanácsadók munkáját speciális üzleti igényeknek megfeleltetı sablonok segítségével
4ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 4
Módosítás vs. bıvítés
� Egy objektumból csak egyetlen eredeti változat létezik az egész világon, minden további másolat
� A másolatokat módosítani veszélyes, mert ha az eredetit frissítik, akkor elágazik a fejlesztés
Standard alkalmazások
User-exitek és egyéb bıvítés
Vásárlói
programok
Testreszabás
Módosítás
Kib ıvítés
Vásárlói fejlesztés
IMG Abap Workbench
Standard módosítás a ügyfeles fejlesztık réme, mert egy patch bármikor felülcsaphatja a módosításaikat.
A fejlesztık tartják a létrát a tanácsadóknak, hogy fent meszelhessenek.
5ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 5
Bıvítési lehetıségek
� User-exitStandard program által meghívott, customer
namespaceben található eljárás� Include structure
Standard program által adatstruktúrába beágyazott vásárlói struktúra
� Append structureVásárló általi struktúra kibıvítés, anélkül, hogy erre
számított volna a standard fejlesztıje� Subscreen
A standard fejlesztı által felajánlott képernyıterület, melyre a vásárló mezıket helyezhet el
� Menu exitMenüstruktúra bıvítésére használható
User-exit – Lukak a sztenderd kódban, saját programrészek beszúrására.Include structure – DDIC-ben kiegészítés
Append structure – DDIC-ben hozzáfőzés
Subscreen – Rejtett mezık felfedése, esetleg képernyı terület beszúrása. (HR – Infótípus módosítás)
Menu exit – Input kiegészítés
6ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 6
Allgemeiner Berichtsaufbereitungsprozessor
Advanced Business Application Programming
ABAP jelentése
Az SAP üzleti alkalmazás kernelje, A C-ben íródott rendszermag kivételével minden alkalmazást ABAP-ban írtak.
ABAP magyarul: fejlett üzleti alkalmazás programozása
ABAP németül: generic report preparation processor
7ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 7
� ‘80-as években indult� 4GL-nyelv� Több nyelven elérhetı� Beágyazott SQL-ek használata: Open SQL� Lépést tartott a programozási
paradigmaváltásokkal, típusos� Objektum-orientált kiegészítéssel rendelkezik� Platform-független� Létezik JAVA, .Net konnektor
ABAP jellemzıi
A ‘70 években a nyelv az R/2 rendszer makrófordítójaként mőködött, és kizárólag listák elıállítására lehetett használni.
A ‘80 években alkalmassá tették üzleti alkalmazások fejlesztésére.
A ‘90 évek óta, az R/3 rendszer megjelenésével az ABAP a negyedik generációba lépett. Az R/3-as rendszer 4.6-os verziójával megjelent az ABAP Objects, amely a klasszikus, procedurális ABAP objektum-orientált továbbfejlesztése.
OOP rugalmasabb használat.
A 4GL eszköz: Futtatható állomány generálása, Objektumorientáltság, Grafikus felhasználói felület, Szabványosság és rugalmasság, Moduláris programfelépítés, Csoportmunka-támogatás, Segédprogramok
JAVA fejlesztések: LSO, HR – toborzás segítı programok (pl.: MÁV), Netweaver, ByDesigne
A Bázis réteget (FI, HR, …) mái napig ABAP-ban fejleszik.
8ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 8
Transzport rendszer
� Módosítások átvezetése a rendszerek között� Átvezethetık:
▪ Repository objektumok▪ Customizing beállítások
� Package – logikai rendezés� Transport request – átmeneti összerendelés
Transzport: Egy csoportosítás, csomagolás, mely az objektumok egyik rendszerbıl a másikba való másolásáért felelıs.
9ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 9
Fejleszt ıirendszer
DEV
Tesztrendszer
TST
Produktívrendszer
PRD
SAP SAP
A fejlesztés folyamata
Fejlesztıi rendszer: saját fejlesztések létrehozása, customizingbeállítások
Teszt/Minıségbiztosítási rendszer: fejlesztések, beállítások tesztelése. (esetleges gyakorló rendszer)
Produktív/Éles rendszer: ide már csak a letesztelt, kipróbált fejlesztések kerülhetnek be
Taszk (feladat): A felhasználó által létrehozott vagy módosítottobjektumok listáját tartalmazza. a rendszer által egy automatikusszámot kap. A rendszerben a SE03-as tranzakció alatt érhetjük el ıket.
Változási kérelem: Egy olyan objektum, amely összefogja a taszkokat és információkat tárol a célrendszerrıl, a transzporttípusáról, a kérés kategóriájáról stb. SU01
A release nem más, mint a taszkok módosításának a befejezése és a transzportra való engedély megadása.
10ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 10
Aktiválás
Átdolgozott
Új Inaktív Aktív
Inaktív
Aktív
Aktív
Idı
A fejlesztés nem lokálisan történik, hanem minden esetben egy központi szerveren, ahol egyszerre többen dolgoznak ugyan annak a programnak más-más részein. Így gyakran elıfordulhat, hogy ha valaki szintaktikai hibát vét, akkor a rendszer egy u.n. Short-Dumpüzenettel tér vissza. Tehát a megoldás mindig, az utolsó stabil verzióhasználata. Erre szolgál az aktív/inaktív logikai kapcsoló, mely segítségével inaktív módban nyugodtan fejleszthetünk, mert mindenki más csak a legutolsó aktív verzióját látja a programrészünknek.
11ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 11
1. Kérelem létrehozása2. Csomag létrehozása (vagy lokális objektum, vagy
a $TMP csomagba)3. Új program létrehozása (SE80 v SE38)4. Program elkészítése5. Ellenırzés, debugger6. Aktiválás7. Tranzakciós kód hozzárendelése (SE93)8. Kérelem átvitele a teszt rendszerbe9. Tesztelés10. Kérelem átvitele a produktív rendszerbe
A fejlesztés lépései
Customer Namespace: Z, Y
12ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 12
Abap Workbench
� Abap Dictionary - (SE11) Adatdefiníciós eszköz� Abap Editor - (SE38) Forráskódok szerkesztése, programok
futtatása� Abap Debugger - Hibakeresést tesz lehetıvé, a /h
gyorsparanccsal indítható� ScreenPainter - Képernyıtervek elkészítése.� MenuPainter - Menüstruktúrák, GUI státuszok elkészítésére� Class Builder - (SE24) Osztályok és interfészek
definiálására alkalmas� Function Builder - (SE37) Funkciós csoportok és modulok
definiálására alkalmas� Object Navigator - (SE80) Integrált fejlesztıi környezet,
mely egyesíti a fentieket
Riportok = ABAP programok
Funkciós csoportok (függvények), modulok, osztályok, interfészek
Ezekhez tartoznak: Szövegelemek, Képernyıtervek, Menütervek, Címsorok
13ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 13
DDIC - Data Dictionary (SE11)
� Data Dictionary (Abap Dictionary)� Milyen objektumok vannak?
▪ Domain▪ Adatelem▪ Tábla▪ Struktúra▪ Nézet
A táblamezık technikai definícióját a domének (pl. mezıtípus, mezıhossz, külsı formátum), szemantikai definícióját (pl. rövidmegnevezés) pedig az adatelemek szolgálják. Több adatelemnek lehet ugyanaz doménje (pl. egy maszkolt darabszám vonatkozhat almákra, és traktorokra is).
Struktúra – Tábla egy sora, több mezı összefőzve, workarea
Nézet – View. Join-olt, összekapcsolt táblák
Tábla karbantartó tranzakciók: SE16, SE16N, SM30, SM31
14ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 14
ABAP fejlesztıi környezet (SE80)
15ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 15
� Csomag� Program� Funkciócsoport� Osztály / interfész� Internet service� Lokális objektumok� BSP-alkalmazás� Inaktív objektumok
Fıbb objektumok
Package: A csomagok egyfajta csoportosítása a repository elemeknek. Program: A standard ABAP programok találhatók ittFunction Group: A funkciós modulok funkciós csoportok szerintifelsorolása – függvenyek SE37
Class/Interface: Mivel objektum orientált ABAP-ról beszélünk, ezértitt láthatóak az osztályokInternet Service: Kölönbözı ITS szolgáltatásokat tartalmaz, idetartoznak a Web szolgáltatások isLocal Objects: Itt azok az objektumok találhatóak, amelyek csak a lokális szerveren tárolódnak, és nincsenek hozzárendelvetranszportokhoz
BSP Application: A Web Dynpro elıtti webes megoldás, mely ötvözi a régi ABAP-ot a HTML kóddal.
16ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 16
ABAP fejlesztıi környezet
Régi sztenderd (R/2) szerint ABAP kódok 72 hosszúak. De mára ez már tetszıleges.
Komment a kommentben probléma sztori.
17ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 17
SE80 - funkció gombok
� Ceruza: Szerkesztı és megjelenítı mód közötti váltás � Mérleg: Szintaktikai ellenırzést végez a programkódon� Gyertya: Aktiválni/ inakvtiválni lehet vele a kódot� Franciakulcs: Az aktuális programkódot futattja� Vasvilla: Megmutatja, hogy az aktuális programot, milyen más
objektum használja még fel. � Stoptáblák: Külsı és belsı töréspontok elhelyezése� Pattern: Elıre definiált programkódokat lehet vele a kódba
beültetni � Pretty Printer: A vizuális formázást valósítja meg
18ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 18
ABAP program futása
Az egyes rétegek közötti interakció egy program futása közben:
PBO (process before output)
PAI (process after input)
19ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 19
IF <feltétel1>. <végrehajtási blokk>
ELSEIF <feltétel2>. <végrehajtási blokk> ...
ELSE. <végrehajtási blokk>
ENDIF.
CASE <mezınév>. WHEN <érték1>.
<végrehajtási blokk> WHEN <érték2>.
<végrehajtási blokk> ...
WHEN OTHERS. <végrehajtási blokk>
ENDCASE.
ABAP nyelvi elemei - elágazások
20ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 20
� DO [<n> TIMES]. <végrehajtási blokk>
ENDDO.
� DO.<végrehajtási blokk>IF <kilépési feltétel>.
EXIT. ENDIF.
ENDDO.
� WHILE <feltétel>.<végrehajtási blokk>
ENDWHILE.
� SELECT <mezınevek>FROM <tábla><végrehajtási blokk>
ENDSELECT.
� LOOP AT <belsı tábla><végrehaajtási blokk>
ENDLOOP.
ABAP nyelvi elemei - Ismétlési szerkezetek
Számláló ciklus
Hátul tesztelıs ciklus
Elöl tesztelıs ciklus
Select – adatbázistáblákból válogatásra
Loop – Belsı táblákon való mőveletekre
Egyéb lehetıség: Get pernr (HR-ben használt eseménykezelés az egyes dolgozók feldobására logikai adatbázisból)
21ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 21
REPORT Z_ELSO_01_PRG.
DATA sv_flight TYPE sflight.
WRITE 'A járat tábla tartalma:'.
SELECT * FROM sflight INTO sv_flightWHERE paymentsum > 10000.NEW-LINE.WRITE: sv_flight-carrid,
sv_flight-connid,sv_flight-price,sv_flight-seatsmax,sv_flight-seatsocc,sv_flight-paymentsum.
ENDSELECT.
Tábla tartalmát kiíró kód
Az ABAP Workbench nagy elınye az integráltságában rejlik, hiszen az ABAP kódban duplán kattintva az objektumok nevére, rögtön megkaphatjuk például a nekik megfelelı bejegyzést az ABAP Dictionaryben és fordítva.
22ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 22
Feldolgozási blokkok
� Esemény blokkok▪ START-OF-SELECTION, INITIALIZATION, stb
� Alprogramok▪ Form-ok
� Funkcióelemek▪ Functions▪ Method-ok
� Include-ok
Eseményblokkok: végrehajtható programoknál az ABAP-futásidırendszer egy meghatározott sorrendben átveszi az eseményblokkok meghívását, melyek egy listában jeleníthetık meg. Az eseményblokkok sorrendje a forráskódban indifferens.
Alprogramok: interfészt tartalmazó programintern modularizálóegységek. A programok alprogramjai egy ABAP-utasítássegítségével bármely feldolgozási blokkból meghívhatók. Szubrutinok.
Funkcióelemek: definiált interfészt tartalmazó, programokat átfogómodularizáló egységek. A funkcióelemek egy ABAP-utasítássegítségével bármely program bármely feldolgozási blokkjából meghívhatók. A metódusok az OOP ABAP.
Include-ok: Ha többen fejlesztenek egy nagyobb programot hasznos, mert a különálló adatokat használ. Top Include – Az includok által használt globális változókat, formokat enkapszulálja.
23ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 23
1X'00'hexadecimálisX
6000000idı HHMMSST
800000000dátum YYYYMMDDD
1spaceszöveg (karakter)C
1000...numerikus szövegN
platform függı0.000...lebegı pontosF
80Decimális adott tizedesjegyekkel
P
platform függı0IntegerI
Kezdı hosszKezdıértékLeírásAdattípus
Elemi adattípusok
Mibıl épülnek fel a mezık adatelemeiAdatelem: Más táblákban, struktúrában felhasználható elemi adattipusokból felepulı rekord tipusokTulajdonságai: elemi tipus, hossza (tizedesjeggyel), keresési súgóPl: HR-ben betrg (Betrag németül) = összeg, pernr (Personnummer németül) = SzTSz – Személügyi TörzsSzám
24ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 24
Belsı táblák
A belsı táblák hasonló szerzetek az adatbázistáblákhoz, azzal a különbséggel hogy ezek a memóriába találhatók. Open SQL - ebben az esetben a programunk a fent említett adatbázis interfészen keresztül kapcsolódik. Automatikusan kiegészíti a Mandanttal a lekérdezést.
Natív SQL - a program közvetlenül az adatbázishoz kapcsolódik.
25ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 25
Dictionary objektumok - SE11
Adatbázistábla, Nézet, Adattípus, Típuscsoport, Domén,
Keresési segítség, Zárolási objektum
Struktúra nézet:
Mezı neve, Kulcs, Inic. Értékek, Adatelem, Adattípus,
Hossz, TízJegy., Rövid megnev.
26ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 26
� Kapcsolattartás a felhasználóval, adatok bevitele, megjelenítése, módosítása.
� Egyszerően programozható, nyomtatással kevéssé kell foglalkozni, HTML konvertálás automatikus.
� Fajtái:� Lista - List� Szelekciós képernyı – Selection screen� Képernyı - Screen
Képernyık - Dynprok
27ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 27
Képernyık I. - Write lista
28ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 28
Képernyık II. - ALV lista
Sorki-választás (dupla kattintás): AT-LINE SELECTION
Fejléc
Menüsor
Oszlop-beállítások, layout
29ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 29
Képernyık III. – Selection screen
Adat-bevitel
Késıbbi feldolgozásra adat kiválasztás
Keresés és beviteli segítség
Ált. köztes képernyı
30ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 30
Képernyık IV. – Screen
Menü és eszköztár
Beviteli segítség
Tervezhetı képernyı
Több ablakos programok egymást hívhatják: CALL SCREEN
31ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 31
Screen painter – SE52
32ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 32
Képernyık V. – Smart Forms
Pl.: Adóbevallás őrlap
33ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 33
� Fejlesztés SAP-ban
� DEV -> TST -> PRD
� Fejlesztı környezet (SE80)
� ABAP program felépítése
� Belsı táblák
� Megjelenítés
Összefoglalás
Milyen mélységő változtatásra van szükség?Transzport folyamatok
Menük, gombok, aktív/inaktív
Tábla szőrés, feldolgozás, kiíratás (PBO, PAI)
Memóriában az adatbázis
Dynpro, listák, smart forms
34ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag 34
Köszönöm a figyelmet!
Zolnai László[email protected]
SAP doesn't hire developers. It initializes them