PDA

View Full Version : Spoolfiles Auf PC stellen



System_Error_1
11-12-06, 12:59
Hallo, ich hab da ein kleines Problem, ich muss jeden Tag einige Spoolfiles Händisch von der AS400 mit dem iSeries Navigator herunterkopieren, und dann auf ein Netzlaufwerk stellen. Da habe ich mir gedacht, das muss doch auch irgendie automatisch gehen, aber ich habe nichts gefunden.
lg Flo

Fuerchau
11-12-06, 13:12
CPYSPLF in eine PF, CPYTOSTMF ins IFS (z.B. /Home/Spools), über NetServer eine Freigabe auf /Home/Spools erteilen.

System_Error_1
11-12-06, 14:11
Danke, aber ich schaffs nicht, bin noch ziemlicher anfänger, *gg*


Bei Spool - Datei muss ich den Namen des Druckfiles angeben?

Datenbankdatei, Benutzer und Bibliothek sind klar.

jobname???, nummer???

takeoff/400
11-12-06, 17:16
in der anzeige des spoolfiiles (wrksplf), mit F11 (sicht2) kannst Du nach recht blättern, da siehst Du alle erforderlichen infos, wie name/nummer/ etc...

DVE
11-12-06, 19:59
Einige Fragen zu deinem Problem:
Sind die Spoolfiles alle in der selben Outq ?
Haben die Spoolfiles alle den selben Namen ?
Wurden die Spoolfiles alle vom selben Job erstellt ?

Gruß
DVE

System_Error_1
12-12-06, 05:25
Die Spoolfiles werden vom selben Job erstellt, Sind in der Selben Outq und haben den selben Namen!

Fuerchau
12-12-06, 08:33
Am günstigsten ist es, direkt nach dem erstellen der Spools im selben Programm/CLP die entsprechenden Befehle einzubauen.
Dann kann man als Job "*" (den eigenen) und als SPLNBR(*LAST) verwenden.

Nachträglich geht das nur über API's um eine Liste der Spools zu erstellen und dann die Spools einzeln abzuarbeiten.

Die 2. Möglichkeit ist eine DTAQ an die OUTQ zu hängen und einen Überwachungsjob zu starten (was aber komplizierter ist).

kochuwe01
22-09-09, 08:39
Wir haben die Spools des Users per DOS-Batch auf den PC als textfile geholt:

username.bat:
o:
cd O:\username\spool
perl username.pl
pause
--------------------------------------------------
Perl runterladen und die Perl.Exe & DLL zur Verfügung stellen.
perlscript username.pl :

#perl
###################################
# Put in the username here:
$login="Loginname für AS400" ;
$passwort="......" ;
$query_user="username" ;

###################################



$system="as400-name" ;
$WRKSPLF = "temp/$query_user\.spl" ;
$FTP = "temp/$query_user\.ftp" ;
$drucker="PC" ;
$EOF = "E N D E" ;
$syscmd =`rexec $system -l $query_user "wrksplf select($query_user)" >$WRKSPLF ` ;



open(DATEI, "<$WRKSPLF") ;



$z = <DATEI> ;$z = <DATEI> ;$z = <DATEI> ;$z = <DATEI> ;

#diese Zeile hier kann nach dem ersten Run wieder raus:
#------------------------------------------------------------------------------
$syscmd = `rexec $system -l $query_user 'CRTPF FILE($query_user/spool) RCDLEN(150) SIZE(*NOMAX)' ` ;
#------------------------------------------------------------------------------
# aufpassen, falls die substr angepasst werden müssen
while ($z = <DATEI>) {
if ( ! grep /$EOF/, $z ) {
$file = substr($z ,1, 10) ;
$spoolNo = substr($z ,99, 7) ;
$job = substr($z ,107, 10) ;
$jobNo = substr($z ,118, 6) ;
print "\n\n rtv spool:\n z:$z: \n $spool: \n file:$file: \n user:$user: \n spoolNo:$spoolNo: \n job:$job: \n jobNo:$jobNo: \n" ;



$file =~ s/\s//g ;
$spoolNo =~ s/\s//g ;
open(FTPCMD, ">$FTP") ;

print FTPCMD "prompt\nopen $system\n$login \n$passwort\n" ;
print FTPCMD "quote rcmd CPYSPLF FILE($file) TOFILE($query_user/spool) JOB($jobNo/$query_user/$job) SPLNBR($spoolNo)\ncd $query_user\nlcd $query_user\nget spool\nquote rcmd clrpfm $query_user/spool\nquit\n" ;
close FTPCMD ;
$syscmd = `ftp -s:$FTP ` ;

$newname = "$system\_$file\_$jobNo\_$spoolNo.txt" ;

print "$newname\n" ;
$syscmd = `copy $query_user\\spool $query_user\\$newname ` ;


}
}

close DATEI ;