PDA

View Full Version : DSPSAVF



dinie
28-05-08, 10:34
Hallo, ich habe folgendes Problem. In eine Bibliothek hebe ich viele Savfiles auf.
Der Inhalt der einzelene files kann ich mit DSPSAVF ansehen.
Nun möchtte ich aber eine Suche über alle SAVFiles starten nach bestimmte Objekte.
Ich kann aber in DSPSAVF keine generische Dateiname eingeben. Kennt jemanden einen methode mehrere SAVFiles zu durchsuchen?

Gruß, Dinie

Pikachu
28-05-08, 11:44
Wenn du mit dem PDM arbeitest, kannst du dir eine benutzerdefinierte Auswahlmöglichkeit anlegen, diese Auswahlmöglichkeit vor die erste Sicherungsdatei schreiben und mit "F13=Wiederholen". So kannst du nacheinander in die einzelnen Sicherungsdateien sehen.

dinie
28-05-08, 11:57
Danke für die Antwort pikachu, dieser Möglichkeit kenne ich ja.
Ich suche aber eine Möglichkeit die Inhalte aller savfiles nach einen bestimmten Suchbegriff zu durchsuchen. Es sind ganz viele files.
Hat noch jemanden eine Idee?
Dinie

Pikachu
28-05-08, 12:26
Probier's mal mit API QSRLSAVF (http://publib.boulder.ibm.com/iseries/v5r1/ic2929/info/apis/qsrlsavf.htm).

dinie
29-05-08, 07:14
Ich weis leider nicht wie man API QSRLSAVF anwendet.
Habe aber gesehen das der QSRLSAVF auch als parameter der "Qualified save file name" benötigt. Das würde bedeuten das ich nur der Inhalt eines Savf anzeigen lassen kann und nicht alle Savfiles in einer Bibliothek. Oder..?
Dinie

Fuerchau
29-05-08, 10:05
Du kannst dir per DSPOBJD eine Liste der SAVF's in eine Datei ausgeben und diese dann mittels API dann verarbeiten.
Den qualifizierten Namen hast du dann ja in der Datei.

Pikachu
29-05-08, 13:47
Oder auch mit: DSPFD FILE(Bibliothek/*ALL) TYPE(*ATR) OUTPUT(*OUTFILE) FILEATR(*SAVF) OUTFILE(Ausgabedatei)

Die einzelnen Sicherungsdateien in einer Bibliothek kannst du zum Beispiel so bearbeiten (Angaben ohne Gewähr). Anstelle des DSPSAVFs müßtest du dann die API mit den entsprechenden Werten aufrufen.

PGM
DCLF FILE(QAFDSAV)
MONMSG MSGID(CPF0000)
DLTF FILE(QTEMP/SAVFLIST)
OVRDBF FILE(QAFDSAV) TOFILE(QTEMP/SAVFLIST)
DSPFD FILE(QGPL/*ALL) TYPE(*ATR) OUTPUT(*OUTFILE) +
FILEATR(*SAVF) OUTFILE(QTEMP/SAVFLIST)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDPGM))
LOOP: RCVF
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDPGM))

DSPSAVF FILE(&SALIB/&SAFILE)
GOTO CMDLBL(LOOP)

ENDPGM: DLTF FILE(QTEMP/SAVFLIST)
ENDPGM

Neuhauser
30-05-08, 03:15
Hier ein Alternativvorschlag: Der kostenlose Befehl EXPSYSINF aus rnTools. Folgende Anweisung erstellt für jede Sicherungsdatei aus der Bibliothek SAVFILES eine Textdatei mit dem Inhalt der Spooldatei DSPSAVF OUTPUT(*PRINT) in einem separaten Verzeichnis:

EXPSYSINF FILE(*NO *NO *NO *NO *NO *YES) DFT(*NO *ALLUSR SAVFILES)

Die exportierten Dateien können mit dem Windows-Explorer durchsucht werden (Dateiinhalt durchsuchen wählen).

Man könnte die Textdateien mit dem DOS-Befehl copy *.txt DSPSAVF_ALLE.txt in eine große Datei zusammenkopieren und diese mit jedem handelsüblichen Editor durchsuchen lassen. Oder die große Textdatei wieder in eine PF kopieren und mit SQL oder Query zerhackstückeln und auswerten.

Kostenloser Download mit aktuellem Handbuch unter: Download (http://www.neuhauser.de/download/index.html)

dinie
30-05-08, 14:02
Vielen Dank an allen.
Ich bin jetzt wie folgt vorgegangen:
DSPOBJD in *outfile
*outfile in CL-Programm ausgelesen und pro Objektname eine DSPSAVF *print.
Spoolfiles in .XLS konvertiert und ins IFS gestellt.
IFS .xls-Dateien wieder in eine as400-Datei eingelesen.
Nun habe ich eine datei auf der I5 mit der Inhalt alle Savfiles und kann so meine Objekte suchen.
Gruß Dinie