View Full Version : WRKJOBSCDE stündlich starten
Hallo
Ich muss jede Stunde ein Programm aufrufen , geht so was mit dem WRKJOBSCDE ohne das ich 24 Einträge hinzufügen.
Wäre nett wenn jemand eine Idee hätte
Hallo,
da gibt es viele Wege, die nach Rom führen:
- einmal am Tag einen Job per Schedule ausführen, der 24 Jobs submitted
- einen Job ausführen, der immer den nächsten submitted
- einen Job, der immer bis zur nächsten Stunde wartet, wenn er fertig ist
...
Die Entscheidung hängt von der genauen Anforderung ab:
- was ist, wenn der Job mal länger als eine Stunde dauert
- was ist, wenn so ein Job hängen bleibt
- was soll sein, wenn einer dieser Jobs abbricht
- was passiert, wenn zwei von den Dingern parallel laufen
um nur ein paar Ideen zu skizzieren.
mfg
Dieter Bender
Hallo
Ich muss jede Stunde ein Programm aufrufen , geht so was mit dem WRKJOBSCDE ohne das ich 24 Einträge hinzufügen.
Wäre nett wenn jemand eine Idee hätte
Erstelle Dir einen Eintrag im JobScdE (in meinem Bsp: TESTPGM)
Rufe Dein Proggie nicht direkt auf, sondern zB in folgenden CL
pgm
dcl &Stunde *dec ( 2 0 )
dcl &St *char 2
dcl &NeueZeit *char 10
rtvsysval qhour &St
chgvar &Stunde (&St)
chgvar &Stunde (&Stunde + 1 )
if (&Stunde *eq 24 ) then(do)
chgvar &Stunde 0
enddo
chgvar &St (&Stunde)
chgvar &NeueZeit ( &St *CAT ':15:00' )
call /* HIER DEIN PROGGIE */
chgjobscde TESTPGM scdtime(&NeueZeit)
endpgm
in diesem Fall würde er immer 15 min nach der vollen Stunde dein programm starten und dan jobplanungseintrag einen Stunde vorsetzen
gruß
ronald
Vielen Dank
Es ist immer wieder toll, wie hier in diesem Forum einem geholfen wird.
holgerscherer
07-12-04, 18:35
Hallo
Ich muss jede Stunde ein Programm aufrufen , geht so was mit dem WRKJOBSCDE ohne das ich 24 Einträge hinzufügen.
Wie wärs mit nem CL:
PGM
DLYJOB RSMTIME('01:00:00')
VONVORNE: SBMJOB CMD(CALL PGM(BLABLA))
DLYJOB DLY(3600)
GOTO CMDLBL(VONVORNE)
ENDPGM
Okok, sehr banal, und nicht gerade Fehlersicher ;-)
-h
Oder evtl direkt im RPG ?
z.Bsp wenn schon ein Planungseintrag vorhanden ist.....:
// Eintrag ändern mit neuem Datum / Zeit
SystemRc = system ('CHGJOBSCDE JOB(EMKPFAUTO) ENTRYNBR(' +
%editc(EntryNumber:'X') + ') +
SCDDATE(''' + %char(NxtSbmDate) + ''') +
SCDDAY(*NONE) +
SCDTIME(''' + %char(ScdTime) + ''')');
Hallo.
Lege einmalig einen Eintrag an: ADDJOBSCDE
mit Häufigkeit *ONCE und Startdatum/Zeit.
Dieser Eintrag startet zu gegebener Zeit Deinen Job
der als letzte Anweisung einen ADDJOBSCDE
mit Aktueller Zeit + 1 Stunde ausführt. s.oben.
Gruss Joe