16
ELTE SAP Excellence Center Oktatóanyag 1

ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-07.pdf · Eseményblokkok: végrehajtható programoknál (1. típus) az ABAP-ELTE SAP Excellence Center Oktatóanyag

Embed Size (px)

Citation preview

ELTE SAP Excellence Center Oktatóanyag 1

Eseményblokkok: végrehajtható programoknál (1. típus) az ABAP-

ELTE SAP Excellence Center Oktatóanyag 2

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ás segítségével bármely feldolgozási blokkból meghívhatók.

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.

Az eseményblokkot az ABAP-programban egy eseménykulcsszó vezeti be.

ELTE SAP Excellence Center Oktatóanyag 3

Minden blokk a következő feldolgozási blokk kezdésével zárul. Sorrendjük felcserélhető, ld: DATA bárhol lehet több is.

ELTE SAP Excellence Center Oktatóanyag 4

Program blokk ami csak az adott programban érhető el.

ELTE SAP Excellence Center Oktatóanyag 5

form1 – alprogram neve

Interfész:

•USING – Bemenő paraméterek

•CHANGING – Módosítandó, kimeneti paraméterek

A paraméterek tipizálása kötelező (TYPE, LIKE)

Parméterátadás is lehetséges a VALUE utsítással

DATA – lokális deklaráció

ELTE SAP Excellence Center Oktatóanyag 6

ELTE SAP Excellence Center Oktatóanyag 7

REPORT ZGRAPH.

ELTE SAP Excellence Center Oktatóanyag 8

DATA: BEGIN OF ITAB_DATA OCCURS 0,ADATNEV TYPE C,MENNYISEG1 TYPE I,MENNYISEG2 TYPE I,MENNYISEG3 TYPE I,

END OF ITAB_DATA,BEGIN OF ITAB_OPTIONS OCCURS 0,OPTION TYPE C,

END OF ITAB_OPTIONS.

ITAB_DATA-ADATNEV = 'Élelmiszerek'.ITAB_DATA-MENNYISEG1 = 150435.ITAB_DATA-MENNYISEG2 = 156619.ITAB_DATA-MENNYISEG3 = 154704.APPEND ITAB_DATA.

ITAB_DATA-ADATNEV = 'Ruházkodás'.ITAB_DATA-MENNYISEG1 = 31170.ITAB_DATA-MENNYISEG2 = 32827.ITAB_DATA-MENNYISEG3 = 32786.APPEND ITAB_DATA.

ITAB_DATA-ADATNEV = 'Közlekedés, hírközlés'.ITAB_DATA-MENNYISEG1 = 104836.ITAB_DATA-MENNYISEG2 = 117471.ITAB_DATA-MENNYISEG3 = 140273.APPEND ITAB_DATA.

CALL FUNCTION 'GRAPH_MATRIX_3D'EXPORTINGCOL1 = '2003'COL2 = '2004'COL3 = '2005'TITL = 'Egy főre jutó évi kiadások Magyarországon, FT'

TABLESDATA = ITAB_DATAOPTS = ITAB_OPTIONS

EXCEPTIONSOTHERS = 1.

* Fájl-választó ablak megjelenítése.REFRESH gt_fajltabla.

ELTE SAP Excellence Center Oktatóanyag 9

CALL METHOD cl_gui_frontend_services=>file_open_dialogEXPORTINGwindow_title = 'Betöltendő fájl neve...'default_filename = '*.txt'multiselection = ' '

CHANGINGfile_table = gt_fajltablarc = gd_subrc.

LOOP AT gt_fajltabla INTO g_fajl.ENDLOOP.

START-OF-SELECTION.

REFRESH gt_itab.

* Fájl betöltése a belső táblába.CALL FUNCTION 'GUI_UPLOAD'EXPORTINGfilename = g_fajlfiletype = 'ASC'codepage = '1403'

TABLESdata_tab = gt_itab

EXCEPTIONSfile_open_error = 1file_read_error = 2no_batch = 3gui_refuse_filetransfer = 4invalid_type = 5no_authority = 6unknown_error = 7bad_data_format = 8header_not_allowed = 9separator_not_allowed = 10header_too_long = 11unknown_dp_error = 12access_denied = 13dp_out_of_memory = 14disk_full = 15dp_timeout = 16OTHERS = 17.

REPORT ZADE_EXCEL.

TABLES: ZADE_1.

ELTE SAP Excellence Center Oktatóanyag 10

TABLES: ZADE_1.DATA: BEGIN OF ITAB OCCURS 100.

