SAP vállalatirányítási rendszer alapjai /8-9



Hasonló dokumentumok
SAP vállalatirányítási rendszer alapjai /8-9

ELTE SAP Excellence Center Oktatóanyag 1

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

ADATBÁZISKEZELÉS ADATBÁZIS

SAP vállalatirányítási rendszer alapjai /3

Adatbázisok* tulajdonságai

HVK Adminisztrátori használati útmutató

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Ügyfélforgalom számlálás modul

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Választó lekérdezés létrehozása

Gyári alkatrészek rendelése modul

PwC EKAER Tool felhasználói leírás május

Adatbázis kezelés Delphiben. SQL lekérdezések

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

3. modul - Szövegszerkesztés

Java és web programozás

1. Alapok. #!/bin/bash

BASH script programozás II. Vezérlési szerkezetek

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Felhasználói segédlet a Web of Knowledge / Web of Science adatbázis használatához

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Az SQL*Plus használata

1. kép. A Stílus beállítása; új színskála megadása.

Thermo1 Graph. Felhasználói segédlet

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség:

DebitTray program Leírás

Adatbázis rendszerek SQL nyomkövetés

ContractTray program Leírás

Adatbáziskezelés alapjai. jegyzet

Adatbáziskezelés. Indexek, normalizálás NZS 1

Java és web programozás

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv

Az alábbiakban a portál felépítéséről, illetve az egyes lekérdező funkciókról kaphat részletes információkat.

BASH SCRIPT SHELL JEGYZETEK

Nem gyári alkatrészek rendelése modul

Alapok (a K2D rendszer alapjai)

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

ELTE SAP Excellence Center Oktatóanyag 1

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Adatmodellezés. 1. Fogalmi modell

LBRA6i integrált rendszer

Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

RBLDNS DNS-based blocklists management felhasználói kézikönyv

