34
1 ELTE 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] http://zolnai.web.elte.hu/bev_sap.html

BevezetésazSAP világába az SAP vilagaba/sap_ea04.pdf · Moduláris programfelépítés, Csoportmunka-támogatás, Segédprogramok ... ELTE SAP Excellence Center Oktatóanyag 23

  • 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