INCLUDE STRUCTURE ZADE_1.DATA: END OF ITAB.

SELECT * FROM ZADE_1 INTO TABLE ITAB.

CALL FUNCTION 'DOWNLOAD'EXPORTINGFILENAME = 'c:\temp\sap.xls'FILETYPE = 'WK1'MODE = ' 'TABLESDATA_TAB = ITAB.

CALL FUNCTION 'WS_EXECUTE'EXPORTINGCOMMANDLINE = 'c:\temp\sap.xls'PROGRAM = 'C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE'.

REPORT zelte_modul.

TYPES:

ELTE SAP Excellence Center Oktatóanyag 11

TYPES:g_eredmeny TYPE p LENGTH 16 DECIMALS 2.

PARAMETERS:pa_inp1 TYPE i,pa_inp2 TYPE i,pa_op TYPE c.

DATA:gv_eredm TYPE g_eredmeny.

IF ( pa_op = '+' ORpa_op = '-' ORpa_op = '*' ORpa_op = '/' AND pa_inp2 <> 0 ORpa_op = '%' ).

CASE pa_op.WHEN '+'.gv_eredm = pa_inp1 + pa_inp2.

WHEN '-'.gv_eredm = pa_inp1 - pa_inp2.

WHEN '*'.gv_eredm = pa_inp1 * pa_inp2.

WHEN '/'.gv_eredm = pa_inp1 / pa_inp2.

WHEN '%'.

PERFORM szazalekUSINGpa_inp1pa_inp2

CHANGINGgv_eredm.

ENDCASE.

WRITE: 'Eredmény:', gv_eredm.

ELSEIF pa_op = '/' AND pa_inp2 = 0.WRITE: 'Nem osztunk nullával!'.

ELSE.WRITE: 'Rossz operandus!'.

ENDIF.

*********************************************************************** FORM : szazalek*********************************************************************** -> PV_AKT* -> PV_MAX* <- CV_EREDM**********************************************************************FORM szazalek USING pv_act TYPE i

pv_max TYPE i

Először kell egy funkció csoport amiben lesznek az elemek.

ELTE SAP Excellence Center Oktatóanyag 12

Egy csomagban tároljuk a függvényeket. Létrehozás: Jobb klikk módszer. Z_ vagy Y_ karakterekkel kell kezdődniük

Funkciócsoporton belüli létrehozás. Jobb klikk módszer. Z_ vagy Y_ karakterekkel kell kezdődniük

Tulajdonságok: a funkcióelem neve, rövid szöveg, funkciócsoport, felelős, utolsó módosító, lefutásfajta, fejlesztési osztály, stb.

interfészt

interfészparaméter: import-, export- vagy changing-paraméter elemi adatobjektumok, mezősorok, továbbá belső táblák lehetnek. A FORM-rutinoknál megismert átadásfajták rendelkezésre állnak. Lehetőség van továbbá opcionális paraméterek definiálására is.

kivételek: amennyiben a funkcióelem feldolgozásánál hiba lép fel, lehetőség van annak kivételként történő kezelésére.

Forráskód: amit az interfész paraméterezése után ki is tölt.

A funkcióelemek a Repository-ban rögzített definiált interfészt tartalmazó

ELTE SAP Excellence Center Oktatóanyag 13

alprogramok. Más alkalmazások számára is elérhető

function zelte_szazalek.

*"----------------------------------------------------------------------

ELTE SAP Excellence Center Oktatóanyag 14

*"----------------------------------------------------------------------

*"*"Lokális interfész:

*" IMPORTING

*" REFERENCE(IV_ACT) TYPE I

*" REFERENCE(IV_MAX) TYPE I

*" EXPORTING

*" REFERENCE(EV_EREDM) TYPE I

*" EXCEPTIONS

*" NULL_OSZTAS

*"----------------------------------------------------------------------

if iv_max = 0.

ev_eredm = 0.

raise null_osztas.

else.

ev_eredm = iv_act / iv_max * 100.

endif.

endfunction.

Amennyiben a kivétel fellép, de azt a meghívó program explicit módon nem

ELTE SAP Excellence Center Oktatóanyag 15

kezeli, a funkcióelemben lehetőség van egy hibaüzenet küldésének beállítására.

Ha többen fejlesztenek egy nagyobb programot hasznos, mert a különálló

ELTE SAP Excellence Center Oktatóanyag 16

adatokat használ.

Top Include: A funkciók által használt globális változókat, formokat enkapszulálja.