Anmelden

View Full Version : Aendern von USRPRF & JOBD bei aktivem Batch Job



RaMai
08-06-09, 13:55
Hallo,

gibt es eine Moeglichkeit bei einem aktiven Batch Job USRPRF & JOBD zu aendern?
Ein Kollege muss ein Programm mit einem anderen USRPRF und anderer JOBD in unsere Nachtverarbeitung einbauen.
Mein Vorschlag waere den Job zu submitten mit seinen Anforderungen und das laufende Programm mit einem Delay in Verbindung mit einer DTAARA anzuhalten bis sein job beendet ist.
Es ist naemlich noetig seinen Job zu einen bestimmten Zeitpunkt aufzurufen.
Gibt es eine andere Loesung? Kann man o.g. Werte aendern waehrend der Job aktiv ist und das Programm einfach aufrufen?

Danke im voraus und Gruss
Ralf

Fuerchau
08-06-09, 14:01
USRPRF und JOBD zu ändern geht nicht.
Um unter einem anderen User zu arbeiten gibt's 2 Varianten:

a) Propgramm unter dem User erstellen und per Berechtigung *OWNER laufen lassen
b) QSYSGETPH/QSYSETPH-API's verwenden

Die JOBD dient nur für die Initiierung des Jobs.
Alles kann zur Laufzeit per CHGJOB geändert werden.

Ansonsten ist ein ADDJOBSCDE mit der richtigen Einstellung eher sinnvoll.

Allerdings sollte es keine Jobabhängigkeiten dieser Art geben, da ist ein CALL schon besser.

RaMai
08-06-09, 14:42
Danke fuer die Antwort, sowas hab ich schon befuerchtet.

Gruss Ralf

Pikachu
08-06-09, 15:43
So könnte es vielleicht gehen:
PGM
DCL VAR(&MSGQ) TYPE(*CHAR) LEN(10) VALUE(MSGQ)
DCL VAR(&MSGQLIB) TYPE(*CHAR) LEN(10) VALUE(QGPL)
MONMSG MSGID(CPF0000)

CRTMSGQ MSGQ(&MSGQLIB/&MSGQ)
CLRMSGQ MSGQ(&MSGQLIB/&MSGQ)

SBMJOB CMD(CALL PGM(Programm)) JOB(Jobname) +
JOBD(Jobbeschreibung) JOBQ(QSYSNOMAX) +
USER(Benutzer) MSGQ(&MSGQLIB/&MSGQ)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDPGM))
RCVMSG MSGQ(&MSGQLIB/&MSGQ) WAIT(*MAX) RMV(*YES)

ENDPGM: ENDPGM

RaMai
09-06-09, 15:46
Thx Pikachu, it's worth a try ;)