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. 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. Oktatóanyag 3
OPEN DATASET <dsn> [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 <dsn> FOR INPUT. : Megnyit egy fájlt olvasásra. OPEN DATASET <dsn> FOR OUTPUT. : Megnyit egy fájlt írásra. OPEN DATASET <dsn> FOR APPENDING. : Megnyit egy fájlt írásra, de úgy, hogy a végére fűzi hozzá a kiírt adatokat. OPEN DATASET <dsn> 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 <dsn> FOR... IN TEXT MODE ENCODING {DEFAULT UTF-8 NON- UNICODE}. : 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 <dsn> [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. (<dsn> = /tmp/test.txt vagy <dsn> = c:\temp\test.txt ) Oktatóanyag 4
OPEN DATASET <dsn> FILTER <filt>. : A fájl megnyitása során lefuttatja a FILTER opcióban megadott operációs rendszer parancsot. Pl. <filt> = compress OPEN DATASET <dsn> 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. Oktatóanyag 5
CLOSE DATASET <dsn>. : Ez az utasítás bezárja az alkalmazás-szerveren megnyitott <dsn> 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. Oktatóanyag 6
DELETE DATASET <dsn>. : 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. Oktatóanyag 7
TRANSFER <f> to <dsn> [LENGTH <len>]. : A TRANSFER utasítás segítségével adatot lehet kiírni egy fájlba. Az <f> mező értékét kiírja a <dsn> nevű fájlba. Az <f> 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 <len>, 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. Oktatóanyag 8
READ DATASET <dsn> INTO <f> [LENGTH <len>]. : Beolvassa a rendszer a <dsn> nevű fájlból az adatot az <f> 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 <f> változóba beolvasott adat hosszát beírja a <len> változóba. 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. 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. 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. 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. 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. 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. Oktatóanyag 15