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 kell használni.)
Műveletek:
- 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.
A következőkben <
dsn> a fájl elérési útvonalát adja meg (például <
dsn> = ‘/tmp/test.txt’ vagy <
dsn> = ‘c:\temp\test.txt’).
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|
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 <
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.
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.
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.
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.
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.
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.
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.