View Full Version : DSPSAVF
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
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.
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
Probier's mal mit API QSRLSAVF (http://publib.boulder.ibm.com/iseries/v5r1/ic2929/info/apis/qsrlsavf.htm).
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
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.
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
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)
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