1. Bevezetés. Főkönyv ablakon (1. ábra) az Új rekord felvitele ( vegyes tétel rögzítése (2. ábra).

ServiceTray program Leírás

w w w. h a n s a g i i s k. h u 1

SAP vállalatirányítási rendszer alapjai /6-7

SAP HR Általános lekérdező Ad-hoc-query

Felhasználói segédlet a Scopus adatbázis használatához

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

QGIS tanfolyam (ver.2.0)

Táblázatos adatok használata

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Szövegszerkesztés Word XP-vel. Tanmenet

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Kézikönyv. Szelekciós operátorok használata

Tartalomjegyzék

POSZEIDON dokumentáció (1.2)

AWK programozás, minták, vezérlési szerkezetek

PÉNZTÁRKÖNYV PROGRAM

Kézikönyv. Leltárív létrehozása, nyomtatása, nyitása

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Órarendkészítő szoftver

I-SZÁMLA KFT. VEVŐI FELHASZNÁLÓI FIÓK HASZNÁLATI ÚTMUTATÓ

Rövid leírás a Make Your Mark szoftver használatához

A d m i n i s z t r á c i ó s f e l a d a t o k a I n t e g r á l t K ö n y v t á r i R e n d s z e r b e n

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

II. év. Adatbázisok és számítógépek programozása

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázis-kezelés. Harmadik előadás

Területi elemzések. Budapest, április

Fejlesztési specifikációk

NETFIT modul Tanári felület Felhasználói útmutató. Magyar Diáksport Szövetség

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

ECDL Táblázatkezelés A táblázatkezelés első lépései Beállítások elvégzése

Adatbázis, adatbázis-kezelő

Felhasználói kézikönyv a WEB EDInet rendszer használatához

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Belépés a GroupWise levelező rendszerbe az Internet felől

Adatbázis-kezelés Access XP-vel. Tanmenet

Címzett: Kovács Gézáné Szeged, Híd u. 1. Tisztelt Kovács Gézáné! Örömmel értesítjük, hogy Ön megnyerte nyereményjátékunk 1000 Ft-os díját.

Átírás:

SAP vállalatirányítási rendszer alapjai /8-9 Tantárgy kódja: Tanév: VEMI5344i 2006/07-2.félév Előadó: dr. Varga Ernő, dr. Gerzson Miklós Listakészítés 1

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 2

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 3

Adatkivitel listákon Egyszerű listák Listaformátumok Oldalkialakítás Kivitel formázása Segédeszközök 4

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 : : ABAP-programban az elsőwrite-utasítás váltja ki a lista létrehozását. A megjelenítendő adatok először egy listapufferbe kerülnek. Amikor a lista összes adata a listapufferben van és minden esemény feldolgozása megtörtént, a litapufferból létrejön a képernyőkép. A lista rendszerint egy "végtelen" hosszú oldalból áll (max. 60 000 sor). A maximális sorhossz 1023 karakter. A listákat mindig csak a megfelelő kezelhetőség és performance eléréséhez szükséges szélességűre hozzuk létre. A standard rendszer két fejlécet hoz létre (standard felirat). Az első fejlécben balra fent a program címe jelenik meg, jobbra fent pedig az oldalszám. A második fejléc egy áthúzott vonalból áll. Ez a két sor a listában való lapozáskor is látható marad az ablakban. Lista nyomtatásakor az első sorban balra feliratként megjelenik a rendszerdátum, középen a lista felirata, jobbra pedig az oldalszámozás. 5

Listaformátum meghatározása REPORT <name> LINE-SIZE <s> LINE-COUNT <m[(n)]>. REPORT sapbc405_fold_list_layoutlayout. LINE-SIZE 50 LINE-COUNT 12. WRITE: 50 DEMO: A listaformátum kialakítása 1 : : 12 DEMO: A listaformátum kialakítása 2 : : A REPORT-utasítás LINE-SIZE <s> ésline-count <m> kiegészítéseivel az összes listaszinthez globálisan meghatározható a listaoldalak oszlop- és sorszáma. Különböző listaszintek az interaktív reporting során hozhatók létre. Egy listaszinten belül a NEW-PAGE LINE-COUNT <s> utasítással módosítható egy oldal sorainak száma, azaz ilyenkor a rendszer felülvezérli a REPORT-utasítást. A lista szélessége csak egy új listaszint létrehozásával módosítható. Ha a standard értékeket kell beállítani, akkor az <s> ill. <m> értékekhez a nulla értéket kell rendelni. Az <s> és <m> értékekhez nem használhatók változók. Az opcionális kiegészítés (<n>) a sor megadásánál a REPORT-utasításban megfelelő sorfoglalást jelent egy oldallábléc számára. Oldallábléc létrehozásához az END-OF-PAGE eseményt kell programozni. 6

Standard feliratok Oldal- és oszlopfeliratok 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 ****************************** ****************************** A listákhoz egysoros listafelirat (= oldalfelirat) és max. négy sorhoz oszlopfeliratok tarthatók karban. A karbantartás elvégezhető az editorból és a listamegjelenítésből is. A listából való karbantartásnak az az előnye, hogy a lista a karbantartáskor megjelenik a képernyőn, ami egyszerűbbé teszi a pozicionálást, első sorban az oszlopfeliratok elhelyezését. A fejlécek a program következő indításakor automatikusan megjelennek a listában. Ha nincs listafelirat karbantartva, akkor ehelyett a program címét alkalmazza a rendszer (sy-title rendszermező). A REPORT/PROGRAM-utasítás NO STANDARD PAGE HEADING kiegészítése a lista- és az oszlopfeliratot is kikapcsolja. A NEW-PAGE NO-TITLE/WITH-TITLE ill. a NO-HEADING/WITH-HEADING utasításokkal oldalanként felülvezérelhető ez a globális beállítás. A rendszer a standard listafeliratokon bevitt összes szöveget nyelvfüggően menti el, így azok lefordíthatók. A TOP-OF-PAGE esemény tetszőleges oldalfejlécek létrehozását teszi lehetővé. Különösen akkor érdemes a TOP-OF-PAGE eseménnyel dolgozni, ha változókat szeretnénk megjeleníteni a feliratokban. A fordítás lehetővé tétele érdekében minden szöveget szövegelem formájában célszerű kiírni. A TOP-OF-PAGE eseményt akkor váltja ki a rendszer, ha új oldalra írunk (WRITE, ULINE stb.). Ha nem kapcsoljuk ki a standard listafeliratokat, akkor a TOP-OF-PAGE által kivitt sorok ezután megjelennek. A TOP-OF-PAGE segítségével létrehozott sorok a listában való függőleges lapozáskor is láthatóak maradnak az ablakban. 7

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. A következőformat-opciók állnak rendelkezésünkre: COLOR <n> [ON OFF] a sor háttérszínének meghatározása INTENSIFIED [ON OFF] intenzív színábrázolás IGEN NEM INVERSE [ON OFF] átkapcsolás: háttérill. szövegszín HOTSPOT [ON OFF] az egérmutató kézikonként való megjelenítése és egyszeres kattintás az egérbillentyűvel (l. AT LINE- SELECTION) INPUT [ON OFF] beviteli mező RESET az összes formátum visszaállítása standard értékre A FORMAT segítségével beállított formátumok a következő kiviteltől számítva érvényesek, tehát a következőwrite-utasítástól. Az összes FORMAT-opció használható a WRITE-utasításnál is, ilyenkor azonban csak arra az egy mezőre vonatkoznak, amelyen épp állunk. Egy WRITE-utasítás FORMAT-opciói az erre a mezőre vonatkozó megfelelő globális formátumutasításokat módosítják (FORMAT-utasítás beállításával). Minden új eseménynél a rendszer az összes FORMAT-opciót satndard értékre állítja. 8

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. NO-GAP Az <f> mező mögötti szóközjel kivitelének kikapcsolása. A közvetlenül egymás után kivitt mezők térköz nélkül jelennek meg. NO-ZERO Ha az <f> mező tartalma nulla, akkor csak szóközjelek kerülnek kivitelre. Ha az <f> mező C vagy N típusú, akkor az elöl álló nullákat a rendszer szóközökkel helyettesíti. DD/MM/YY Ha az <f> dátummező (D típus), akkor a tartalmat a felhasználói állandó értékeknek megfelelően formatálja a rendszer (és nem az opciónak megfelelően). CURRENCY <key> Pénznemösszegek tizedesjegyeit határozza meg a listán történő kivitelnél. A megadott kulccsal sor kerül a tizedesjegyek utólagos olvasására a TCURX táblában. UNIT<key> Mennyiségek tizedesjegyeit határozza meg a listán történő kivitelnél. A megadott kulccsal sor kerül a tizedesjegyek utólagos olvasására a T006 táblában. USING EDIT MASK <mask> Kivitel a <mask> formatálási sablon szerint. UNDER <g> A kivitel attól az oszloptól kezdődik, amelytől kezdve a <g> mező kivitele is történt. LEFT-JUSTIFIED Balra zárt kivitel (standard a C, N, D, T, X típusok számára). CENTERED A kiviteli hosszon belül középre zárt kivitel. RIGHT-JUSTIFIED Jobbra zárt kivitel (standard az alábbi típusú számmezők számára: I, P és F). Az összes WRITE-opció teljes listája az online dokumentációban található. 9

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. A WRITE-utasítás AS SYMBOL opciójával szimbólumokat jeleníthetünk meg a listákban. Ezen jelek szimbolikus neve a <SYMBOL> includeprogramban van definiálva. Ugyanilyen módon, a WRITE-utasítás AS ICON opciójával ikonokat lehet felvenni a listákba. Ehhez az <ICON> include-ot be kell illeszteni a programba. A <LIST> include-program beszúrásával a szimbólumok és az ikonok is rendelkezésre állnak. A rendelkezésre álló ikonok és szimbólumok áttekintése az online dokumentációban vagy a WRITE- utasítás mintájában található. Vízszintes vonal létrehozható az ULINE-utasítással, az sy-uline rendszermezővel egy WRITE-utasításban, vagy több egymást követő mínuszjellel szintén egy WRITE-utasításban. Függőleges vonal létrehozható az sy-vline rendszermezővel egy WRITEutasításban. Speciális vonalak, mint pl. egy sarok a jobb felső részen, a line_top_right_corner AS LINE utasítással hozhatók létre. Ezek a nyelvi elemek lehetővé teszik a lista bekeretezését, a feliratok vízszintes, az oszlopok függőleges vonalakkal történő elválasztását, valamint táblák és fastruktúrák létrehozását. 10

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. A SET LEFT SCROLL-BOUNDARY utasítás segítségével vezéroszlopokat határozhatunk meg a listában, melyek a listában történő vízszintes lapozáskor a helyükön maradnak. Kiegészítő paraméterek nélkül az aktuális írási pozíciót (sy-colno) baloldali határvonalként határozza meg a rendszer. A határvonalat minden egyes új oldalhoz külön be kell állítani (pl. atop-of-page-hez). A NEW-LINE NO-SCROLLING utasítással megakadályozhatjuk a soremelést követő listasor eltolódását vízszintes lapozás esetén. Ezt a funkciót például akkor használhatjuk, ha azt szeretnénk, hogy a megjegyzéssorok mindig láthatóak legyenek. A SCROLL-utasítás segítségével futásidőben tetszőleges helyre lapozhatunk a listában, úgy hogy a felhasználó például a lista utolsó oldalát lássa. 11

További formázó utasítások NEW-LINE. SKIP [TO LINE] <n>. RESERVE <n> LINES. BACK. POSITION <n>. SET BLANK LINES {ON OFF}. NEW-LINE Új sor, a WRITE-utasításban a "/" jelnek felel meg. RESERVE <n> LINES Ha egy lista felépítésekor az aktuális oldalon nincs hely legalább <n> sor számára, akkor lapdobásra kerül sor. SKIP <n> Szóközjelek kivitele SKIP TO LINE <n> Következő kivitel az n sorban (visszafelé pozicionálás is lehetséges) BACK, RESERVE nélkülvisszaugrás az aktuális oldal első sorára a TOP- OF-PAGE után RESERVE utasítással visszaugrás a RESERVE után kivitt első sorra POSITION <n> Következő kiviteli pozíció az aktuális sor <n> oszlopában SET BLANK LINES ON Üres sorok kivitele, amelyek csak a szóközjelek kivitelével keletkeztek SET BLANK LINES OFF Üres sorok nem kerülnek kivitelre (standard beállítás) 12

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. A szövegelemek közé tartoznak a standard feliratok, a szövegszimbólumok és a szelekciós szövegek. A szövegelemeket a rendszer a forrásszöveghez nyelvfüggően külön tárolja. Ezáltal adva van a fordítás lehetősége. A bejelentkezés nyelvén keresztül vezérelhető, hogy melyik nyelven jelennek meg a szövegelemek. A szövegszimbólumok kiviteli hosszát minél nagyobbra állítsuk, mert maximum ennyi hely áll a fordítás rendelkezésére. A szövegszimbólumok a programban kétféle módon hívhatók fel: SZÖVEG-xxx (xxx egy háromjegyű karaktersor) 'sztring' (xxx). Lehetőségünk van a szövegszimbólumok és a program egyeztetésére, ha a második változatot használjuk a szövegszimbólumok létrehozásához. Ha egy szövegszimbólum karban van tartva, mindig ez jelenik meg a listában. A bővített szintaktikai ellenőrzés hibát fog feltárni, ha elfelejtkeztünk a szövegszimbólumok karbantartásáról. 13

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 Az ABAP-futásidőrendszer egy lista létrehozásakor a következő rendszermezőket tölti ki: SY-LINCT Sorok száma a REPORTutasításból (LINE-COUNT) SY-LINSZ Sorszélesség a REPORTutasításból (LINE-SIZE) SY-SROWS Sorok száma a megjelenítési ablakban SY-SCOLS Oszlopok száma a megjelenítési ablakban SY-PAGNO Az aktuális oldal száma SY-LINNO Az aktuális oldal aktuális sorának száma (SY-PAGNO) SY-COLNO Az aktuális oszlop száma Az utolsó három rendszermezőt a rendszer a lista létrehozásakor folyamatosan tölti ki. 14

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 A lista standard felhasználói felületén keresztül számos listákkal kapcsolatos művelet áll a felhasználó rendelkezésére. 15

Szelekciós kép Létrehozás Kialakítás Bevitelek ellenőrzése Változatok 16

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 A szelekciós kép a program és a felhasználó közötti olyan interfészként értelmezhető, mely segítségével pl. korlátozható az adatbázisból beolvasásra kerülő adatmennyiség. A logikai adatbázisok olyan szelekciós képeket bocsájtanak rendelkezésre, melyek konkrét jellemzőértékei a megadott csomópontnevektől (NODES <név>) függenek. A szelekciós képek verziói - amennyiben a logikai adatbázisban definiálásra kerültek - a standard szelekciós kép alhalmazát képezik. A PARAMETERS és aselect-options deklaratív nyelvi elemek segítségével bevitelre kész mezőket tartalmazó standard szelekciós kép (1000-es dynpro) hozható létre. A standard szelekciós kép mellett a SELECTION-SCREEN BEGIN. utasítással további olyan szelekciós képek hozhatók létre, melyek a CALL SELECTION-SCREEN utasítással hívhatók fel. Egy-egy szelekciós képhez változatokat is létrehozhatunk. A változat felhasználóspecifikus szelekciós mennyiséget jelent. Változat létrehozása akkor célszerű, ha a programot gyakran kell ugyanazzal a szelekcióhalmazzal, vagy háttérfeldolgozásban indítani. 17

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 A PARAMETERS-utasítás deklaratív nyelvi elem. A mezők a DATAutasításhoz hasonlóan a TYPE vagy LIKE kiegészítésekkel deklarálhatók. A szelekciós képen bevitelre kész mezőket hoz létre a rendszer. Egy PARAMETERS neve legfeljebb nyolc karakterből állhat. A szelekciós szövegeket (a paraméterek neveit) a szövegelemek/szelekciós szövegek funkcióval ajánlott karbantartani. A DEFAULT <érték> kiegészítéssel javasolt érték megadása lehetséges.memory ID <pid> megadása esetén az SAP Memory a SET/GET paraméterek segítségével hoz létre javasolt értéket. Kötelező mezők deklarálása esetén (OBLIGATORY -kiegészítés)a szelekciós képet csak akkor zárja be a rendszer, ha ezek a mezők feltöltésre kerültek. Paramétereket jelölőmezőként is (AS CHECKBOX) generálhatunk. Ezáltal olyan egyjegyű karaktermezőt hozunk létre, melynek tartalma ' '(SPACE = szóköz) vagy 'X' lehet. A jelölőmezők tartalma az IF/ENDIF kontrollstruktúrák segítségével értékelhető ki. A RADIOBUTTON GROUP <grp> kiegészítéssel választókapcsolócsoportokat is létrehozhatunk a szelekciós képen. Egy csoporton belül (a csoportnév legfeljebb 4 karakterből állhat) mindig csak egy kapcsoló kiválasztása lehetséges. A választókapcsolók tartalma a CASE/ENDCASE kontrollstruktúra segítségével értékelhető ki. 18

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 - ASELECT-OPTIONS-utasítás deklaratív nyelvi elem. APARAMETERS-utasítással ellentétben ez esetben nem csak egy bevitelre kész mező jelenik meg a szelekciós képen, hanem összetett szelekció végrehajtására kap lehetőséget a felhasználó. A SELECT-OPTIONS utasítás hatására egy <seltab> nevű, szabványos struktúrával rendelkező belső táblát hoz létre a rendszer. Ez a tábla 4 mezőből áll: seltab-sign, seltaboption, seltab-low és seltab-high. A <seltab> szelekciós tábla neve legfeljebb 8 karakterből állhat. A szelekciós szövegeket (a szelekciók neveit) a szövegelemek/szelekciós szövegek funkcióval ajánlott karbantartani. A FOR kiegészítés után adjuk meg azt a mezőt, melynek tartalmát a szelekciós bevitellel össze szeretnénk hasonlítani. Ezt a mezőt pl. egy DATA vagy egy NODES -utasítással kell deklarálni. A seltab-low és a seltab-high mezőtulajdonságai megegyeznek az ellenőrző mező tulajdonságaival. A <seltab> szelekciós tábla minden sora összehasonlító művelettel megfogalmazott feltételt tartalmaz. A következő értékek megadása lehetséges: SIGN: I (Include), E (Exclude) OPTION: EQ, NE, LE, LT, GE, GT, BT(Between), NB (Not Between), CP (Contains Pattern), NP (Contains Pattern not) Az 'S' szelekciós mennyiség meghatározása a következőképpen történik: az összes include (I1,, In) unióhalmaza mínusz az összes exclude (E1,, Em) unióhalmaza. Ha a tábla üresen marad, a teljes halmazt veszi figyelembe, ha a SELECT-utasításban WHERE IN <seltab> kiegészítést használunk. 19

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 A <seltab> belső tábla a szelekciós képen bevitt adatokkal tölthető fel. A seltab-sign és a seltab-option mezők standard bejegyzései az intervallumok I, EQ, ill. I, BT egyediérték-korlátozásait tartalmazzák. A szelekciós tábla feltöltése a szelekciós opciók funkcióval lehetséges (kettős kattintás a megfelelő beviteli mezőre ill. az adott nyomógomb lenyomásával). A rendszer az adott szelekciónak megfelelően a seltabsign és seltab-option mezők összes alternatíváját felkínálja. Ha a Szelektálás jelzőlámpája zöldet mutat, ez a seltab-sign mezőben I értéknek felel meg, a piros jelzőlámpa pedig E értéknek. Táblabejegyzést a megfelelő nyomógomb (Szelekciós sor törlése) lenyomásával törölhetünk. Minden szelekciós kritérium lehetőséget nyújt komplex többszörös szelekciók megadására, amennyiben ettől eltérő definícióra nem került sor. A rendszer a többszörös szelekciót a nyíl színének megváltoztatásával jelzi. 20

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. A SELECT-OPTIONS-utasítás kiegészítései a következők lehetnek: DEFAULT: javasolt értékek megadását teszi lehetővé a seltab-low (egyedi érték) ill. seltab-low és seltab-high (intervallum) mezőkben. Az OPTION és a SIGN kiegészítésekkel a seltab-option és a seltabsign mezők standard értékektől eltérő javasolt értékei állíthatók be. A MEMORY ID <pid> kiegészítéssel SPA/GPA-paraméter rendelhető hozzá. Az SAP-Memory-ban <pid> azonosítóval tárolt értéket a szelekciós kép felhívása során a seltab-low-mezőbe (alsó intervallumhatár) helyezi a rendszer. A LOWER CASE kiegészítés kikapocsolja a bevitt adatok nagybetűkre való konvertálását. Ez Dictionary-mezőknél nem megengedett, mivel ez esetben a Dictionary-ben megadott attribútum dominál. Az OBLIGATORY kiegészítéssel kötelező mezőt hozhatunk létre. A szelekciós képen szereplő beviteli mezőben kérdőjel jelenik meg, itt a felhasználó meg kell adjon egy értéket. A NO-EXTENSION kiegészítés kikapcsolja a többszörös szelekció lehetőségét. A NO INTERVALS kiegészítés kikapcsolja a szelekciós képen a felső intervallumhatárt (seltab-high mező). A Többszörös szelekció kiegészítő kép segítségével továbbra is megadhatunk intervallumokat. Ha 1. típusú programok attribútumai között logikai adatbázist adtunk meg, akkor a logikai adatbázis szelekciós képét dolgozza fel a rendszer. Ha a programban a további SELECTION-OPTIONS vagy a PARAMETERS utasítást programoztunk, ezek a logikai adatbázis szelekciói alatt kerülnek megjelenítésre. 21

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. A SELECTION-SCREEN utasítással vezérelhetjük a szelekciós kép felépítését. A logikailag összetartozó szelekciók abegin OF BLOCK <blokk> kiegészítéssel csoportosíthatók és a WITH FRAME kiegészítéssel kerettel láthatók el. A blokknak címet is adhatunk, de a TITLE <szöveg> kiegészítés csak kerettel összefüggésben használható. Kerettel ellátott blokkokat egymásba helyezhetünk (legfeljebb 5 keretet). A szelekciós kép kialakításánál célszerű a BIBS-mintatranzakcióban szereplő ergonómiai irányelvekhez igazodnunk. 22

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. Egy kiviteli sorba több paraméter és megjegyzés is felvehető. A SELECTION-SCREEN BEGIN OF LINE és SELECTION-SCREEN END OF LINE utasítások közé kell ékelnünk ezeket. Szöveget a COMMENT-kiegészítéssel vehetünk fel. A megjegyzésszöveget mindig el kell látnunk formátummal (pozíció és kiviteli hossz). A pozíció a pos_low ill. pos_high mezők segítségével is megadható. Ezek a seltab-low és seltab-high mezők pozíciói a szelekciós képen. A COMMENT FOR FIELD <f> kiegészítés hatására az <f> mező F1-segítsége mind a megjegyzésszövegnél, mind magánál a paraméternél is megjelenik. Továbbá, az adott paraméter kikapcsolásánál (szelekciós változat: láthatatlan attribútum) a megjegyzésszöveg sem kerül megjelenítésre. A POSITION <pos> utasítással egy adott soron belül a következő kivitel helyére pozicionálhatjuk a kurzort (csak a BEGIN OF LINE END OF LINE blokkon belül használható). 23

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 - AzINITIALIZATION esemény egy végrehajtható programban pontosan egyszer kerül feldolgozásra. Ebben az időpontban pl. feltölthetjük a logikai adatbázis szelekcióit javasolt értékekkel. A szelekciók neveit az F1-segítség (műszaki infó) felhívásával állapíthatók meg. A riporton belüli szelekciókat a DEFAULT <érték> kiegészítés segítségével láthatjuk el javasolt értékekkel. Az értékmennyiségeket INITIALIZATION esemény során helyezi a rendszer a <seltab> belső táblákba. A szelekciós kép inicializálása elvileg az AT SELECTION-SCREEN OUTPUT eseménynél is végrehajtható. Ez az esemény a szelekciós kép Process Before Output (PBO) időpontjának felel meg, és mint ilyen a.e. többször is feldolgozásra kerül. A szelekciós kép PBO időpontjában végrehajtott tipikus műveletek egyike a dinamikus képernyőmódosítás (LOOP AT SCREEN), azaz mezők megjelenítése vagy elrejtése, bevitel lehetővé tétele vagy kikapcsolása stb. 24

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. Az AT SELECTION-SCREEN feldolgozási blokk keretében vezérelhetjük a szelekciós képünkhöz kapcsolódó hibadialógusokat. Az esemény a szelekciós kép PAI-feldolgozásához (PAI: Process After Input) tartozik. Hiba esetén (MESSAGE Exxx vagy MESSAGE Wxxx) az összes mezőt ismét bevitelre készre állítja a rendszer. Az ON <f> ill. ON <seltab> paraméterek segítségével egyes szelekciókra célirányosan is hivatkozhatunk. Hiba esetén csak ezeket helyezi bevitelre kész állapotba a rendszer. Egy-egy logikai csoport beviteli kombinációinak ellenőrzéséhez az AT SELECTION-SCREEN ON BLOCK <blokk> esemény áll rendelkezésünkre. E blokk mezőit hibaüzenet esetén állítja a rendszer bevitelre kész állapotra. Az AT SELECTION-SCREEN ON END OF <mező> esemény a Többszörös szelekciók szelekciós kép PAI-feldolgozásához tartozik. Beviteli ellenőrzést végezhetünk a logikai adatbázis szelekciós kritériumaira vagy saját programjaink szelekciójára vonatkozóan. 25

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. AT SELECTION-SCREEN ON pa_add. IF pa_add = mark. Szelekciós kép: Dynpro 1000 CALL SELECTION-SCREEN 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 Egy programban több szelekciós képpel dolgozhatunk. A standard szelekciós kép dynprószáma mindig 1000. Szelekciós képet a SELECTION-SCREEN BEGIN OF SCREEN <nnnn> END OF SCREEN <nnnn> utasításkombinációval is definiálhatunk. A BEGIN END utasítások között a SELECT-OPTIONS és PARAMETERS utasításokkal deklaráljuk a szükséges szelekciókat. A szelekciós kép az <nnnn> dynprószámot kapja és a CALL SELECTION-SCREEN <nnnn> utasítással hívható fel. A szelekciós képről való visszatérést a rendszer végzi, tehát nincs szükség külön programozásra, mint pl. korábban a LEAVE SCREEN -CALL SCREEN utasítások esetén. A program közvetlenül a felhívás után folytatódik.az SY-SUBRC rendszermező segítségével azonban le kell kérdeznünk, hogy a felhasználó a Végrehajtás (F8) vagy a Megszakítás (zöld és sárga nyíl, piros kereszt) funkciót választotta-e. Végrehajtás (F8) esetén sy-subrc = 0, megszakítás esetén pedig sy-subrc = 4. Az INITIALIZATION esemény során tölthetjük fel a szelekciós képeket javasolt értékekkel. Az AT SELECTION-SCREEN kérdezhetjük le, hogy éppen melyik szelekciós kép feldolgozását végzi a rendszer. Ez a lekérdezés pl. egy CASE-kontrollstruktúra és az sy-dynnr rendszermező segítségével valósítható meg. 26

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 Minden programhoz tetszőleges számú különböző szelekciós halmaz, azaz változat hozható létre. Ezek a változatok egyértelműen hozzá vannak rendelve a programhoz. Változatok létrehozása akkor célszerű, ha a programot egyazon szelekciós halmazzal többször futtatunk, vagy a háttérben hajtjuk végre. A program attribútumai között kijelölhötjük az Indítás változattal opciót. A program a felhasználók (rendszer/szolgáltatások/reporting) ezt követően csak változattal indíthatják el. Ha a program több szelekciós képet használ, a változat tetszőlegesen létrehozható az összes szelekcióra vagy külön-külön szelekciókra vonatkozóan. Változatok névkonvenciója és transzportja 'SAP&xxx': SAP által kiszállított változatok 'CUS&xxx': felhasználó által (a 000 mandantban) létrehozott változatok E névkonvencióhoz igazodó változatok mandantfüggetlenek és a riporttal együtt automatikusan transzportálásra kerülnek. Ha nem tartjuk be ezt a névkonvenciót, bejegyzést kell létrehoznunk egy kérelem (feladat) objektumlistájában: LIMU VARI <változatnév>. 27

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 Minden változathoz nevet és leírást kell hozzárendelnünk. A változatok alapesetben mindkét környezetben, tehát online-változatban és háttérfeldolgozáshoz egyaránt rendelkezésre állnak. Arra is lehetőségünk van, hogy a változat felhasználását a háttérfeldolgozásra korlátozzuk. Változatunkat védhetjük egyéb felhasználók módosításaival szemben. Ha kijelöljük a Megjelenítés csak a katalógusban opciót, az adott változat nem jelenik meg az általános értéksegítségben (F4). A szelekció típusát a deklarációja során határozzuk meg: Az s típus SELECT-OPTIONS-t, a p típus a PARAMETERS-t jelöli. A rendszer kikapcsolja a bevitelre kész állapotot, ha kijelöltük a szelekciók védelme opciót. A kikapcsolás attribútummal lehetőségünk van a szükségtelen szelekciók kikapcsolására, így áttekinthetőbbé tehetjük a szelekciós képet. Ha a programban szelekciós változókat használunk, elvben három különböző lehetőségünk van arra, hogy a szelekciókat futásidőben értékekkel töltsük fel: a TVARV-táblából ('T'-típus) dátummezők feltöltése a dinamikus dátumszámítás segítségével ('D'-típus), pl. napi dátum felhasználóspecifikus változók ('B'-típus); ennek feltétele, hogy a szelekciót előzetesen a MEMORY ID <pid> kiegészítéssel deklaráljuk. 28

Adatok formatálása, csoportszint feldolgozás Áttekintés Belső táblák Kinyert (extraktum) adatállományok Két technika összehasonlítása 29

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 Ha listáinkat strukturáltan szeretnénk felépíteni, a csoportszintfeldolgozás technikáját alkalmazhatjuk. A csoportszinteket a megjelenítendő mezők tartalmai határozzák meg: a csoportszint váltása mindig akkor következik be, ha a mező tartalma módosul.. Csoportszintek használatának ezért csak akkor van értelme, ha adataink rendezett formában állnak rendelkezésre. A csoportszint-feldolgozás használatának feltétele, hogy a kivitelre szánt adatok ideiglenesen tárolva legyenek. E feltétel teljesítéséhez a belső táblák vagy az átmenti adatállomány technikája használható. 30

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. A 4.0 Release óta összesen három táblafajtát különböztetünk meg: standard táblákat (STANDARD TABLE), rendezett táblákat (SORTED TABLE) és hash-táblákat (HASHED-TABLE). A belső táblák teljes szintaktikáját kérem az online-dokumentációban olvassa el. 31

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 Az Array-Fetch segítségével egy belső táblát a SELECT során egyszerre feltölthetünk. Az APPEND utasítással bejegyzéseket csatolhatunk a belső tábla végéhez. Az APPEND utasítás fólián bemutatott változata csak standard vagy rendezett táblákhoz használható. Az APPEND utasítást követően a sytabix rendszermező tartalmazza az újonnan létrehozott táblabejegyzés indexét. A COLLECT utasítás segítségével egyértelmű ill. tömörített adatállományokat hozhatunk létre. Ennek során a belső tábla <wa> munkaterületének tartalmát a rendszer új bejegyzésként felveszi a tábla végére vagy hozzáadja egy már létező hasonló bejegyzéshez. A második eset ekkor következik be, ha a belső táblában már szerepel olyan bejegyzés, mely kulcsmezői tekintetében megegyezik a munkaterülettel. Az új bejegyzés azon mezőit, melyek nem tartoznak a kulcshoz, a rendszer hozzáadja a a már létező bejegyzés megfelelő tartalmához. A COLLECT utasításnál az összes mező, mely nem a kulcshoz tartozik, numerikus típusú kell legyen. 32

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. A SORT utasítás az <itab> belső tábla bejegyzéseit növekvően rendezi. Ha nem adjuk meg a BY <f1> kiegészítést, a rendezés alapjául a tábladefinícióban meghatározott kulcsot használja a rendszer. Ha a BY <f1> <f2> kiegészítést megadjuk, az <f1>, <f2>, mezőket használja a rendszer rendezési kulcsként. Ezek a mezők tetszőleges típusúak lehetnek. A SORT utasítás ASCENDING és DESCENDING kiegészítéseivel megadható, hogy növekvő (standard beállítás) vagy csökkenő legyen-e a rendezés. A SORT utasításhoz kapcsolódó további információ az onlinedokumentációban található. A LOOP AT <itab> ENDLOOP ciklusutasítással dolgozható fel egy belső tábla. A belső tábla adatrekordjai szekvenciálisan kerülnek feldolgozásra. A CONTINUE utasítás segítségével az aktuális ciklusátfutás idő előtt befejezhető, és a feldolgozás a következő átfutással folytatható. Az EXIT utasítással befejezhető a ciklus feldolgozása. A sy-subrc visszatérési kód a ciklusfeldolgozást (az ENDLOOP utasítást) követően jelzi, hogy a rendszer feldolgozta-e a ciklust: SY-SUBRC = 0: a rendszer legalább egyszer átfutotta a ciklust. SY-SUBRC = 4: a rendszer nem futotta át a ciklust, mivel nem talált bejegyzést. 33

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. A csoportszint-feldolgozáshoz különleges kontrollstruktúrákat használhatunk, melyek mind AT-tel kezdődnek és ENDAT-tel végződnek. Ezek a kontrollstruktúrák csak LOOPcikluson belül használhatók. Az AT FIRST ill. AT LAST utasításblokkokat pontosan egy alkalommal dolgozza fel a rendszer, mégpedig az első ill. utolsóloop-ciklusátfutás során. Az AT NEW <f> ENDAT közötti utasítások akkor kerülnek végrehajtásra, ha az <f> mező értéke az aktuálisloop- ciklusátfutás során módosul (egy csoportszint kezdete) vagy a tábladefinícióban e mezőhöz képest balra elhelyezkedő mező értéke. Az AT END OF <f> ENDAT közötti utasítások akkor kerülnek végrehajtásra, ha az <f> mező értéke a következőloop- ciklusátfutás során módosul (egy csoportszint vége) vagy a tábladefinícióban e mezőhöz képest balra elhelyezkedő mező értéke. A kontrollstruktúra feldolgozásának megkezdése során (az AT utasításnál): - minden karaktertípusú mezőt (jobb oldalt) az aktuális csoportmező mögött "* karakterrel tölti fel a rendszer - minden egyéb mezőt (jobb oldalt) az aktuális csoportmező mögött iniciális értékre állít a rendszer. A kontrollstruktúra feldolgozásának lezárása időpontjában (az ENDAT utasításnál) a munkaterület összes mezője az aktuális ciklusátfutás adatait tartalmazza. A SUM utasítással a LOOP-ciklus munkaterületében valamennyi I, F és P típusú mezőben rendelkezésre bocsájtja a rendszer az adott csoportösszegeket. 34

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. A belső táblák csoportszint-struktúrája statikus. Pontosan megegyezik a belső táblák oszlopainak sorrendjével (balról jobbra). Különösen a belső táblák esetén független a csoportszint-struktúra a tábla rendezésének kritériumaitól. Ez azt jelenti, hogy a belső tábla mezőinek sorrendje meg kell egyezzen a rendezési sorrenddel. A csoportszint-feldolgozás implementálása során be kell tartanunk az egyes csoportszintek fent bemutatott sorrendjét a LOOP-cikluson belül. A sorrend a belső tábla mezőinek sorrendjéhez igazodik és így a rendezési sorrendhez is. A rekordok egyedi feldolgozására az AT ENDAT kontrollstruktúrákon kívül kerül sor. 35

Extraktum létrehozása Mezőcsoportok megnevezése Utasítás: FIELD-GROUPS A HEADER mezőcsoportnak mindig léteznie kell FIELD-GROUPS: header, connections, flights. header connections flights Mezőcsoportok meghatározása Utasítás: INSERT INTO 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 Mezőcsoportba csak globális adatobjektum vehető fel, alprogramban vagy funkcióelemben lokálisan definiált adatobjektum nem. Az INSERT utasításnál nemcsak mezőket, hanem mezőszimbólumokat is megadhatunk. Így lehetséges, hogy a mezőszimbólum által hivatkozott adatobjektumot futásidőben dinamikusan vegyünk fel a mezőcsoportba. A nem hozzárendelt mezőszimbólumokat figyelmen kívül hagyja a rendszer, azaz nem szúr be új mezőt a mezőcsoportba. Az EXTRACT utasítás egy mezőcsoport összes mezőjét egyetlen rekordként szekvenciális adatállományba írja (a transzport névazonos mezőkkel történik). Ha definiáltunk HEADER mezőcsoportot, ennek mezőit a rendszer rendezési kulcsként minden rekord elé helyezi. Ezt követően ez az adatállomány a SORT utasítással rendezhető és a LOOPENDLOOP utasításokkal feldolgozható. Ezt követően az EXTRACT már nem lehetséges. 36

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. GET sbook FIELDS bookid. EXTRACT bookings. LH LH 400 400 29.12.99 29.12.99 1.332,00 00000048 DEM Az INSERT utasítás nem deklaratív nyelvi elem. Ez azt jelenti, hogy a mezőcsoportok futásidőben is módosíthatók. Miután egy-egy mezőcsoport első adatállománya az EXTRACT utasítással az átmeneti állományban tárolásra került, az adott mezőcsoport a továbbiakban már nem bővíthető az INSERT utasítással. Különösen a HEADER mezőcsoportra érvényes, hogy az elsőextract utasítás után már (mezőcsoporttól függetlenül) egyáltalán nem bővíthető. A GET események feldolgozása során a logikai adatbázis automatikusan hexadecimális nullákat ír a csomópont összes mezőjébe, amikor visszatér a hierarchikusan magasabban fekvő csomóponthoz. Mivel a HEADER általában az összes mezőcsoport rendezési mezőit tartalmazza, ezek a hexadecimális nullák a HEADERben egyfajta hierarchiakulcsként foghatók fel: minél nagyobb a nullák száma, annál magasabban vagyunk a csoportszint-hierarchiában. 37

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. A SORT utasítás a kinyert (extraktum-)adatállományt a HEADER mezőcsoportban definiált mezősorrend szerint rendezi. A BY <f1> <f2> kiegészítéssel határozhatunk meg új rendezési kulcsot. Ennek során minden <fi> a HEADER mezőcsoport vagy egy olyan mezőcsoport mezője kell legyen, mely csak a HEADER mezőcsoportban szereplő mezőket tartalmaz. Az ASCENDING ill. DESCENDING kiegészítésekkel határozhatjuk meg, hogy a rendezés iránya növekvő (alapérték) ill. csökkenő legyen-e. A logikai adatbázisok által X 00 értékkel feltöltött mezőket a SORT utasítás mindig az egyéb értéket tartalmazó mezők elé sorolja be. Az extraktumállomány feldolgozása szekvenciálisan, egy LOOP-ciklus segítségével történik. Az extraktum-adatrekordmezőket a rendszer a névazonos programmezőkbe helyezi. A csoportváltás mindig a HEADER mezőire vonatkozik. Az extraktumállományok egyedirekord-feldolgozása az AT <fg> ( <fg> = mezőcsoport) nyelvi elem segítségével történik. A CNT(<hf>) nem utasítás, hanem olyan mező, mely automatikusan létrehozásra és feltöltésre kerül, ha a <hf> a HEADER mezőcsoport nem-numerikus mezője és a rendezési kulcs része. A csoport végén a CNT(<hf>) azon eltérő értékek számát tartalmazza, melyeket a <hf> mező ezen csoportszinten felvett. A SUM(<nf>) nem utasítás, hanem olyan mező, mely automatikusan létrehozásra és feltöltésre kerül, ha az <nf> gey extraktumállomány numerikus mezője. A csoport végén a SUM(<nf>) az <nf> mező csoportösszegét tartalmazza. A SUM és CNT mezők a csoportszint végén vagy az AT LAST időpontban állnak rendelkezésre. 38

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. 39

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 A csoportszint-váltások sorrendje a LOOP-cikluson belül a rendezési sorrendhez kell igazodjon. Az összegek csak a csoportvég-feldolgozás keretében határozhatók meg. 40

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 Az extraktumok csak csatolást (EXTRACT), rendezést (SORT) és szekvenciális feldolgozást (LOOP) engednek meg. Ha SORT vagy LOOP utasításra már sor került, az átmenti adatállomány nem bővíthető az EXTRACT utasítással. Olyan műveletek, mint az EXTRACT-állományba való beszúrás vagy az abból való törlés nem használhatók. Az extraktumok több rekordfajtát (FIELD-GROUPS) engednek meg, melyek mezői dinamikusan határozhatók meg (az INSERT nem deklaratív nyelvi elem). A belső táblák pontosan egy sortípussal rendelkeznek, melyet statikusan deklarálunk. Belső táblák esetén a csoportszintek hierarchiájához a táblamezők deklaráció szerinti sorrendjét veszi alapul a rendszer. A csoportszintek struktúrája tehát belső táblák esetén statikus, és független attól, hogy a tábla mely kritériumok szerint került rendezésre. Extraktumok esetén a csoportszintek feldolgozása nem függ a mezők sorrendjétől, tehát simételt rendezést követően teljesen új csoportszint-feldolgozásra kerülhet sor. Az extraktumállományok csoportszint-struktúrája tehát dinamikus. Nem felel meg pontosan a rendezési kulcsnak, tehát azon HEADER mezőcsoport mezősorrendjének, mely szerint az extraktumállomány rendezésre került. Extraktumok esetén a compiler megjegyzi, hogy a csoportszint és kumulálandó mező mely kombinációjához szeretnénk csoportszintösszegzést végrehajtani. A kért csoportszint-összegeket a LOOP ENDLOOP-blokk feldolgozása során határozza meg a rendszer. Belső táblák esetén a csoportszint-összegeket csak a végén, a SUM-utasítással határozzuk meg, amely négyzetes mértékű ráfordítást eredményez a belső táblák csoportszint-összegzésénél. 41

Listák tárolása és háttérfeldolgozás Lista mentése Nyomtatás Háttérfeldolgozás 42

Listák mentésének lehetőségei Lista Rendszer Mentés/küldés Lista Mentés + Járat adatai Tárolás Háromféle lehetőség van lista mentésére: 1.) tárolás az Office-ban 2.) tárolás lokális fájlként a PC-n 3.) tárolás területmenüben. Ön a listát Rendszer menüben mindig elmentheti, vagy használhatja a Lista menüt is a standard listastátusnál. 43

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 Lehetőség van mappák létrehozására az Office-ban (Iroda). Ezekben a mappákban listák is tárolhatók. Ha a listát a személyes mappa küldött dokumentumai közé helyezzük, más felhasználóknak is elküldhető. 44

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 Lista a PC-re lokális fájlként négy különböző formátumban menthető el: 1.) konvertálatlan (ASCII) formátumban 2.) táblázatkezelő formátumban (-> Microsoft EXCEL) 3.) RTF (Rich Text formátum -> Microsoft WORD) 4.) HTML-formátumban (Web-Browser). Az a könyvtár, amelyet a rendszer a frontenden való mentés során felkínál, a RSSOPCDR program segítségével állítható be. 45

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 A 4.6A release-ben a területmenüket struktúranavigációra állítottuk át. Azon tranzakciók mellé, amelyeket a területmenü eddig is tartalmazott, most 1-es típusú programok és SAP Query-k is felvehetők. A tranzakciókóddal nem rendelkező programokhoz a rendszer automatikusan tranzakciókódot rendel. A 4.6 release-től kezdve a beszámolóstruktúrák a beszámolómenükbe integrálódnak. Ezt követően a beszámolóstruktúrák feldolgozása már a területmenü karbantartási eszközeivel történik. Az elmentett listákat a program maga tárolja. Ezek az elmentett területmenük újra megtalálhatók, ha a program a menübe integrálásra került. Az elmentett listák az RSRSSLIS standard program segítségével is megjeleníthetők. A területmenükhöz akkor férhetnek hozzá a felhasználók, ha az adott területmenü hozzá van a felhasználó tevékenységcsoportjához. A területmenü a profilgenerátor segítségével rendelhető hozzá tevékenységcsoporthoz 46