SAP vállalatirányítási rendszer alapjai /5 Tantárgy kódja: VEMI5344i Tanév: 2006/07-2.félév Előadó: dr. Varga Ernő, dr. Gerzson Miklós Workbench alapok
Workbench alapok/2 ABAP programok lefutása ABAP Workbench bevezetés ABAP utasítások és adatdeklarációk Adatbázis dialógusok Modularizálás Újrafelhasználható komponensek Összefoglalás
Adatbázis dialógusok Információk adatbázis táblákról Olvasás adatbázistáblából Jogosultságvizsgálatok Olvasás több adatbázistáblából
Információk a Dictionary-ban ABAP Dictionary: SPLFI transzparens tábla: ABAP feldolgozási blokk Az SPLFI adatbázistábla tulajdonságainak leírása SELECT SINGLE * FROM spfli Dupla kattintás SPFLI
Adatbázistáblák keresése Editor Keresés a SELECT utasítással A program objektumlistája Alprogramok Indítás Debuggingmóduszban Töréspont a SELECT utasításnál F1 A Dynpro-mezőn Műszaki infó Dupla kattintás a dynpromezőre Újra felhasználható komponensek keresése Struktúramező az ABAP Dictionaryben Dupla kattintás az adatelemre Felhasználáskimutatás a táblákban Alkalmazási hierarchia Alkalmazáskomponensek kijelölése Repositoryinfórendszer A program ismert, amely hozzáfér az adatbázistáblához A struktúramező az ABAP Dictionary-ben ismert
Demo repülési adatmodell Kiindulási hely Indulási repülőtér Az utazási iroda feladatai: lehetséges repülőterek lehetséges járatok a kívánt időpontban lehetséges járatok a kívánt napon a járatok további információi: árak, egyéb szolgáltatások, Célrepülőtér Érkezési hely
Adatmodell BC_TRAVLAG T Utazási iroda CR BC_GEOCITY T Város A BC_CITAIRP T BC_COUNTER T BC_AIRPORT T A Városrepülőtérhozzárendelés Eladási hely CR Repülőtér R R BC_CUSTOM T Ügyfél H BC_CARRIER T BC_PLANFLI T BC_SFLIGHT T BC_BOOKING T Légitársaság H Repülési terv H Repülőút H Foglalások Idő
Megvalósítás Dictionary-ban SCARR SPFLI SFLIGHT SBOOK Légitársaság Repülési terv Járat Járatfoglalás MANDT CARRID CARRNAME.. MANDT CARRID CONNID AIRPFROM AIRPTO DEPTIME.. MANDT CARRID CONNID FLDATE SEATSMAX SEATSOCC.. MANDT CARRID CONNID FLDATE BOOKID CUSTOMID COUNTER AGENCYNUM H.. 11001 Légitársaság 11001 11001 H Repülési terv H Járat H 11001 Foglalások Idő
Kulcsmezők és másodagos indexek Indexek Mezők Kulcs Mezőtípus Rövid megnevezés MANDT CARRID CONNID COUNTRYFR CITYFROM AIRPFROM COUNTRYTO CITYTO AIRPTO FLTIME DEPTIME ARRTIME DISTANCE DISTID FLTYPE S_MANDT S_CARR_ID S_CONN_ID LAND1 S_FROM_CIT S_FROMAIRP LAND1 S_TO_CITY S_TOAIRP S_FLTIME S_DEP_TIME S_ARR_TIME S_DISTANCE S_DISTID S_FLTYPE
Olvasás táblából: SELECT utasítás Mely oszlopok? SELECT <eredmény> FROM <tábla> Mely táblá(k)? INTO <cél> WHERE <feltétel> Hová? Mely sorok? } egy sor több sor } meghatározott oszlop
Lekérdezés az adatbázisból ABAP-program Adatobjektumok pa_car wa_scarr ABAP feldolgozási blokk SELECT Open SQL adatbázisspecifikus konvertálás az adatbázis SQL-je Adatbázisinterfész scarr ABAP-futásidőrendszer
Egyedi rekordhozzáférés ABAP-program Adatobjektumok pa_car wa_scarr Adatbázistábla SCARR ABAP feldolgozási blokk SELECT SINGLE * FROM scarr INTO wa_scarr WHERE carrid = pa_car. IF sy-subrc = 0. ABAP-futásidőrendszer Adatbázisinterfész scarr
SELECT ciklus Adatobjektumok pa_car ABAP-programok wa_sbc400focc Adatbázistábla SFLIGHT ABAP feldolgozási blokk SELECT carrid connid fldate seatsocc seatsmax FROM sflight INTO wa_sbc400focc WHERE carrid = pa_car. Utasítások minden beolvasott rekordhoz ENDSELECT. IF sy-subrc = 0. Adatbázisinterfész ABAP-futásidőrendszer
Array fetch Adatobjektumok pa_car ABAP-programok itab_focc Adatbázistábla SFLIGHT ABAP feldolgozási blokk SELECT carrid connid fldate seatsmax seatsocc FROM sflight INTO TABLE itab_focc WHERE carrid = pa_car. IF sy-subrc = 0. Adatbázisinterfész ABAP-futásidőrendszer
INTO opció ABAP program DATA wa_sbc400focc TYPE sbc400focc. SELECT SINGLE carrid connid fldate seatsmax seatsocc FROM sflight INTO wa_sbc400focc WHERE carrid = pa_car AND connid = pa_con AND fldate = pa_date. Ugyanaz a típusa, mint a beolvasott oszlopnak
INTO CORRESPONDING FIELDS ABAP Programm DATA wa_sdyn_conn TYPE sdyn_conn. SELECT SINGLE carrid connid deptime FROM spfli INTO CORRESPONDING FIELDS OF wa_sdyn_conn WHERE carrid = pa_car AND connid = pa_con. A beolvasott sorral megegyező név mandt carrid connid deptime mandt carrid connid deptime
Jogosultságvizsgálat Felhasználói törzsrekordok Szelekciós képernyő AUTHORITY CHECK BC400-00 Profil1 Profil2 Megjegyzés Nem SY-SUBRC = 0? Igen SELECT Profil S_CARRID Jogosultság az S_CARRID jogosultsági objektumhoz Profil4 Jogosultság az S_CARRID jogosultsági objektumhoz Jogosultság az S_TCODE jogosultsági objektumhoz
Jogosultsági objektumok 'Megjelenítés' jogosultság S_CARRID objektumhoz CARRID: * Objektum: S_CARRID ACTVT: Megjelenítés CARRID (Légitársaság) ACTVT (Tevékenység) Tevékenységek: Létrehozás = 01 Módosítás = 02 Megjelenítés = 03 'Módosítás' jogosultság S_CARRID objektumhoz CARRID: LH LH ACTVT: Ändern
AUTHORITHY-CHECK AUTHORITY-CHECK OBJECT 'S_CARRID' ID 'CARRID' FIELD 'LH' ID 'ACTVT' FIELD '02'. Vizsgálat Eredmény IF sy-subrc ne 0. visszaküldése * Reakció a hiányzó jogosultságra * kontextustól függően ACTVT 03 02 01 AzS_CARRID objektumra vonatkozó jogosultságok összessége x x x x x x ENDIF. AA AZ DL LH UA CARRID
Minta Jogos.vizsg.beépítése programba Minta hozzáadása AUTHORITY-CHECK S_CARRID A rendszer generálja az ABAP-kódot AUTHORITY-CHECK OBJECT 'S_CARRID' ID CARRID FIELD ' ' ID ACTVT FIELD ' '. IF SY-SUBRC NE 0. Változók vagy értékek kiegészít. ENDIF. Return-kód fogadása
Olvasás több adatbázistáblából Objektum Globális osztályok módszerei Kiszállított komponensek használata, melyek adatgyűjtést foglalnak magukba Üzleti objektumok Logikai adatbázis BAPI-k Interfész Funkcióelem Funkciócsoport
ABAP Dictionary nézetek SPFLI Mandt Carrid Connid Cityfrom SCARR Mandt Carrid Carrname VIEW Mandt Carrid Connid Cityfrom Carrname
Programon belüli modularizálás ABAP eseményblokkok INITALIZATION START-OF-SELECTION Alprogramok
ABAP programok elemei Eseményblokk Eseményblokk Szelekciós kép Programlokális típusok és mezők definiálása Eseményblokk Modul Process Before Output Interfész Eseményblokk Alprogram Modul Process After Input Dynpro
Példa program eseményblokkal Programlokális típusok és mezők definiálása A rendszer által generált szelekciós kép INITIALIZATION. PARAMETERS pa_date LIKE sy-datum DEFAULT sy-datum. Eseményblokk pa_date = pa_date - 7. START-OF-SELECTION. Eseményblokk WRITE pa_date.
Példaprogram működése futásidőben Programindítás ABAP-program INITIALIZATION. pa_date = pa_date - 7. pa_date 20000101 19991225 START-OF-SELECTION. WRITE pa_date.?? Az alaplista listapufferja ABAP-futásidőrendszer Idő
Eseményblokk végrehajtható programban INITIALIZATION. ABAP-program START-OF-SELECTION. Az eseményblokkot az eseménykulcsszó vezeti be A következő feldolgozási blokk fejezi be Különböző feladatokhoz különböző eseményblokkok tartoznak Az eseményblokkok feldolgozási sorrendjét a futásidő-rendszer határozza meg Standard eseményblokk: START-OF-SELECTION ABAP-futásidőrendszer
Eseményblokkok szintaktikája REPORT PARAMETERS: pa_date LIKE sy-datum DEFAULT sy-datum. INITIALIZATION. " Javasolt értékek a szelekciós képhez pa_date = pa_date - 7. START-OF-SELECTION. SELECTION. " Az adatfeldolgozás kezdete WRITE pa_date. Az eseményblokkok forráskódbeli sorrendje nincs hatással arra, hogy az ABAP-futásidőrendszer milyen sorrendben hívja felőket.
Program alprogramokkal Interfész Interfész Alprogram Eseményblokk Alprogram Funkcionalitás beágyazása Programok jobb olvashatósága és strukturáltsága Könnyebb karbantartás Programlokális újrafelhasznáhatóság Feldolgozási blokk interfésszel
Alprogram az objektumlistában SAPBC400PBD_FORMS Program objektumfajtái DDIC-struktúrák Mezők Események Alprogramok AUTHORITY_SCARRID FILL_ITAB Jobb egérgomb WRITE_ITAB Módosítás Megjelenítés Felhasználáskimutatás
Példa: alprogram interfésze *&--------------------------------------------------------------------* *& Form FILL_ITAB *&--------------------------------------------------------------------* * Filling internal table with records of sflight with * carrid = p_carrid, calculate percentage *---------------------------------------------------------------------* * -->P_carrid carrier id * <--P_IT_FLIGHT internal standard table with line type sbc400focc *---------------------------------------------------------------------* FORM fill_itab USING value( p_carrid) TYPE s_carr_id CHANGING p_it_flight TYPE sbc400_t_sbc400focc. ENDFORM. " FILL_ITAB
Alprogram meghívása futásidőben Eseményblokk ABAP-program PERFORM fill_itab USING pa_car CHANGING itab. p_carrid p_it_flight fill_itab ABAP-futásidőrendszer Idő
Érték és cím szerinti átadás a1 a2 a3 Aktuális paraméter fv1 fv2 fr3 Formális paraméter call by value (értékátadás) call by reference (címátadás) call by value and result (értékátadás és értékvisszaadás) START-OF-SELECTION. : PERFORM form1 USING a1 CHANGING a2 a3. FORM form1 USING VALUE(fv1) CHANGING VALUE(fv2) fr3. : ENDFORM.
Példa: alprogram hívása PARAMETERS pa_car TYPE s_carr_id. DATA: it_flight TYPE sbc400_t_sbc400focc.. PERFORM fill_itab USING pa_car CHANGING it_flight.. FORM fill_itab USING VALUE(p_carrid) TYPE s_carr_id CHANGING p_it_flight TYPE sbc400_t_sbc400focc. DATA ls_flight TYPE sbc400focc. " local structure Aktuális paraméter SELECT carrid connid fldate seatsmax seatsocc FROM sflight INTO CORRESPONDING FIELDS OF TABLE p_it_flight WHERE carrid = p_carrid. ENDFORM. Szintaktikai hiba, ha az aktuális paraméter típusai nem egyeztethetők össze a formális paraméter típusokkal való ellátásával. Formális paraméter
Reuse-komponensek Funkciócsoportok és funkcióelemek Business-objektumok és BAPI-k Logikai adatbázisok
Üzleti logika beágyazási lehetőségei Objektum Reuse-komponensek beágyazása az üzemgazdasági logikába Reusekomponensek Funkciócsoportok ABAP: műszaki lehetőségek Business objektumok Logikai adatbázis
Funkciócsoport Interfész Funkcióelem FE1 Funkcióelem FE2 Funkcióelem FE3 Alprogram Interfész Interfész Funkcióelem FE4 Interfész Importparaméter Exportparaméter Changing-paraméter Kivételek Interfész Interf sz Funkcióelem FE5 Interfész
Funkcióelem Funkciócsoport csoport Alprogram Interfész Funkcióelem Adminisztráci ció Globális lis adatobjektumok Lokális adatobjektumok Forrásk skód Interfész Import-param paraméter Export-param paraméter Changing-param paraméter Kivételek sy-subrc
Funkciócsoport: adatáramlás Interfész Interf sz Interfész Funkcióelem FE1 Funkcióelem FE2 Funkcióelem FE3 Interfész Funkcióelem FE5 Interfész Funkcióelem FE4 Interfész
Példa: dialógus a megszakítás ikonnál <szabadon definiálható szöveg>! Az adatok elvesznek. <szabadon definiálható szöveg> igen nem
Standard dialógus funkcióeleme STO1 textline title! <textline>! <textline> igen nem answer answer ABAP program
Editor Keresés a CALL FUNCTION utasítással A CANCEL utasítást elindító dynpro keresése Indítás debuggingmóduszban Töréspont a CALL FUNCTION utasításnál, vagy a CALL SCREEN utasításnál A Process After Input felépítési logikájának vizsgálata Funkcióelem keresése F1 A funkcióelemből meghívott dynpro keresése műszaki infó a dynpro és a keretprogram neve funkciócsoport megtekintése az Object Navigator-ban felhasználáskimutatás a dynpro-számra Alkalmazási hierarchia alkalmazási komponensek kijelölése Repositoryinfórendszer Egy olyan program ismert, amely a funkcióelemet felhasználja
Funkcióelem interfésze Funkcióelem POPUP_TO_CONFIRM_LOSS_OF_DATA Tulajdonságok Importálás Exportálás Csere Kivételek Forráskód Paraméterek TEXTLINE1 TEXTLINE2 TITEL START_COLUMN START_ROW Referenciatípus A funkcióelem nem választható paramétereit a CALL FUNCTION utasítással kell megadni Választható Érték Nicht Optionale Parameter des Constructors müssen bei CREATE OBJECT versorgt werden Leírás
Dokumentáció és tesztelés Dokumentáció rövid szöveg funkcionalitás példa magyarázatok további információk paraméterek kivételek funkciócsoport Tesztkörnyezet Exportparaméter Importparaméter Funkcióelem Kivétel
Funkcióelem meghívása textline title answer PAI MODULE user_command_0100 input. save_ok_code = ok_code. clear ok_code. CASE save_ok_code. WHEN 'CANCEL'. CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA' EXPORTING textline = gd_textline title = gd_title IMPORTING answer = gd_answer. case answer. WHEN WHEN ENDCASE. ABAP program
Minta Funkcióelem beépítése Minta beszúrása CALL FUNCTION POPUP_TO_CONFIRM_LOSS_OF_DATA Rendszer által generált ABAP-kód CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA' EXPORTING textline = title = IMPORTING answer =. CASE SY-SUBRC. Aktuális paraméterek kiegészítése Return-kód elkapása
Összefoglalás Adatbázis dialógusok Modularizálás Reuse komponensek