Bevezetés az SAP világába
Zolnai László
[email protected] http://zolnai.web.elte.hu/bev_sap.html
4. Az ABAP fejlesztıi környezet ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
1
Tartalom
Fejlesztés SAP-ban Az ABAP ABAP Dictionary A fejlesztıi környezet Fejlesztés folyamata Példaprogramok
ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
2
2
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) - Customizing elektronikus kézikönyv, a vállalati igényeket a speciális üzleti igényeknek felelteti meg
ELTE SAP Excellence Center Oktatóanyag
3
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
ELTE SAP Excellence Center Oktatóanyag
3
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
Testreszabás
User-exitek és egyéb bıvítés
Módosítás
IMG
Kibıvítés
Vásárlói programok
Vásárlói fejlesztés
Abap Workbench
ELTE SAP Excellence Center Oktatóanyag
4
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.
ELTE SAP Excellence Center Oktatóanyag
4
Bıvítési lehetıségek
User-exit Standard 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 structure Vá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 exit Menüstruktúra bıvítésére használható ELTE SAP Excellence Center Oktatóanyag
5
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
ELTE SAP Excellence Center Oktatóanyag
5
ABAP jelentése
Allgemeiner Berichtsaufbereitungsprozessor Advanced Business Application Programming
ELTE SAP Excellence Center Oktatóanyag
6
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
ELTE SAP Excellence Center Oktatóanyag
6
ABAP jellemzıi
‘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
ELTE SAP Excellence Center Oktatóanyag
7
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 objektumorientá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.
ELTE SAP Excellence Center Oktatóanyag
7
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
ELTE SAP Excellence Center Oktatóanyag
8
Transzport: Egy csoportosítás, csomagolás, mely az objektumok egyik rendszerbıl a másikba való másolásáért felelıs.
ELTE SAP Excellence Center Oktatóanyag
8
A fejlesztés folyamata
Fejlesztıi rendszer DEV
Produktív rendszer PRD
Teszt rendszer TST SAP
SAP
ELTE SAP Excellence Center Oktatóanyag
9
Fejlesztıi rendszer: saját fejlesztések létrehozása, customizing beá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ított objektumok listáját tartalmazza. a rendszer által egy automatikus szá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 transzport tí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.
ELTE SAP Excellence Center Oktatóanyag
9
Aktiválás
Új
Inaktív
Aktív
Aktív
Átdolgozott
Inaktív
Aktív
Idı
ELTE SAP Excellence Center Oktatóanyag
10
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.
ELTE SAP Excellence Center Oktatóanyag
10
A fejlesztés lépései
1. Kérelem létrehozása 2. 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ése 5. Ellenırzés, debugger 6. Aktiválás 7. Tranzakciós kód hozzárendelése (SE93) 8. Kérelem átvitele a teszt rendszerbe 9. Tesztelés 10. Kérelem átvitele a produktív rendszerbe
ELTE SAP Excellence Center Oktatóanyag
11
Customer Namespace: Z, Y
ELTE SAP Excellence Center Oktatóanyag
11
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
ELTE SAP Excellence Center Oktatóanyag
12
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
ELTE SAP Excellence Center Oktatóanyag
12
DDIC - Data Dictionary (SE11)
Data Dictionary (Abap Dictionary) Milyen objektumok vannak? ▪ ▪ ▪ ▪ ▪
Domain Adatelem Tábla Struktúra Nézet
ELTE SAP Excellence Center Oktatóanyag
13
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övid megnevezé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
ELTE SAP Excellence Center Oktatóanyag
13
ABAP fejlesztıi környezet (SE80)
ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
14
14
Fıbb objektumok
Csomag Program Funkciócsoport Osztály / interfész Internet service Lokális objektumok BSP-alkalmazás Inaktív objektumok
ELTE SAP Excellence Center Oktatóanyag
15
Package: A csomagok egyfajta csoportosítása a repository elemeknek. Program: A standard ABAP programok találhatók itt Function Group: A funkciós modulok funkciós csoportok szerinti felsorolása – függvenyek SE37 Class/Interface: Mivel objektum orientált ABAP-ról beszélünk, ezért itt láthatóak az osztályok Internet Service: Kölönbözı ITS szolgáltatásokat tartalmaz, ide tartoznak a Web szolgáltatások is Local Objects: Itt azok az objektumok találhatóak, amelyek csak a lokális szerveren tárolódnak, és nincsenek hozzárendelve transzportokhoz BSP Application: A Web Dynpro elıtti webes megoldás, mely ötvözi a régi ABAP-ot a HTML kóddal.
ELTE SAP Excellence Center Oktatóanyag
15
ABAP fejlesztıi környezet
ELTE SAP Excellence Center Oktatóanyag
16
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.
ELTE SAP Excellence Center Oktatóanyag
16
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
ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
17
17
ABAP program futása
ELTE SAP Excellence Center Oktatóanyag
18
Az egyes rétegek közötti interakció egy program futása közben: PBO (process before output) PAI (process after input)
ELTE SAP Excellence Center Oktatóanyag
18
ABAP nyelvi elemei - elágazások
IF
. ELSEIF . ... ELSE. ENDIF.
CASE <mezınév>. WHEN <érték1>. WHEN <érték2>. ... WHEN OTHERS. ENDCASE.
ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
19
19
ABAP nyelvi elemei - Ismétlési szerkezetek
DO [ TIMES]. ENDDO.
DO. IF . EXIT. ENDIF. ENDDO.
SELECT <mezınevek> FROM ENDSELECT.
LOOP AT ENDLOOP.
WHILE . ENDWHILE.
ELTE SAP Excellence Center Oktatóanyag
20
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)
ELTE SAP Excellence Center Oktatóanyag
20
Tábla tartalmát kiíró kód
REPORT Z_ELSO_01_PRG. DATA sv_flight TYPE sflight. 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-price, sv_flight-seatsmax, sv_flight-seatsocc, sv_flight-paymentsum. ENDSELECT. ELTE SAP Excellence Center Oktatóanyag
21
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.
ELTE SAP Excellence Center Oktatóanyag
21
Feldolgozási blokkok
Esemény blokkok ▪ START-OF-SELECTION, INITIALIZATION, stb
Alprogramok ▪ Form-ok
Funkcióelemek ▪ Functions ▪ Method-ok
Include-ok
ELTE SAP Excellence Center Oktatóanyag
22
Eseményblokkok: végrehajtható programoknál az ABAPfutá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ás segí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ás segí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.
ELTE SAP Excellence Center Oktatóanyag
22
Elemi adattípusok
Adattípus
Leírás
Kezdıérték Kezdı hossz
I
Integer
0
platform függı
P
Decimális adott tizedesjegyekkel
0
8
F
lebegı pontos
0.000...
N
numerikus szöveg
000...
1
C
szöveg (karakter)
space
1
D
dátum YYYYMMDD 00000000
8
T
idı HHMMSS
000000
6
X
hexadecimális
X'00'
1
ELTE SAP Excellence Center Oktatóanyag
platform függı
23
Mibıl épülnek fel a mezık adatelemei Adatelem: Más táblákban, struktúrában felhasználható elemi adattipusokból felepulı rekord tipusok Tulajdonsá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
ELTE SAP Excellence Center Oktatóanyag
23
Belsı táblák
ELTE SAP Excellence Center Oktatóanyag
24
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.
ELTE SAP Excellence Center Oktatóanyag
24
Dictionary objektumok - SE11
ELTE SAP Excellence Center Oktatóanyag
25
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.
ELTE SAP Excellence Center Oktatóanyag
25
Képernyık - Dynprok
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
ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
26
26
Képernyık I. - Write lista
ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
27
27
Képernyık II. - ALV lista
ELTE SAP Excellence Center Oktatóanyag
28
Sorki-választás (dupla kattintás): AT-LINE SELECTION Fejléc Menüsor Oszlop-beállítások, layout
ELTE SAP Excellence Center Oktatóanyag
28
Képernyık III. – Selection screen
ELTE SAP Excellence Center Oktatóanyag
29
Adat-bevitel Késıbbi feldolgozásra adat kiválasztás Keresés és beviteli segítség Ált. köztes képernyı
ELTE SAP Excellence Center Oktatóanyag
29
Képernyık IV. – Screen
ELTE SAP Excellence Center Oktatóanyag
30
Menü és eszköztár Beviteli segítség Tervezhetı képernyı Több ablakos programok egymást hívhatják: CALL SCREEN
ELTE SAP Excellence Center Oktatóanyag
30
Screen painter – SE52
ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
31
31
Képernyık V. – Smart Forms
ELTE SAP Excellence Center Oktatóanyag
32
Pl.: Adóbevallás őrlap
ELTE SAP Excellence Center Oktatóanyag
32
Összefoglalás
Fejlesztés SAP-ban
DEV -> TST -> PRD
Fejlesztı környezet (SE80)
ABAP program felépítése
Belsı táblák
Megjelenítés
ELTE SAP Excellence Center Oktatóanyag
33
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
ELTE SAP Excellence Center Oktatóanyag
33
SAP doesn't hire developers. It initializes them
Köszönöm a figyelmet!
Zolnai László [email protected] ELTE SAP Excellence Center Oktatóanyag
ELTE SAP Excellence Center Oktatóanyag
34
34