Verzeichnis auslesen in Job

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Verzeichnis auslesen in Job

Beitrag von schaechtele (ForumUser / 7 / 0 / 0 ) »
Hallo zusammen,

ich bin gerade daran ein Programm zu schreiben, welches ein Verzeichnis auf einem normalen Windows-Fileserver ausliest und mir die Dateinamen zurückliefert.

Ich habe dazu die Klasse CL_GUI_FRONTEND_SERVICES und davon die Methode DIRECTORY_LIST_FILES verwendet. Beim normalen Aufruf des Programmes funktioniert diese Methode auch, wenn ich jedoch das Programm als Job im Hintergrund starte führt das zu einem Kurzdump.

Ist ja auch nachvollziehbar, da der Klassenname ja schon GUI und FRONTEND beinhaltet. Ich habe schon nach anderen Klassen und Funktionsbausteinen gesucht, aber bisher nichts gefunden.

Kann mir vielleicht jemand weiterhelfen?

Vielen Dank und Gruß
Sebastian

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Verzeichnis auslesen in Job

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo,

guck dir mal Transaktion AL11 und das Programm RSWATCH0 an. Das sollte von der Technik her klappen. Die AL11 zeigt allerdings nur SAP-Directories an, die als solche gepflegt sind.
Berechtigungsprüfung beachten (Jobuser)!

Gruß

ST22

Beitrag von schaechtele (ForumUser / 7 / 0 / 0 ) »
Vielen Dank für die Antwort.

Du meinst also, dass ich das Verzeichnis auf dem Fileserver als SAP-Verzeichnis einrichten soll und dann mit einem anderen Funktionsbaustein darauf zugreifen kann? Oder verstehe ich das falsch?

Habe gerade gesehen, dass bereits ein anderes Verzeichnis auf dem Fileserver als SAP-Verzeichnis eingerichtet ist.


Gruß
Sebastian

Verzeichnis auslesen in Job

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hi,

damit wollte ich zunächst nur andeuten, dass die AL11 nur spezielle Verzeichnisse ermittelt, nicht alle.
Wenn du für deine Anwendung abweichende Verzeichnisse lesen musst, musst du dir aus dem Programm RSWATCH0 die entsprechenden Codeschnipsel zusammenbauen.
hier so ein paar wichtige Stellen:

At line-selection.
.
.
.
PERFORM get_directory.

Die Verzeichnisse werden mit C-Funktionen ermittelt, die die entsprechenden Daten zurückliefern.

Gruß

ST22

Beitrag von schaechtele (ForumUser / 7 / 0 / 0 ) »
Ok, dass mit den C-Funktionen habe ich jetzt soweit verstanden.

Wenn ich jetzt das gewünschte Verzeichnis an die Funktion C_DIR_READ_START übergebe, dann erhalte ich im Feld ERRMSG die Meldung opendir. Das heißt wahrscheinlich, dass das Verzeichnis nicht geöffnet werden konnte.

Wenn ich ein Verzeichnis aus der AL11 nehme, dann bekomme ich keine Fehlermeldung und das Auslesen der Dateinamen funktioniert. Dann liegt es ja wahrscheinlich an einer Berechtigung??!?

Gruß
Sebastian

Verzeichnis auslesen in Job

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo nochmal,

beliebte Falle ist Groß / Kleinschreibung, je nachdem auf welchem Betriebssystem du arbeitest.

Wenn's dass nicht sein sollte, dann wäre höchstens noch der Versuch, dass von dir benötigte Verzeichnis als SAP-Verzeichnis zu hinterlegen (ich glaube, das geht über Systemparameter), um dann zu gucken, ob es dann klappt.

Gruß

ST22

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Hallo Sebastian und mein alter Freund ST22,
zum Thema: Auslesen der Dateiverzeichnisse des App-Servers möchte ich den Baustein EPS_GET_DIRECTORY_LISTING empfehlen (und auf C-Funktionen zu verzichten).

Groß/Kleinschreibung und Pfadtrenner beachten !
Beim wählen einer Dateimaske bitte nicht vergessen: es ist nicht gleich MSDOS
Definieren eines Verzeichnisses im Profil ist auch nicht nötig !
Beispiel:

