SAP vállalatirányítási rendszer alapjai /8-9 Tantárgy kódja: VEMI5344i Tanév: 2006/07-2.félév Előadó: dr. Varga Ernő, dr. Gerzson Miklós Listakészítés
Listakészítés - Tematika Adatkivitel listákon Szelekciós kép Adatok formálása és csoportszint feldolgozás Listák tárolása és háttérfeldolgozás Interaktív listák ALV-lista Programok összekapcsolása
Előismeretek: Célkitűzések SAP programozási alapismeretek ismeretek Adatbáziskezelési ismeretek (SQL) Célkitűzések: Listakészítési alapok elsajátítása Interaktív listák létrehozása Programok összekapcsolása
Adatkivitel listákon Egyszerű listák Listaformátumok Oldalkialakítás Kivitel formázása Segédeszközök
Listakészítés REPORT sapbc405_fold_list_creation. DATA: wa_spfli LIKE spfli. SELECT carrid connid cityfrom cityto INTO CORRESPONDING FIELDS OF wa_spfli FROM spfli. WRITE: / wa_spfli-carrid, wa_spfli-connid, wa_spfli-cityfrom, wa_spfli-cityto. ENDSELECT. DEMO: Listakészítés 1 AA 0017 NEW YORK SAN FRANCISCO AA 0064 SAN FRANCISCO NEW YORK AZ 0555 ROM FRANKFURT AZ 0788 ROM TOKYO : :
Listaformátum meghatározása REPORT <name> LINE-SIZE <s> LINE-COUNT <m[(n)]>. REPORT sapbc405_fold_list_layout WRITE: layout. LINE-SIZE 50 LINE-COUNT 12. 50 DEMO: A listaformátum kialakítása 1 : : 12 DEMO: A listaformátum kialakítása 2 : :
Oldal- és oszlopfeliratok Standard feliratok TOP-OF-PAGE EDITOR Ugrás Szövegelemek Címek/feliratok LISTA Rendszer Lista Listafeliratok REPORT sapbc405_fold_top_of_page NO NO STANDARD PAGE PAGE HEADING. TOP-OF OF-PAGE. WRITE: / '************ ' START-OF-SELECTION. Listafelirat Oszlopfelirat ****************************** ******************************
Sor és mezőformátumok REPORT sapbc405_fold_format. TOP-OF-PAGE. FORMAT COLOR COL_HEADING INTENSIFIED ON. WRITE: FORMAT COLOR COL_HEADING INTENSIFIED OFF. WRITE: START-OF-SELECTION. SELECT carrid connid cityfrom cityto deptime arrtime INTO CORRESPONDING FIELDS OF wa_spfli FROM spfli. WRITE: / wa_spfli-carrid COLOR COL_KEY INTENSIFIED ON, wa_spfli-connid COLOR COL_KEY INTENSIFIED ON. FORMAT COLOR COL_NORMAL INTENSIFIED ON. WRITE: wa_spfli-cityfrom HOTSPOT ON, wa_spfli-cityto, wa_spfli-deptime HOTSPOT ON, wa_spfli-arrtime. FORMAT RESET. ENDSELECT.
WRITE utasítás WRITE [AT] [/<pos(len)>] <f> <option1> <option2>. REPORT sapbc405_fold_write. * constants for positions of outputs CONSTANTS: POS2 TYPE I VALUE 12, LEN_FDT TYPE I VALUE 10, "sflight-fldate WRITE AT: / sy-vline, pos2(len_fdt) wa_sflight-fldate COLOR COL_KEY, (len_pri) wa_sflight-price CURRENCY wa_sflight-currency, (len_cur) wa_sflight-currency.
Ikonok, szimbólumok, vonalak REPORT sapbc405_fold_icon_symbol_line. * INCLUDE <icon> * INCLUDE <symbol>. INCLUDE <list>. * state of free seats IF SEATSFREE < 1. WRITE ICON_RED_LIGHT AS ICON. ELSEIF SEATSFREE > 1. WRITE ICON_GREEN_LIGHT AS ICON. ENDIF. * state of booked seats IF WA_SFLIGHT-SEATSOCC < 10. WRITE SYM_LEFT_HAND AS SYMBOL. ENDIF.
Lapozás listákban és vezéroszlopok SCROLL LIST [TO PAGE <p>][to COLUMN <c>][to LAST PAGE] [<option>] SET LEFT SCROLL-BOUNDARY [COLUMN <c>]. REPORT sapbc405_fold_scroll_boundary DATA: lsb_column TYPE i VALUE 10. TOP-OF-PAGE. SET LEFT SCROLL-BOUNDARY COLUMN lsb_column. 9 START-OF-SELECTION. SCROLL LIST TO TO LAST PAGE.
További formázó utasítások NEW-LINE. SKIP [TO LINE] <n>. RESERVE <n> LINES. BACK. POSITION <n>. SET BLANK LINES {ON OFF}.
Többnyelvű listák Program Forrásszöveg REPORT REPORT.. WRITE:/ WRITE:/ SY-VLINE, SY-VLINE, 'Flug'(001), 'Flug'(001), 'Startort'(002), 'Startort'(002), 'Zielort'(003), 'Zielort'(003), Szövegelemek Címek/feliratok Listafelirat Szövegszimbólumok 001 002 DE Flugverbindungen EN Flight Connections FR DE Flug EN Flight FR.. : DE Startort Bővített szintaktikai ellenőrzés végrehajtása: hibák fellépése, ha szövegelemek nincsenek karbantartva. Egyeztetés: program szövegelemek között lehetséges. Szöveghosszak meghatározása más nyelvek karakterkészletével.
Rendszermezők listakészítésnél SY-SROWS SY-LINSZ 1 2 SY-LINCT SY-SCOLS SY-COLNO SY-LINNO SY-PAGNO 1 2 3
Standard funkciók listákban Vissza/Befejezés/Megszakítás Lapozás Nyomtatás Keresés Lista Mentés Mentés/Küldés
Szelekciós kép Létrehozás Kialakítás Bevitelek ellenőrzése Változatok
Szelekciós kép: áttekintés Log. AB NODES: Standard szelekciós kép Dynpro: 1000 1. változat 1. verzió Program intern: PARAMETERS: SELECT-OPTIONS: Standard szelekciós kép Dynpro: 1000 1. változat SELECTION-SCREEN BEGIN OF SCREEN 1100. PARAMETERS:. SELECT-OPTIONS:. SELECTION-SCREEN END OF SCREEN 1100.... CALL SELECTION-SCREEN SCREEN 1100. Szelekciós kép Dynpro: 1100 1. változat
Meződeklaráció: PARAMETERS PARAMETERS: <f>[type <type>][decimals <n>][like <f1>][memory ID <pid>] [OBLIGATORY][DEFAULT <wert>] [AS CHECKBOX] [RADIOBUTTON GROUP <grp>] REPORT sapbc405_sscd_checkbox_radiobutton.. PARAMETERS: pa_carr LIKE sflight-carrid, pa_name AS CHECKBOX DEFAULT 'X', pa_curr AS CHECKBOX DEFAULT 'X', pa_lim_1 RADIOBUTTON GROUP lim, pa_lim_2 RADIOBUTTON GROUP lim, pa_lim_3 RADIOBUTTON GROUP lim. CONSTANTS mark VALUE'X'. * Check, if any checkbox has been selected IF pa_name EQ mark.. ENDDIF. IF pa_curr EQ mark.. ENDDIF. * Check, which radiobutton has been selected CASE mark. WHEN pa_lim_1.. WHEN pa_lim_2.. WHEN pa_lim_3.. ENDCASE. Légitársaság AA Légitársaság kivitele Név kivitele Ár kivitele (saját pénznem) (Saját pénznem): bs 500 5000 500-1000 1000-1500
SELECT-OPTIONS utasítás SELECT-OPTIONS: <seltab> FOR <f>. REPORT sapbc405_sscd_select_options.. SELECT-OPTIONS: so_carr FOR sflight-carrid DEFAULT 'AA', so_fldt FOR sflight-fldate. Belső tábla so_carr Légitársaság AA - Sign Option Low High I EQ AA Járat dátuma -
Többszörös szelekciók Szelekciós opciók Légitársaság AA Többszörös szelekciók - = egyedi érték nagyobb vagy egyenlő kisebb vagy egyenlő 1 E 1 I E I Szelektálás AA Sign Option Low High I EQ AA I BT DL LH
SELECT-OPTIONS szintaktikája SELECT-OPTIONS <seltab> FOR <f> DEFAULT <érték> DEFAULT <érték1> TO <érték2> OPTION <xx> SIGN <x> MEMORY ID <pid> LOWER CASE OBLIGATORY NO-EXTENSION NO INTERVALS.
Szelekciós kép kialakítása /1 SELECTION-SCREEN BEGIN OF BLOCK <blokk> WITH FRAME TITLE <szöveg> SELECTION-SREEN END OF BLOCK <blokk> Jegyár REPORT sapbc405_sscd_sel_screen_i. SELECTION-SCREEN BEGIN OF BLOCK carr WITH FRAME. SELECT-OPTIONS: so_carr FOR wa_sflight-carrid. SELECTION-SCREEN END OF BLOCK carr. SELECTION-SCREEN BEGIN OF BLOCK limit WITH FRAME TITLE text-001. PARAMETERS: pa_lim_1 RADIOBUTTON GROUP lim, pa_lim_2 RADIOBUTTON GROUP lim, pa_lim_3 RADIOBUTTON GROUP lim. SELECTION-SCREEN END OF BLOCK limit.
Szelekciós kép kialakítása /2 SELECTION-SCREEN: BEGIN OF LINE COMMENT pos(len) <szöveg> [FOR FIELD <f>] POSITION pos END OF LINE Kivitel Férőhelyek REPORT sapbc405_sscd_sel_screen_ii. * Parameters displayed in one line SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(20) text-s03. SELECTION-SCREEN COMMENT pos_low(8) text-s04. PARAMETERS pa_col AS CHECKBOX. SELECTION-SCREEN COMMENT pos_high(8) text-s05. PARAMETERS pa_ico AS CHECKBOX. SELECTION-SCREEN END OF LINE.
Szelekciós kép inicializálása INITIALIZATION. REPORT sapbc405_sscd_initialization. INITIALIZATION. MOVE: mark TO pa_all. MOVE: 'I' TO so_carr-sign, 'BT' TO so_carr-option, 'AA' TO so_carr-low, 'LH' TO so_carr-high. APPEND so_carr. CLEAR so_carr. MOVE: 'E' TO so_carr-sign, 'EQ' TO so_carr-option, 'DL' TO so_carr-low. APPEND so_carr. Légitársaság Járat dátuma Kivitel Férőhelyek szabad foglalt mind AA - LH Kijelölés színek ikonok -
Beviteli ellenőrzések AT SELECTION-SCREEN ON <f> ON RADIOBUTTON GROUP <grp> ON <seltab> ON BLOCK <blokk> REPORT sapbc405_sscd_at_sel_screen. * Check of selection criterion SO_DEPT AT SELECTION-SCREEN ON so_dept. IF ( so_dept-low LT '060000' AND so_dept-high LT '060000' ) OR ( so_dept-low GE '220000' AND so_dept-high GE '220000' ) AND city_fr EQ 'FRANKFURT'. MESSAGE e046(bc405). ENDIF.
CALL SELECTION-SCREEN REPORT sapbc405_sscd_call_sel_screen. SELECTION-SCREEN: BEGIN OF SCREEN 1100. PARAMETERS: pa_cus AS CHECKBOX, pa_agy AS CHECKBOX. SELECTION-SCREEN: END OF SCREEN 1100. Szelekciós kép: Dynpro 1000 AT SELECTION-SCREEN ON pa_add. IF pa_add = mark. CALL CALL SELECTION-SCREEN 1100 1100 STARTING AT 5 5 ENDING AT 50 10. IF sy-subrc <> 0. LEAVE TO SCREEN 1000. ENDIF. ENDIF. Szelekciós kép : Dynpro 1100
ABAP-editor Szelekciós kép változatok /1 Program SSCD_VARIANTS Részobjektumok Változatok Megjelenítés Módosítás Az összes szelekciós képhez Szelekciós kép DEMO SSCD_VARIANTS Mentés változatként Egyedi szelekciós képekhez
Szelekciós kép változatok /2 Attribútumok Változat csak háttérfeldolgozáshoz változat védelme megjelenítés csak katalógusban rendszerváltozat (automatikus transzport) Mezőtulajdonságok kötelező mező SPA/GPA kikapcsolása mező elmentése értékek nélkül szelekciós változó Záróérték' mező kikapcsolása mező kikapcsolása mező védelme
Adatok formatálása, csoportszint feldolgozás Áttekintés Belső táblák Kinyert (extraktum) adatállományok Két technika összehasonlítása
Csoportszint feldolgozás Adatrekordok: Indulás Cél Járatsz. Frankfurt Berlin 2402 Frankfurt Berlin 2402 2436 Frankfurt Berlin 2436 New York Frankfurt Frankfurt Frankfurt Frankfurt Honkong New York New York New York San Francisco Singapore 0026 0400 0402 0454 0863 Honkong San Francisco 0026 0400 0402 0454 Singapore
Belső standard tábla létrehozása TYPES: BEGIN OF <linetype>, END OF <linetype>. DATA <itab> TYPE STANDARD TABLE OF <linetype>. REPORT sapbc405dapd_a_internal_tables. TYPES: BEGIN OF struct_conn, cityfrom LIKE spfli-cityfrom, cityto LIKE spfli-cityto, carrid LIKE spfli-carrid, deptime LIKE spfli-deptime, arrtime LIKE spfli-arrtime, END OF struct_conn. DATA: itab_conn TYPE STANDARD TABLE OF struct_conn, wa_conn TYPE struct_conn.
Belső tábla feltöltése SELECT * FROM <dbtab> INTO TABLE <itab< itab> > DL DL LH LH 1699 1984 0400 0402 24.500,00 13.100,00 5.700,00 36.750,00 APPEND <wa> TO <itab>. CARR CONN UMSATZ LH 0400 3.925,00 <wa> COLLECT <wa> INTO <itab>. CARR CONN UMSATZ LH 0400 3.925,00 DL DL LH LH 1699 1984 0400 0402 24.500,00 13.100,00 5.700,00 36.750,00 <itab> DL DL LH LH 1699 1984 0400 0402 24.500,00 13.100,00 5.700,00 36.750,00 9.625,00
Belső tábla rendezése, feldolgozása SORT <itab> [BY <f1> <f2> ] [ASCENDING DESCENDING]. LOOP AT <itab> [INTO <wa>]. ENDLOOP. REPORT sapbc405dapd_a_internal_tables. DATA: itab_conn TYPE STANDARD TABLE OF struct_conn, wa_conn TYPE struct_conn. GET spfli FIELDS carrid cityfrom cityto deptime arrtime. MOVE-CORRESPONDING spfli TO wa_conn. APPEND wa_conn TO itab_conn. END-OF-SELECTION. SORT itab_conn BY cityfrom cityto carrid deptime. LOOP AT AT itab_conn INTO wa_conn. WRITE: / wa_conn-cityfrom, wa_conn-cityto, wa_conn-carrid, 51 wa_conn-deptime, 65 wa_conn-arrtime. ENDLOOP. ENDLOOP.
Csoportszint feldolgozás belső táblákkal AT FIRST. AT NEW <f>. AT END OF <f>. AT LAST. [SUM.] ENDAT. [SUM.] ENDAT. [SUM.] ENDAT. [SUM.] ENDAT. REPORT sapbc405dapd_c_itab_gr_level. TYPES: BEGIN OF struct_conn, cityfrom LIKE spfli-cityfrom, cityto LIKE spfli-cityto, END OF struct_conn. DATA: itab_conn TYPE STANDARD TABLE OF struct_conn, END-OF-SELECTION. SORT itab_conn BY cityfrom cityto carrid connid fldate. LOOP AT itab_conn INTO wa_conn. AT NEW cityfrom. WRITE: ENDAT. AT AT NEW NEW cityto. WRITE: ENDAT. AT NEW connid. WRITE: ENDAT. WRITE: AT AT END OF OF connid. SUM. ENDAT. AT AT END OF OF cityfrom. ENDAT. ENDLOOP.
Csoportszint feldolgozás belső táblákkal /2 REPORT TYPES: BEGIN OF struct, f1, f2, f3, END OF struct. DATA: itab TYPE STANDARD TABLE OF struct, wa TYPE struct. SORT itab BY f1 f2. LOOP AT itab INTO wa. AT FIRST. <Anweisungen> ENDAT. AT NEW f1. <Anweisungen> ENDAT. AT NEW f2. <Anweisungen> ENDAT. <Einzelsatzverarbeitung> AT END OF f2. <Anweisungen> ENDAT. AT END OF f1. <Anweisungen> ENDAT. AT LAST. <Anweisungen> ENDAT. ENDLOOP.
Extraktum létrehozása Mezőcsoportok megnevezése Utasítás: FIELD-GROUPS A HEADER mezőcsoportnak mindig léteznie kell Mezőcsoportok meghatározása Utasítás: INSERT INTO FIELD-GROUPS: header, connections, flights. header connections flights INSERT:spfli-carrid spfli-connid sflight-fldate INTO header, spfli-cityfrom spfli-airpfrom INTO connections. carrid connid fldate cityfrom airpfrom header connections flights Extraktum feltöltése Utasítás: EXTRACT EXTRACT connections. LH 400 Frankfurt FRA
Extraktum létrehozása: példa REPORT sapbc405dapd_d_extracts. * Naming field groups FIELD-GROUPS: header, connections, flights, bookings. * Specifying field groups INSERT: spfli-carrid spfli-connid sflight-fldate INTO header, spfli-cityfrom spfli-airpfrom spfli-cityto spfli-airpto INTO connections, sflight-price sflight-paymentsum sflight-currency seatsfree INTO flights, sbook-bookid INTO bookings. * Data retrieval GET spfli. EXTRACT connections. LH 400 'X00' Frankfurt FRA GET sflight FIELDS fldate price seatsfree = EXTRACT flights. LH 400 29.12.99 1.332,00 DEM GET sbook FIELDS bookid. EXTRACT bookings. LH 400 29.12.99 00000048
Extraktum rendezése és feldolgozása SORT [BY <f1> <f2> ] [ASCENDING DESCENDING]. LOOP. ENDLOOP. AT FIRST. AT NEW <f>. AT <fg>. AT <fg_1> WITH <fg_2>. AT END OF <f>. CNT(<hf>) AT LAST. CNT(<hf>) ENDAT. ENDAT. ENDAT. ENDAT. SUM(<nf>) ENDAT. SUM(<nf>) ENDAT.
Csoportszint feldolgozás: példa REPORT sapbc405dapd_d_extracts. END-OF-SELECTION. * Sorting extract data in the order of the header fields SORT. * Control Level Processing LOOP. AT NEW spfli-connid. WRITE ENDAT. AT NEW sflight-fldate. WRITE ENDAT. * Single record processing AT connections. WRITE ENDAT. AT flights WITH bookings. WRITE ENDAT. AT END OF spfli-connid. ENDAT. ENDLOOP.
Csoportszint feldolgozás sémája FIELD-GROUPS: header, record1, record2. INSERT: f2 f1 INTO header, f3 f4 INTO record1, f5 INTO record2. END-OF-SELECTION SORT BY f1 f2. LOOP. AT FIRST. <Anweisungen> ENDAT. AT NEW f1. <Anweisungen> ENDAT. AT NEW f2. <Anweisungen> ENDAT. AT record1. <Anweisungen> ENDAT. AT record2. <Anweisungen> ENDAT. AT END OF f2. <Anweisungen> ENDAT. AT END OF f1. <Anweisungen> ENDAT. AT LAST. <Anweisungen> ENDAT. ENDLOOP. Csoportkezdet feldolgozása Csoportvégfeldolgozás Egyedirekordfeldolgozás
Belső táblák és extraktumok Belső tábla több belső tábla csoportszint-összegek a csoportszint kezdetén is lehetségesek (AT FIRST, AT NEW f) számos művelet (beszúrás, módosítás, törlés, egyedi hozzáférés, ) belső tábla módosítása mindenkor lehetséges belső táblánként pontosan egy sortípus lehetséges statikus sortípus csoportszint-feldolgozás csak a sortípus mezősorrendje szerint lehetséges Összegzés (SUM) magas költségekkel jár Extraktum pontosan egy EXTRACT-állomány csoportszint-összeg csak a csoportszint végén lehetséges (AT END OF f, AT LAST) kisszámú művelet (csak csatolás, rendezés és szekvenciális feldolgozás) állomány bővítése EXTRACT utasítással SORT vagy LOOP után már nem lehetséges több rekordfajta megengedett dinamikus rekordfajták (az INSERT nem deklaratív utasítás!) csoportszint-feldolgozás a rendezési sorrend szerint (a Header mezősorrendjétől függetlenül) Összegzés (SUM(f)) optimálva
Listák tárolása és háttérfeldolgozás Lista mentése Nyomtatás Háttérfeldolgozás
Listák mentésének lehetőségei Lista Rendszer Mentés/küldés Lista Mentés + Járat adatai Tárolás
Lista mentése az Office-ban Frankfurti légi összeköttetések (1) LH Lufthansa 400 2000.01.19. New York 380 400 2000.02.26. New York 380 400 2000.03.02. New York 380 402 2000.04.21. New York 189 Tárolás Saját járatadatok Személyes tároló Küldés Járat adatai Tárolás
Lista mentése PC file-ként Frankfurti légi összeköttetések (1) LH Lufthansa 400 2000.01.19. New York 380 400 2000.01.26. New York 380 400 2000.02.02. New York 380 402 2000.01.21. New York 189 konvertálatlan táblázatkezelő Rich Text Format HTML-formátum
Elmentett listák a területmenüben Ugrás Beszámoló Előnézet Elmentett listák Területmenü Járatadat-modell programjai Frankfurti légi összeköttetések (1) LH Lufthansa 400 2000.01.19. New York 380 400 2000.01.26. New York 380 400 2000.02.02. New York 380 402 2000.01.21. New York 189 Járatadatok megjelenítése Programok DEMO: olvasás DEMO: változat Query-k Egysoros alaplista + Járatadatok módosítása
Listák nyomtatási lehetőségei REPORT WRITE: Spool-processz Háttérprocessz 4 1 2 3 REPORT WRITE: Dialógusprocessz
Nyomtatási paraméterek Kiviteli készülék Nyomtatások száma Spool-kérelem Név Cím Jogosultság Fedőlapok SAP-fedőlap Szelekció-fedőlap Fogadó Osztály Spoolprocessz Kiviteli formátum Sorok Oszlopok Formázás Spool-vezérlés Azonnali kivitel Törlés a kivitel után Új spool-kérelem Spool-várakozási idő Archiválási módusz
Programvezérelt nyomtatás NEW-PAGE PRINT ON [PARAMETERS <pri_set> <p1> <p2> ] [NO DIALOG]. NEW-PAGE PRINT OFF. REPORT sapbc405_stld_new_page_prt_on. NEW-PAGE PRINT ON IMMEDIATELY ' ' KEEP IN SPOOL 'X' RECEIVER sy-uname COVER TEXT 'Járatadatok'. WRITE: NEW-PAGE PRINT OFF.
Nyomtatás: GET_PRINT_PARAMETERS REPORT sapbc405_stld_get_print_param DATA: print_parameter_set LIKE pri_params, valid, list_text LIKE print_parameter_set-prtxt. START-OF-SELECTION. CALL FUNCTION 'GET_PRINT_PARAMETERS' EXPORTING destination = 'LP01' immediately = ' ' release = 'X' receiver = sy-uname list_text = list_text IMPORTING out_parameters = print_parameter_set valid = valid. IF valid = 'X'. NEW-PAGE NEW-PAGE PRINT PRINT ON PARAMETERS ON print_parameter_set print_params NO DIALOG. NO DIALOG.. ENDIF. END-OF-SELECTION. IF valid = 'X'. NEW-PAGE PRINT OFF. ENDIF.
Példa: GET_PRINT_PARAMETERS REPORT sapbc405_stld_diff_receiver LOOP receiver = department = CALL FUNCTION 'GET_PRINT_PARAMETERS' EXPORTING department = department new_list_id = 'X' no_dialog = 'X' receiver = receiver IMPORTING out_parameters = print_parameters_set valid = valid EXCEPTIONS IF valid <> space. NEW-PAGE PRINT ON PARAMETERS print_parameters_set NO DIALOG. PERFORM list_generator. NEW-PAGE PRINT OFF. WRITE: / 'Spool ID', sy-spono. spono. ENDLOOP.
Háttérfeldolgozás fázisai Lépések (steps) Nyomtatás Job definiálása Kezdési időpont Job mentése Job áttekintése Státus ütemezett engedélyezett kész aktív megszakadt
Lépések definiálása Indítási feltételek Lépés Általános adatok Job-név MY_JOB Job-osztály C ABAP-program Külső utasítás Státus ütemezett ABAP-program Cél-szgép Név Változat Nyelv SAPBC405_SSCD_VARIANTS DEMO: BC405 DE Nyomtatási adatok Mentés Spool
Kezdési időpont és engedélyezés Indítási feltételek Lépés Általános adatok Azonnal Dátum/időpont Dátum/időpont Ütemezett indítás 2000.01.01. Ez után nincs indítás Job-név Job-osztály Státus Cél-szgép 00:00:00 MY_JOB C ütemezett Mentés Job mentése
Interaktív listák alapvető technikái Elágazási listák Interaktív események Listaszintek közötti adatátadás Elágazási listák oldalfeliratai Lista modális dialógusablakban
A listarendszer EL 20 EL 1 EL 2 Alaplista Meghívó pl. kettős kattintás a sorra
Interaktív lista események * Alaplista START-OF-SELECTION. GET. END-OF-SELECTION. TOP-OF-PAGE. * Elágazási listák AT LINE-SELECTION. AT USER-COMMAND. TOP-OF-PAGE DURING LINE-SELECTION.
Elágazási listák: lefutásvezérlés Liste Bearbeiten Springen System Hilfe DEMO: Lista SY- UCOMM %EX PRI P+ P-... Rendszerprogramok F2 SY- UCOMM PICK REPORT SAPBC405_ AT LINE-SELECTION.
Elágazási listák létrehozása /1 REPORT sapbc405_ilbd_interact_list_1. Alaplista AT LINE-SELECTION. WRITE: 'Ez egy elágazási lista'(001) COLOR COL_TOTAL, / 'Listaszint: '(002), sy-lsind, Felhasználói művelet: sy-ucomm = PICK Ez egy elágazási lista Listaszint: 1
Elágazási listák létrehozása /2 REPORT sapbc405_ilbd_interact_lists_2. Alaplista sy-lsind: 0 AT LINE-SELECTION. CASE sy-lsind. WHEN '1'. WRITE: 'Elágazási lista: 1'(001), /'SY-LSIND: '(000), sy-lsind. WHEN '2'. WRITE: 'Elágazási lista : 2'(002), /'SY-LSIND: '(000), sy-lsind. ENDCASE. PICK Elágazási lista: 1 sy-lsind: 1 PICK Elágazási lista : 2 sy-lsind: 2 PICK
Adattranszport: HIDE-terület HIDE: <f1>, <f2>,. REPORT sapbc405_ilbd_hide. GET spfli FIELDS carrid connid cityfrom cityto. WRITE: / spfli-carrid, 10 spfli-cityfrom, (24) spfli-cityto. DEMO: Adattranszport: Hide-technika -------------------------------------------------------- AA NEW YORK SAN FRANCISCO AZ RÓMA FRANKFURT AZ TOKIO RÓMA LH FRANKFURT NEW YORK HIDE: spfli-carrid, spfli-connid. A '0' listaszint Hide-területe Sor Mezőnév Érték Mezőnév Érték AT LINE-SELECTION. 3 4 5 6 : spfli-carrid spfli-carrid spfli-carrid spfli-carrid : AA AZ AZ LH : spfli-connid spfli-connid spfli-connid spfli-connid : 0017 0555 0789 0400 :
Sorkiválasztás: HIDE-technika DEMO: adattranszport: Hide-technika -------------------------------------------------------- AA NEW YORK SAN FRANCI AZ RÓMA FRANKFURT AZ TOKIÓ RÓMA LH FRANKFURT NEW YORK 1 DEMO: adattranszport: Hide-technika -------------------------------------------------------- LH 400 2000.02.01. 1.332,00 DEM 2000.03.28. 1.332,00 DEM 2000.04.17. 1.332,00 DEM SY- LILLI 2 4 5 6 A '0' listaszint Hide-területe REPORT SAPBC405_ILBD_HIDE. Sor Mezőnév Érték Mezőnév Érték AT LINE-SELECTION. 3 4 5 6 : spfli-carrid spfli-carrid spfli-carrid spfli-carrid : AA AZ AZ LH : spfli-connid spfli-connid spfli-connid spfli-connid : 0017 0555 0789 0400 : 3 SELECT WHERE carrid = spfli-carrid LH AND connid = spfli-connid. 0400
Adattárolás a listarendszerben Hide-terület: alaplista Hide-terület: EL1 Hide-terület: EL2 Alaplista EL 1 EL 2... Listapuffer: alaplista Listapuffer: EL1 Megjelenítés Megjelenítés Megjelenítés Listapuffer: EL2
Érvényes sorkiválasztás REPORT sapbc405_ilbd_valid_line_sel. GET spfli FIELDS WRITE HIDE: spfli-carrid, spfli-connid. DEMO: adattranszport: Hide-technika -------------------------------------------------------- LH 400 2000.02.01. 1.332,00 DEM 2000.03.28. 1.332,00 DEM 2000.04.17. 1.332,00 DEM END-OF-SELECTION. CLEAR spfli-carrid. AT LINE-SELECTION. CHECK NOT NOT spfli-carrid IS IS INITIAL. Hide - terület CLEAR spfli-carrid.
GUI-cím megadása SET TITLEBAR 'T01' Kettős kattintás [WTH <f1> <f2>..<f9> <f0>][wi Címkarbantartás Cím létrehozása Program Címkód SAPBC405_ILBD_GUI_TITLE T01 Cím &1 légitársaság járatadatai SY-TITLE Átvétel Minden cím
Elágazási listák oldalfeliratai TOP-OF-PAGE DURING LINE-SELECTION. REPORT sapbc405_ilbd_heading_i_lists NO STANDARD PAGE HEADING. Alaplista TOP-OF-PAGE. TOP-OF-PAGE OF-PAGE DURING LINE-SELECTION. Elágazási lista
Lista modális dialógusablakban WINDOW STARTING AT <c1> <r1> [ENDING AT <c2> <r2>]. REPORT sapbc405_ilbd_g_window. DATA: line1 TYPE i, line2 TYPE i. AT LINE-SELECTION. line1 = sy-curow + 1. line2 = line1 + 12. WINDOW STARTING AT 10 line1 ENDING ENDING AT 65 line2. WRITE DEMO: modális dialógusablak ------------------------------------------------------------- AA NEW YORK SAN FRANCISCO AZ ROM FRANKFURT AZ TOKIÓ DEMO: modális dialógusablak RÓMA LH FRANKFURT NEW YORK LH AZ 0555 LH 2000.0519. 360.202 ITL QF 2000.08.21. 360.202 ITL QF SQ SINGAPORE SAN FRANCISCO <c1> <r1> <c2> <r2>
Mezőkiválasztás GET CURSOR FIELD <mező1> [VALUE <mező2>]. REPORT sapbc405_ilbd_field_selection. DATA:, field_name(30), field_value(50). AT LINE-SELECTION. GET CURSOR FIELD field_name VALUE field_value. CASE field_name. WHEN 'SPFLI-CARRID'. DEMO: mezőkiválasztás -------------------------------------------------------- CARRID CONNID CITYFROM AA 0017 NEW YORK AZ 0555 RÓMA AZ 0789 TOKIÓ LH 0400 FRANKFURT DEMO: mezőkiválasztás DEMO: mezőkiválasztás WHEN 'SPFLI-CONNID'. ENDCASE. LH: Lufthansa LH 0400 2000.05.19. 2000.08.21.
SY-LILLI 1 2 3 4 Interaktív listák rendszermezői 1 SY-PAGNO 5 6 7 8 9 10 SY-LINNO 1 2 3 4 SY-CUCOL SY-CUROW 2 SY-CPAGE 3 Alaplista EL 1 EL 2 SY-LSIND = 0 SY-LISTI = 0 SY-LSIND = 1 SY-LISTI = 0 SY-LSIND = 2 SY-LISTI = 1...
ALV Grid Control Technikai háttér Alapelvek Control megvalósítása Funkciós elem
ALV Technikai háttér /1 ALV Grid Control: Mi a control? egyedülálló bináris szoftverkomponensek helyileg kerülnek telepítésre a SAPGUI-val a frontenden az applikációs szerver funkcióit tárolják a frontend számára ABAP-objektumok osztályaiba vannak beépítve újrafelhasználásra (reuse) alkalmasak
ALV Technikai háttér /2 Terület Custom konténer control Minden olyan controlt, amit dynpro-n kíván megjeleníteni, hozzá kell rendelni egy Konténer control-hoz. A bemutatott ábrán egy ALV Grid control integrációja látható Custom konténer control segítségével. A Screen Painter-ben létrehozott konténer segítségével meg kell határozni azt a területet, amelyet a Custom konténer control kitölt. ALV Grid Control
ALV példa, standard funkciók 17 64 AA AA AA AA LH LH LH LH LH 17 17 400 402 400 400 402 2000-01-17 2000-02-20 2000-03-11 2000-05-19 2000-01-13 2000-02-26 2000-03-21 2000-03-04 2000-05-28 USD USD USD USD DEM DEM DEM DEM DEM 513,69 1234,56 1234,56 513,69 513,69 369,00 1234,56 1234,56 1234,56 A321 747-400 A310-300 A319 A319 A310-300 A310-300 A321 747-400 Részletek Rendezés Keresés Szűrő Összegzés Nyomtatás Letöltés Megjelenítési változat Eszköztár
ALV Grid Control: elv Adatforrás SELECT GET Query Quick View Interfész Adatok gyűjtése belső táblába Mezőleírás Mezőkatalógus DIC-struktúra Lista ALV GRID CONTROL A belső tábla adatainak megjelenítése a mezőleírásnak és a a standard funkcióknak (pl. rendezés, összegzés) megfelelően
Control megvalósítása: dynpro A Screen Painter-ben létrehozni: Dynpro 100 A Menu Painter-ben létrehozni: Státus MY_CONTROL_AREA C Layout létrehozása a Screen Painter-ben 100 A Dynpro 100 lefutási logikájában PBO PAI Státus megállapítása A BACK, EXIT és CANCEL ok-code-feldolgozása
Megvalósítás programban A TOP-Include-ban Konténer control ALV Grid Control * CONTROLS DATA: g_custom_container TYPE REF TO cl_gui_custom_container, alv_grid TYPE REF TO cl_gui_alv_grid. Az ALV Grid Control a CL_GUI_ALV_GRID. osztály segítségével jeleníthető meg.
Objektumok létrehozása MODULE create_objects OUTPUT. IF g_custom_container IS INITIAL. CREATE OBJECT g_custom_container EXPORTING container_name = 'MY_CONTROL_AREA'. CREATE OBJECT alv_grid EXPORTING i_parent = g_custom_container. C ENDIF. ENDMODULE. " CREATE_OBJECTS OUTPUT
Program lefutás START-OF-SELECTION Belső tábla adatokkal itab_sflight A B C SELECT * FROM sflight Az oszlopok leírása Mezőkatalógus DIC sflight A B C A B C CALL SCREEN 100. Process Before Output Process After Input MODULE status_0100. MODULE create_objects. MODULE exit AT EXIT-COMMAND. MODULE user_command_0100. MODULE transfer_data.
Adatok megjelenítése a control-ban Process Before Output MODULE status_0100. MODULE create_objects. MODULE transfer_data. MODULE transfer_data OUTPUT. CALL METHOD alv_grid->set_table_for_first_display EXPORTING i_structure_name = 'SFLIGHT' CHANGING it_outtab = itab_sflight. ENDMODULE. " TRANSFER_DATA OUTPUT A SET_TABLE_FOR_FIRST_DISPLAY a CL_GUI_ALV_GRID osztály egyik módszere.
ALV-lista funkcióelemmel REUSE_ALV_LIST_DISPLAY Mezőkatalógus vagy Dictionary struktúra megadása Layout megadása és mentési opció Interaktivitás: callback formok
Programok összekapcsolása Adatátadás módjai SAP memória: SET/GET ABAP memória: EXPORT/IMPORT Program meghívása: Riport hívása: SUBMIT Tranzakció hívása: CALL TRANSACTION LEAVE TO TRANSACTION
Programok összekapcsolása Tranzakció visszatérés nélkül LEAVE TO TRANSACTION <tkód> visszatéréssel CALL TRANSACTION <tkód> 1-es típusú program SUBMIT <név> SUBMIT <név> AND RETURN Program Program Program Program
Adatok láthatósága Session SAP-memória SET GET Külső módusz 1 ABAP-memória Rendszer/ Módusz létrehozása Külső módusz 2 ABAP-memória EXPORT EXPORT IMPORT IMPORT Belső módusz 1 Belső Belső módusz módusz 2 Belső módusz 9 Belső módusz 1 Belső módusz 2 Belső módusz Belső módusz 9 CALL TRANSACTION <kód> SUBM IT <név> AND RETURN CALL TRANSACTION <kód> SUBM IT <név> AND RETURN
Adatátadás: SAP memória SAP-memória Tranzakció Dynpro 100 Dynpro 200 BC405D_SET_GET LH 400 F1-segítség műsz. infó a paraméter-id-nek szerepelnie kell az adatelemben lévő dynpromezőben a dynpromezőt az attribútumaiban legalább GET-paraméterként kell jelölni
SET/GET paraméterek SET PARAMETER ID <id> FIELD <f> GET PARAMETER ID <id> FIELD <f> REPORT sapbc405copd_a_set_get. AT LINE-SELECTION. CHECK NOT wa_flights-carrid IS INITIAL. SET PARAMETER ID 'CAR' FIELD wa_flights-carrid. SET PARAMETER ID 'CON' FIELD wa_flights-connid. CALL TRANSACTION 'BC405D_SET_GET'. CLEAR wa_flights-carrid. SAPmemória CAR LH CON 400 LH 400
SUBMIT utasítás SUBMIT <név> SUBMIT <név> AND RETURN Paraméterátadás WITH <sel> <op> <f1> WITH <seltab> BETWEEN <f1> AND <f2> WITH <seltab> IN <ranges_tab> VIA SELECTION-SCREEN <sel> <op> <f1> <seltab> <tab> PARAMETERS vagy SELECT OPTIONS neve EQ, NE, CP, NP, GT, GE, LT, LE Mezőnév vagy konstans SELECT-OPTIONS neve RANGES utasítással létrehozott belső tábla
SUBMIT WITH példa REPORT sapbc405copd_c_submit NO STANDARD PAGE HEADING. AT LINE-SELECTION. * RANGES table for selection criterion CARRID will be filled MOVE wa_flights-carrid TO sel_carrid-low. MOVE 'I' TO sel_carrid-sign. MOVE 'EQ' TO sel_carrid-option. APPEND sel_carrid. * RANGES table for selection criterion CONNID will be filled * RANGES table for selection criterion FLDATE will be filled SUBMIT sapbc405copd_d_booking AND RETURN WITH so_car IN sel_carrid WITH so_con IN sel_connid WITH so_fld IN sel_fldate.
Adatátadás ABAP memóriával EXPORT <obj_1> [From <obj1> ] TO MEMORY ID <id> IMPORT <obj_1> [TO <obj1> ] FROM MEMORY ID <id> Program 1 Deklaráció: <itab>, <mezősor>, <feld> EXPORT <itab> <mezősor> <mező> TO MEMORY ID ' <ID>' SUBMIT <program 2>. ABAP-memória <ID> <itab> Program 2 Deklaration: <itab>, <mezősor>, <mező> IMPORT <itab> <mezősor> <mező> FROM MEMORY ID ' <ID>' <ID> <mezősor> <ID> <mező>
Visszatérés hívott programból LEAVE PROGRAM. Program Program Vissza a kiválasztáshoz AT USER-COMMAND. CASE sy-ucomm. WHEN LEAVE PROGRAM.
Összefoglalás Adatkivitel listákon Szelekciós kép Adatok formálása és csoportszint feldolgozás Listák tárolása és háttérfeldolgozás Interaktív listák ALV-lista Programok összekapcsolása