PDA

View Full Version : Jobfahrplan - wrkjobscde



Seiten : [1] 2

Franz.Rung
02-04-13, 08:44
Hallo zusammen,

kann hier egtl. auch die Uhrzeit zu verschiedenen Zeiten also 6 Uhr, 8 Uhr etc. angeben werden oder muss dann jeweils ein separater Eintrag gemacht werden ?

Danke
Franz

Fuerchau
02-04-13, 08:48
Tut mir ja leid, aber die Uhrzeit ist leider nicht flexibel. Hier ist jeweils ein eigener Eintrag erforderlich.
Alternaiv kannst du ja ein CLP starten, dass selber immer 2 Stunden wartet und dann die gewünschte Aktion ausführt.
Über eine eigene JOBQ störst du auch QBATCH dann nicht.

Franz.Rung
02-04-13, 08:54
Vielen Dank für die rasche Antwort.

Dazu reichen woll mein Kenntnisse nicht aus wie der Befehl ist hier ein CL z.B. alle Stunde zu starten.

Rest wäre mir klar.

B.Hauser
02-04-13, 09:52
Vielen Dank für die rasche Antwort.

Dazu reichen woll mein Kenntnisse nicht aus wie der Befehl ist hier ein CL z.B. alle Stunde zu starten.

Rest wäre mir klar.

Warum machst Du nicht ein Endlos-Programm, das in einer Schleife das eigentliche CL-Programm aufruft und dann mit DLYJOB eine Stunde wartet, bevor der nächste Aufruf erfolgt?

Birgitta

Franz.Rung
02-04-13, 10:17
Hallo,

leider bin ich kein Programmierer daher bekomme ich das wohl erstmals selbst nicht hin.

oder kannst du mir hier helfen ?

Danke
Franz

Franz.Rung
02-04-13, 10:34
Hallo,

das konnte ich an anderer Stelle finden.

Wäre dies korrekt ?

PGM
START:
CALL PGM(R4CV00ST) PARM('1' '000' '')
DLYJOB DLY(600)
GOTO CMDLBL(START)
ENDE: ENDPGM


jetzt rufe ich einfach den Job auf oder muss ich das zusätzlich über den Jobfahrplan machen - am Wochenende soll der Job nämlich nicht laufen.

Danke

Franz

Fuerchau
02-04-13, 10:40
Eigentlich ja, aber du solltest ein definiertes Jobende einbauen.
Entweder die Anzahl Wiederholungen beschränken oder den Endestatus per "RTVJOBA ENDSTS(&STS)" abfragen.
Sonst läuft dein Job ewig und wird nur bei ENDJOB/ENDSBS abgewürgt, was auch innerhalb des aufgerufenen Programmes passieren kann und dort ggf. zu inkonsistenten Zuständen deiner Datenbank führt.

Franz.Rung
02-04-13, 10:48
Vielen Dank für die Hilfe.

Nur wie setze ich das konket um bzw. wie genau ist der Syythax ?

Die Anforderung wäre:

Montag -Freitag
Zwischen 6 Uhr und 15 Uhr alle Stunde

Gruss
Franz

andreaspr@aon.at
02-04-13, 10:49
Schaut korrekt aus.
Das Programm kannst du entweder über SBMJOB oder mit dem Job-Planungseintrag übergeben lassen.

Du könntest im JOBSCDE das Programm täglich aufrufen und das Wochendend vom Aufruf ausschließen.

Allerdings solltest du in der Schleife deines Programms ein Ende einbauen, sonst hast du den Job am nächsten Tag mehrfach vorhanden.

Mit diesem Code-Teil verabschiedet sich das Programm ab 23 Uhr.

DCL VAR(&ZEITC) TYPE(*CHAR) LEN(6)
DCL VAR(&ZEITI) TYPE(*int)

RTVSYSVAL SYSVAL(QTIME) RTNVAR(&ZEITC)
CHGVAR VAR(&ZEITI) VALUE(&ZEITC)

if (&ZEITI > 230000) Then(goto ENDE)


lg Andreas

BenderD
02-04-13, 10:58
... die erste Idee war schon die beste, für jede Zeit einen Eintrag und fertig ist.
Wenn denn CL, dann einmal morgens um 5:00 Uhr in die Schedule den Aufruf folgenden CLs stellen:

PGM
SBMJOB CMD(CALL PGM(EBBES)) JOB(EBBES) SCDTIME('06:00:00')
...
SBMJOB CMD(CALL PGM(EBBES)) JOB(EBBES) SCDTIME('15:00:00')

alles andere sind doch FerzMitKrücke, die in irgendeiner Konstellation schief gehen können...

D*B