[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Oct 2001
    Beiträge
    84

    Unhappy 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 ....

  2. #2
    Registriert seit
    Sep 2001
    Beiträge
    156
    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

  3. #3
    Registriert seit
    Nov 2002
    Beiträge
    173
    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

  4. #4
    Registriert seit
    May 2002
    Beiträge
    2.642

    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

  5. #5
    Registriert seit
    Dec 2000
    Beiträge
    450
    Ich könnte dir eine REXX-Procedur schicken, die alle Spoolfiles aus einer OUTQ in eine Datei stellt.

    Interesse?

    Gruß
    Bruno

  6. #6
    Registriert seit
    Oct 2001
    Beiträge
    84
    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

  7. #7
    Registriert seit
    Dec 2000
    Beiträge
    450
    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

  8. #8
    Registriert seit
    Jul 2002
    Beiträge
    151
    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

  9. #9
    Registriert seit
    Oct 2001
    Beiträge
    84
    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

  10. #10
    Registriert seit
    Dec 2000
    Beiträge
    450
    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

  11. #11
    Registriert seit
    Dec 2000
    Beiträge
    450
    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

  12. #12
    Registriert seit
    Oct 2001
    Beiträge
    84
    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

  1. AS/400-Dateien auf Konstante durchsuchen
    By dino in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 02-12-06, 21:56
  2. Kopien von neuen Spools einer OUTQ
    By linguin in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 17-05-06, 13:42
  3. Hosttransform PCL5 mit AFPDS Spools langsam
    By chrhu in forum NEWSboard Drucker
    Antworten: 6
    Letzter Beitrag: 10-05-06, 13:02
  4. Spools drucken mittels Cisco - VPN - Client
    By antonkuh in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 24-04-06, 12:00
  5. Aus Spools *PDF generieren und per e-mail versenden!
    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
  •