ELTE SAP Excellence Center Oktatóanyag
1
A dataset egy az alkalmazás-szerveren megtalálható illetve ott létrejövő szekvenciális fájl. Szerveroldali fájlkezelésre használják az SAP-ban. Megjegyzés: Amennyiben kliens oldalon található fájlokat kell feltölteni és feldolgozni, illetve letölteni, akkor a GUI_DOWNLOAD és GUI_UPLOAD függvényeket vagy a CL_GUI_FRONTEND_SERVICES osztály megfelelő metódusait (módszereit) kell használni.
ELTE SAP Excellence Center Oktatóanyag
2
OPEN DATASET: Megnyit egy szerveroldali fájlt. CLOSE DATASET: Lezár egy szerveroldali fájlt. DELETE DATASET: Töröl egy szerveroldali fájlt. TRANSFER: Kiír adatot egy szerveroldali fájlba. READ DATASET: Adatot olvas egy szerveroldali fájlból.
ELTE SAP Excellence Center Oktatóanyag
3
OPEN DATASET
[Egyéb opciók]. : Általános forma. Ha nincsenek egyéb opciók, akkor a fájlt bináris módban megnyitja olvasásra. OPEN DATASET FOR INPUT. : Megnyit egy fájlt olvasásra. OPEN DATASET FOR OUTPUT. : Megnyit egy fájlt írásra. OPEN DATASET FOR APPENDING. : Megnyit egy fájlt írásra, de úgy, hogy a végére fűzi hozzá a kiírt adatokat. OPEN DATASET IN BINARY MODE [FOR ....]. : Ha egy fájlt bináris módban nyitnak meg, akkor az adat bájtfolyamként kerül beolvasásra ill. kiírásra. Az adat típusa adja meg a bájtfolyam hosszát és az adatábrázolás módját. OPEN DATASET FOR .... IN TEXT MODE ENCODING {DEFAULT|UTF-8|NONUNICODE}. : Ha egy fájlt szöveges módban nyitnak meg, akkor az adat soronként kerül kiírásra vagy beolvasásra, azaz az olvasási egység 1 sor. Az ENCODING – azaz a karakterkódolás – opció ilyenkor kötelező. UTF-8 esetén a rendszer a karakterek UTF-8-as kódolásban tárolja el. NON-UNICODE esetén ha a rendszer nem Unicode-os, akkor a karakterek konvertálatlanul tárolódnak el, míg Unicode-os rendszer esetén a SAP rendszerben beállított kódlap szerint konvertálódnak át a karakterek (TCP0C tábla). DEFAULT esetén ha a rendszer Unicode-os, akkor UTF-8, különben NON-UNICODE. A sorvége jel Unix-on ‘LF’, Windows-on „CRLF” vagy „ LF”. OPEN DATASET [FOR ....] [IN ... MODE] AT POSITION <pos>. : A hangsúly itt az AT POSITION <pos>-on van. Megnyit egy fájlt, és előkészíti azt a megadott pozíciótól való olvasásra ill. írásra. Ha a fájl megnyitása sikeres volt, akkor a SY-SUBRC értéke 0, különben 8. ( = ‘/tmp/test.txt’ vagy = ‘c:\temp\test.txt’)
ELTE SAP Excellence Center Oktatóanyag
4
OPEN DATASET FILTER . : A fájl megnyitása során lefuttatja a FILTER opcióban megadott operációs rendszer parancsot. Pl. = ‘compress’ OPEN DATASET MESSAGE <msg>. : A fájl megnyitása során az operációs rendszer által visszaküldött üzenetet belerakja a MESSAGE után megadott (<msg>) változóba.
ELTE SAP Excellence Center Oktatóanyag
5
CLOSE DATASET . : Ez az utasítás bezárja az alkalmazás-szerveren megnyitott nevű fájlt. Egy megnyitott fájlt nem minden esetben kötelező lezárni, de mindenképpen javasolt. Mindenképpen le kell zárni a fájlt, ha utána újra meg akarja nyitni a fejlesztő írásra, és ki akarja törölni a fájl tartalmát.
ELTE SAP Excellence Center Oktatóanyag
6
DELETE DATASET . : Letörli a fájlt az alkalmazás-szerverről. Ha a fájl törlése sikeres volt, akkor a SY-SUBRC értéke 0, különben 4.
ELTE SAP Excellence Center Oktatóanyag
7
TRANSFER to [LENGTH ]. : A TRANSFER utasítás segítségével adatot lehet kiírni egy fájlba. Az mező értékét kiírja a nevű fájlba. Az mező értéke vagy egy elemi típus, vagy egy struktúra, de nem lehet belső tábla. A kiírt adat hossza megadható a LENGTH opció segítségével. Ezt nem kötelező megtenni, de ha a fejlesztő megadja, és az adat hossza nagyobb, mint , akkor a rendszer levágja a többletet. Ha rövidebb, akkor kiegészíti szóközökkel. Ha a fájlt nincs megnyitva, akkor a rendszer megnyitja bináris módban, vagy megnyitja a fájlt felhasználva legutolsó OPEN DATASET beállításait. Az érthetőség kedvéért és a programhibák elkerülése végett a fájlt mindenképpen meg kell nyitni az OPEN DATASET-tel, mielőtt még bármilyen műveletet végrehajtana rajta a rendszer. A műveletek lefutása utána pedig mindenképpen érdemes lezárni a CLOSE DATASET-tel.
ELTE SAP Excellence Center Oktatóanyag
8
READ DATASET INTO [LENGTH ]. : Beolvassa a rendszer a nevű fájlból az adatot az nevű változóba. Ha a fájl nincs megnyitva, akkor a rendszer megnyitja bináris módban, vagy megnyitja a fájlt felhasználva legutolsó OPEN DATASET beállításait. Ha a rendszer be tudta olvasni az adatot, akkor a SY-SUBRC értéke 0. Ha rendszer elérte a fájl végét, akkor a SY-SUBRC értéke 4 lesz. Ha a fájlt nem sikerült megnyitni, akkor a SY-SUBRC értéke 8. A LENGTH opció bináris módban használható. Az változóba beolvasott adat hosszát beírja a változóba.
ELTE SAP Excellence Center Oktatóanyag
9
A rendszer automatikusan végrehajtja az alábbi ellenőrzéseket a dataseteken: S_DATASET jogosultsági objektum: A rendszer ellenőrzi, hogy az adott ABAP program hozzáférhet-e a megadott fájlhoz. SPTH tábla: Ellenőrzi az SPTH táblában, hogy a megadott fájl be lett-e regisztrálva, hogy az ABAP programok elérhessék.
ELTE SAP Excellence Center Oktatóanyag
10
P_FAJL (C(60)) : A dataset neve. Pl.: 'c:\tmp\dataset.txt‘ G_UZENET (C(60)) : Az operációs rendszer üzenete. G_SOR (C(40)): A sor, amit a rendszer eltárol a fájlban. A program megnyitja a dataset-et írásra. Ha sikeres volt a megnyitás, akkor beleír 2 sort, majd lezárja a dataset-et. Ha nem, akkor kiírja az operációs rendszer hibaüzenetét.
ELTE SAP Excellence Center Oktatóanyag
11
P_FAJL (C(60)) : A dataset neve. Pl.: 'c:\tmp\dataset.txt‘ G_UZENET (C(60)) : Az operációs rendszer üzenete. G_SOR (C(40)): A sor, amit a rendszer eltárol a fájlban. A program megnyitja a dataset-et olvasásra. Ha sikeres volt a megnyitás, akkor addig olvas ki belőle sorokat, amíg van mit, majd lezárja a dataset-et. Ha nem, akkor kiírja az operációs rendszer hibaüzenetét.
ELTE SAP Excellence Center Oktatóanyag
12
P_FAJL (C(60)) : A dataset neve. Pl.: 'c:\tmp\dataset.bin‘ G_UZENET (C(60)) : Az operációs rendszer üzenete. G_I (I): Egy egész típusú változó. G_DEMO (X_DEMO): Egy struktúra. TYPES: BEGIN OF x_demo, egesz TYPE i, datum TYPE d, szoveg TYPE c LENGTH 30, END OF x_demo. A program megnyitja a dataset-et írásra. Ha sikeres volt a megnyitás, akkor beleírja a G_I, majd a G_DEMO értékét, majd lezárja a dataset-et. Ha nem, akkor kiírja az operációs rendszer hibaüzenetét.
ELTE SAP Excellence Center Oktatóanyag
13
P_FAJL (C(60)) : A dataset neve. Pl.: 'c:\tmp\dataset.txt‘ G_UZENET (C(60)) : Az operációs rendszer üzenete. G_I (I): Egy egész típusú változó. G_DEMO (X_DEMO): Egy struktúra. A program megnyitja a dataset-et olvasásra. Ha sikeres volt a megnyitás, akkor beleolvassa a G_I, majd a G_DEMO értékét, majd lezárja a dataset-et. Ha nem, akkor kiírja az operációs rendszer hibaüzenetét.
ELTE SAP Excellence Center Oktatóanyag
14
P_FAJL (C(60)) : A dataset neve. Pl.: 'c:\tmp\dataset.txt‘ A program kitörli a dataset-et. Ha sikeres volt a törlés, akkor kiírja a ‘A fájl törlődött.’ üzenetet. Ha nem, akkor a ‘Nem sikerült.’ üzenetet.
ELTE SAP Excellence Center Oktatóanyag
15