PDA

View Full Version : Befehl CVTSPLSTMF über RMTCMD aufrufen



KaFi
12-10-09, 12:24
Hallo,

ich habe (mal wieder ;) ) ein kleines Problem:

Ich habe ein CL geschrieben welches einen STRQMQRY-Befehl, einen RUNQRY-Befehl und eine CVTSPLSTMF-Befehl enthält.



PGM PARM(&PARANUM)
DCL VAR(&JOBNAME) TYPE(*CHAR)
DCL VAR(&USERNAME) TYPE(*CHAR)
DCL VAR(&JOBNUMMER) TYPE(*CHAR)
DCL VAR(&KOPFTEXT) TYPE(*CHAR) LEN(28)
DCL VAR(&PARANUM) TYPE(*CHAR) LEN(5)
CLRPFM FILE(TESTDAT/FILE06P)
STRQMQRY QMQRY(TESTDAT/FILE06_SQL) OUTPUT(*OUTFILE) +
QMFORM(*SYSDFT) OUTFILE(TESTDAT/FILE06P) +
ALWQRYDFN(*YES) SETVAR((NUMMER &PARANUM))
RUNQRY QRY(TESTDAT/FILE06QRY) OUTTYPE(*PRINTER) +
PRTDEV(LAGER)
RTVJOBA JOB(&JOBNAME) USER(&USERNAME) NBR(&JOBNUMMER)
CVTSPLSTMF FROMFILE(QPQUPRFIL) TOSTMF(FILE06.PDF) +
TODIR('/home/testdat/') +
JOB(&JOBNUMMER/&USERNAME/&JOBNAME) +
SPLNBR(*LAST) TOFMT(*PDF) +
STMFOPT(*REPLACE) +
PAGESIZE(*A4 *LANDSCAPE)
ENDPGM


Wenn ich dieses CL in einer CA-Sitzung starte funktioniert das wunderbar.

Dieses Programm möchte ich jetzt vom PC aus aufrufen. Dazu habe ich mir folgende Batchdatei "gebastelt":



@echo off
rmtcmd "call testdat/file06cl '12345'" //vm001
pause


Bei diesem Aufruf wird das CL bis zum Befehl CVTSPLSTMF ausgeführt und bleibt bei diesem dann mit einem CPF3303 hängen, weil er das Spoolfile nicht finden kann. Das Jobprotokoll zeigt auch an, dass versucht wird ein Spoolfile zu öffnen, welches wirklich nicht existiert.
Das richtige Spoolfile ist vorhanden aber mit ganz anderen Attributen.

Wieso wird das Spoolfile nicht gefunden obwohl ich mit RTVJOBA die Attribute hole ?

Puuhh :o Ich hoffe, das ich dass jetzt nicht zu kompliziert ausgedrückt habe. :)
Gruß

KaFi

Pikachu
12-10-09, 13:06
Ein OVRPRTF FILE(*PRTF) SPLFOWN(*JOB) vor dem Erstellen der Spooldatei könnte da helfen.

Fuerchau
12-10-09, 13:18
Das Problem ist, dass dein Jobname ggf. QUSER ist, aber der User unter dem du arbeitest ein anderer ist.

KaFi
12-10-09, 13:28
Genau ... der Job läuft unter QUSER. Aber eigentlich sollte das doch egal sein, wenn der Job seine Aufgabe (sprich, das CL) erledigt hat soll er sich eh wieder beenden.
Und wenn ich mir im Job (der unter QUSER läuft) die Jobattribute hole sollten die doch passen - hab ich gedacht ;) .

Den Vorschlag von Pikachu werde ich nachher ausprobieren.

Gruß,

KaFi

Pikachu
12-10-09, 13:36
Der Job in dem das Programm läuft heißt vermutlich QTFTPxxxx und läuft unter Benutzer QTCP. Die Spools werden jedoch unter dem aktuellen Benutzer abgestellt, in einem QPRTJOB (http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/rzalu/rzaluqprtjob.htm).

mk
12-10-09, 15:45
Hallo,


wahrscheinlich hilft folgendes
OVRPRTF FILE(X) HOLD(*YES) OVRSCOPE(*JOB)
Gruß
Michael

Fuerchau
12-10-09, 21:29
Vielleicht hilft ja RTVJOBA CURUSER(&USERNAME) umd den aktuellen user abzufragen und somit den Spool zu identifizieren.

KaFi
13-10-09, 07:31
Hallo,

der Vorschlag von Pikachu hat funktioniert. ;)

Jetzt wird der Spool erkannt und das PDF erzeugt - Der Programmierer und die Benutzer des PDFs sind jetzt glücklich. :)

Vielen Dank für eure Mühe und Antworten :)

Gruß

KaFi