Code: Alles auswählen.

* Pfad zum Verzeichnis
  DATA lv_path TYPE epsf-epsdirnam.

  Data FILE_MASK type EPSF-EPSFILNAM. " z.B. '???????.EXE' oder '*'


* Lade alle Datei Namen in lt_dir_list
  CALL FUNCTION 'EPS_GET_DIRECTORY_LISTING'
    EXPORTING
     dir_name                     = lv_path
     file_mask                    = file_mask
*  IMPORTING
*    DIR_NAME                     =
*    FILE_COUNTER                 =
*    ERROR_COUNTER                =
   TABLES
     dir_list                    = lt_dir_list
   EXCEPTIONS
     invalid_eps_subdir           = 1
     sapgparam_failed             = 2
     build_directory_failed       = 3
     no_authorization             = 4
     read_directory_failed        = 5
     too_many_read_errors         = 6
     empty_directory_list         = 7
     OTHERS                       = 8.
Probier am besten mal mit SE37 den Baustein aus.
Man kann mit bekannten Verzeichnissen arbeiten und mit der Transaktion AL11 kontrollieren.
In unserem System kann man damit sogar das ROOT - Verzeichnis einlesen!
Gib doch mal '/' als lv_path vor und '*' als file_mask.

gruß Tron
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Beitrag von schaechtele (ForumUser / 7 / 0 / 0 ) »
Tron hat geschrieben:Hallo Sebastian und mein alter Freund ST22,
zum Thema: Auslesen der Dateiverzeichnisse des App-Servers möchte ich den Baustein EPS_GET_DIRECTORY_LISTING empfehlen (und auf C-Funktionen zu verzichten).
Hallo,

super! Vielen Dank!!!

Ich verwende jetzt den EPS_GET_DIRECTORY_LISTING und es funktioniert einwandfrei!!!


Gruß
Sebastian

Beitrag von mschug (ForumUser / 4 / 0 / 0 ) »
Wie komme ich denn auf Pfade die ich mir in der AL11 ansehen kann?

Gruß Marcus

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Alternativ zu EPS_GET_DIRECTORY_LISTING könnte man auch
SUBST_GET_FILE_LIST verwenden.

Allerdings haben beide Bausteine den in der heutigen Zeit doch akuten Nachteil, dass der Pfadname als auch die zurückgegebenen Filename auf relativ wenige Zeichen beschränkt ist. ( 60 Zeichen für einen Pfad oder 40 Zeichen für einen Filenamen sind heutzutage schnell erreicht ).

Somit kann ich nur dazu raten den Baustein zu kopieren und die Übergabeparameter Pfad und Dateiname auf sinnvolle (größere) Datenelemente umzustellen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin,
Wie komme ich denn auf Pfade die ich mir in der AL11 ansehen kann?

Gruß Marcus
mit dem Baustein RSPO_R_SAPGPARAM den Pfad ermitteln (oder auch andere Werte des Systemprofils)
z.B.: Name = 'DIR_TRANS'. ermittelt den Pfad zum Transportverzeichnis.

gruß Tron
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Seite 1 von 1

Vergleichbare Themen

5
Antw.
9986
Views
Sap_directory Verzeichnis auslesen
von MarkusW » 26.09.2007 19:14 • Verfasst in ABAP® für Anfänger
1
Antw.
2578
Views
Verzeichnis auslesen über Hintergrundjob?
von Precog » 18.06.2008 19:36 • Verfasst in ABAP® Core
7
Antw.
6699
Views
Report zum Auslesen von PDF aus SAP Server Verzeichnis AL11
von Luigi91 » 18.02.2014 16:47 • Verfasst in ABAP® für Anfänger
5
Antw.
4455
Views
Verzeichnis durchsuchen
von Daniel01 » 17.01.2005 08:11 • Verfasst in ABAP® Core
1
Antw.
1997
Views
Mit F4 ein Verzeichnis suchen
von Orlando80 » 03.03.2006 15:27 • Verfasst in ABAP® Core

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 14 Stunden von Bright4.5 1 / 281
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1921
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8523