-
Spools durchsuchen
Moin,
kennt einer von Euch auf die Schnelle eine einfache Möglichkeit, sämtliche Spoolfiles in einer bestimmten OUTQ nach einem bestimmten Text zu durchsuchen ? Sonst werdeich wahnsinnig bei knapp 5000 Spools ....
-
Hallo
Du könntest mitetls PDM-Auswahl 25 die Dateien in der Bibliothek QSPL nach dem gewünschten String durchsuchen, denn da sind die Spoolfiles drin.
Ich habe allerdings keine Ahnung, wie diese Files organisiert sind (von wegen Outq, etc.).
Gruss
Rolf
-
Moin!
Mit den normalen Spoolfunktionen gibts meines Wissens keine Möglichkeit. Am einfachsten ists, wenn Du alle Spools via CPYSPLF in Physical Files kopierst und diese dann mit FNDSTRPDM durchsuchst.
Problem dabei ist, dass Du beim CPYSPLF nur einen Spoolfile angeben kannst, wenn Du also mehrere bzw. alle Spools aus einer Outqueue konvertieren willst musst Du erst mal irgendwie die Informationen über die enthaltenen Spoolfiles in Dateiformat bringen damit Du das Zeuch automatisieren kannst.
Ich habs Gott sei Dank einfach, wir haben die aktuellen TAATOOLs, da gibts nen wunderbaren Befehl CVTOUTQ, der generiert ne wunderbare Ausgabedatei mit allem was man braucht :-)
Griesse
Martin
-
Spoolfile Search
Moin Moin,
vielleicht ist hier etwas bauchbares dabei:
MPROVED SPOOL FILE SEARCHES
Over a year ago, I discussed Martin Rowe's free WRKUSROUTQ utility,
which removes WRKSPLF's case-sensitive spool file string search and
also lets you filter spool files across multiple output queues and
users by specific files, users, and user data. The utility and its
source code is still available at http://www.dbg400.net/usroutq.html_.
Herman Van der Staey has now posted another free utility in the
iSeries NEWS forums that also lets you search multiple spool files in
an output queue. Utility FNDSTROUTQ is limited to searching a single
output queue and, as written, will perform case-specific searches. A
simple addition of "CASE (*IGNORE)" to the utility's call to the
FNDSTRPDM program will remove the case-sensitive search. The utility
is available at
http://www.iseriesnetwork.com/Forums...ID=32664&mc=16
Gruss Tararsik
-
Ich könnte dir eine REXX-Procedur schicken, die alle Spoolfiles aus einer OUTQ in eine Datei stellt.
Interesse?
Gruß
Bruno
-
Hallo Forum,
vielen Dank erst mal für die Antworten.
Tarasik:
Danke für die Links - der vom iSeriesNetwork schaut sehr vielversprechend aus, den teste ich gleich mal aus.
Bruno:
Das mit der REXX-Prozedur wäre sehr nett.
Allerdings habe ich mich noch nie in REXX versucht und weiß gar nicht so genau, ob ich damit umgehen kann .
Euer dankbarer
Mirko
-
Hallo Mirko,
REXX ist nicht so sehr schwer. Wenn du mir über den RLP Mail-Button eine Nachricht mit deiner e-mail-adr. zukommen lässt, schicke ich die REXX-Procedur per SAVF zu incl. Anweisung, wie du das Teil wieder auf die AS/400 bekommst und ausführen kannst.
Gruß
Bruno
-
Hallo Bruno Jakob ,
kannst Du nicht die REXX-Prozedur an eine Antwort anhängen, so kann sie sich jeder interessierte ansehen - oder ist sie "geheim"?
Gruß Holger
-
Hallo Leute,
eine funktionierende Lösung ist schon mal da.
Die Lösung FNDSTROUTQ aus dem iSeriesNetwork.com hat gezogen - Danke Tarasik !
Aber fragt bitte nicht nach der Geschwindigkeit - ich hatte es an einer Outq mit "nur" 155 Spools ausprobiert und konnte erstmal eine ziemlich lange Pause einlegen. Da sehe ich mit meinen 5000 Spools doch recht alt aus.
Ich bin aber nach wie vor noch an Bruno's REXX Prozedur interessiert (in der vagen Hoffnung, daß die etwas Schnelleres zusammenbringt).
Danke allen
Mirko
-
Hallo Mirko,
die REXX-Prozedur kopiert ja nur in eine Datei. Das ist ja nur ein Teil der Arbeit. Das Suchen in der Datei wird dann bei so einer Menge natürlich auch nochmal dauern.
An Holger:
die Prozedur ist natürlich nicht geheim. Anbei eine Textdatei mit der Quelle.
Gruß
Bruno
-
Keine Ahnung, wo die Textdatei hingekommen ist, also nochmal als Anhang und zusätzlich hier im Beitrag:
/* ************************************************** *********** */
/* Name der Arbeitsdatei festlegen */
/* ************************************************** *********** */
arbeitsdat = "QTEMP/XXXXX"
/* ************************************************** *********** */
/* outq: 10 Stellen Name der OUTQ, 10 Stellen Bibl. */
/* ************************************************** *********** */
outq = 'PRT01 *LIBL '
/* ************************************************** *********** */
/* Arbeitsdatei erstellen bzw. leermachen */
/* Satzlänge u. Umständen vergrößern */
/* ************************************************** *********** */
"CRTPF FILE("arbeitsdat") RCDLEN(200)"
"CLRPFM "arbeitsdat
/* ************************************************** *************** */
/* USERSPACE erstellen */
/* ************************************************** *************** */
attri = ' '
initz = ' '
spclen = '00000400'x
"CALL PGM(QUSCRTUS) PARM('SPLARC QTEMP '",
"&ATTRI &SPCLEN &INITZ *ALL 'Userspace für SPLARC1')"
select
when rc = 'CPF9870' then nop /* Userspace existiert schon */
when rc <> 0 then do /* Userspace nicht erstellt */
say 'USRSPC nicht erstellt.'
end
otherwise nop
end
/* ************************************************** *************** */
/* USERSPACE füllen */
/* ************************************************** *************** */
user = '*ALL '
form = '*ALL '
data = '*ALL '
"CALL PGM(QUSLSPL) PARM('SPLARC QTEMP '",
"'SPLF0100' &USER &OUTQ &FORM &DATA)"
if rc <> 0 then do /* Userspace nicht gefüllt. */
say 'USRSPC nicht gefüllt.'
end
/* ************************************************** *************** */
/* USERSPACE Initialisierungsinformationen empfangen */
/* ************************************************** *************** */
strpos = '0000007D'x /* Hier steht Anzahl Einträge im Userspace */
leng = '00000010'x /* gespeichert sind. */
"CALL PGM(QUSRTVUS) PARM('SPLARC QTEMP '",
"&STRPOS &LENG &DATEN)"
if rc <> 0 then do /* INIT-Infos nicht empfang. */
say 'USRSPC-Init nicht gelesen.'
end
/* ************************************************** *************** */
/* USERSPACE Einträge empfangen */
/* ************************************************** *************** */
strposd = c2d(substr(daten,1,4)) /* Startpos der Einträge */
strposd = strposd + 1
anzahl = c2d(substr(daten,9,4)) /* Anzahl der Einträge */
laenge = c2d(substr(daten,13,4)) /* Länge eines Eintrages */
leng = d2c(laenge,4)
daten = copies(' ',laenge)
do anzahl
strpos = d2c(strposd,4)
"CALL PGM(QUSRTVUS) PARM('SPLARC QTEMP '",
"&STRPOS &LENG &DATEN)"
if rc <> 0 then do /* Eintrag nicht empfangen */
say 'USRSPC-Eintrag nicht gelesen.'
end
/* ************************************************** *************** */
/* Spool-File Informationen empfangen */
/* ************************************************** *************** */
splinfo = copies(' ',220)
splilaenge = d2c(220,4)
splifmt = 'SPLA0100'
splijobn = '*INT '
jobid = substr(daten,51,16)
splid = substr(daten,67,16)
splispln = '*INT '
splisplnr = d2c(-1,4)
"CALL PGM(QUSRSPLA) PARM(&SPLINFO &SPLILAENGE",
"&SPLIFMT &SPLIJOBN &JOBID &SPLID &SPLISPLN &SPLISPLNR)"
if rc <> 0 then do /* Eintrag nicht empfangen */
say 'SPLF-Info nicht empfangen.'
end
spoolname = substr(splinfo,67,10)
jobname = substr(splinfo,41,10)
benutzer = substr(splinfo,51,10)
jobnummer = substr(splinfo,61,6)
spoolnr = c2d(substr(splinfo,77,4))
status = substr(splinfo,101,10)
/* ************************************************** *************** */
/* Spool-Datei in Datei kopieren */
/* ************************************************** *************** */
"CPYSPLF FILE(&SPOOLNAME) TOFILE("arbeitsdat")",
"JOB(&JOBNUMMER/&BENUTZER/&JOBNAME)",
"SPLNBR(&SPOOLNR) MBROPT(*ADD) CTLCHAR(*FCFC)"
if rc <> 0 then do
say 'SPLF nicht kopiert.'
end
/* ************************************************** *************** */
/* Position für nächsten Eintrag erhöhen */
/* ************************************************** *************** */
strposd = strposd + laenge
end
exit
-
Hallo Bruno,
danke nochmal für die Prozedur. Ich bin damit auch problemlos klargekommen.
Ist wie Du schon sagtest zwar für meine Aufgabe erst die halbe Miete - aber trotzdem einfach Klasse. Und ich denke, ich kann das ohne Schwierigkeiten an meine Problemstellung anpassen.
Super !
Eines hat es außerdem noch gebracht - mein Interesse an REXX ist geweckt worden !
Mirko
Similar Threads
-
By dino in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 02-12-06, 21:56
-
By linguin in forum IBM i Hauptforum
Antworten: 13
Letzter Beitrag: 17-05-06, 13:42
-
By chrhu in forum NEWSboard Drucker
Antworten: 6
Letzter Beitrag: 10-05-06, 13:02
-
By antonkuh in forum NEWSboard Drucker
Antworten: 1
Letzter Beitrag: 24-04-06, 12:00
-
By Kilianski in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 15-06-04, 08:28
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks