-
Also nochmals vielen Dank an alle, die mir bei der Erstellung des CL geholfen haben
Ich versuche die Diskussion jetzt mal abzuschliessen.
Das CL funktioniert mittlerweile einwandfrei, habe auch noch ein paar Finessen eingebaut.
Ich hatte beim testen nämlich festgestellt, dass der Job - wenn er läuft - nicht immer nur den Status RUN hat, sondern auch z.B. LCKW, wenn er auf eine Sperre wartet.
Deshalb habe ich noch eingebaut, dass das CL solange wartet, bis der Job einen bestimmten Status angenommen hat, z.B. DLYW.
Hier das fertige CL:
PGM PARM(&JOBNAME &SBSNAME &BEDINGUNG &JOBSTAT &WARTEZEIT)
/************************************************** *************************/
/* */
/* DIE PROZEDUR WARTET SOLANGE, BIS DER ÜBERGEBENE JOB EINEN */
/* BESTIMMTEN STATUS HAT BZW. NICHT MEHR HAT */
/* DANN WIRD DAS CL BEENDET. */
/* */
/* PARAMETER: */
/* - JOBNAME : WELCHER JOB SOLL GEPRÜFT WERDEN */
/* - SBSNAME : IN WELCHEM SUBSYSTEM */
/* - BEDINGUNG: EQ: CL WARTET SOLANGE, WIE JOB DIESEN STATUS HAT */
/* NE: CL WARTET SOLANGE, BIS JOB ANDEREN STATUS HAT */
/* - JOBSTAT : DER JOBSTATUS, DER ABGEPRFT WERDEN SOLL */
/* - WARTEZEIT: SOLANGE WARTEN BIS ERNEUTE PRÜFUNG ERFOLGT */
/************************************************** *************************/
/* VARIABLEN*/
DCL VAR(&DRUCKER) TYPE(*CHAR) LEN(10)
DCL VAR(&STATUS) TYPE(*CHAR) LEN(10)
DCL VAR(&WARTEN) TYPE(*DEC)
DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
DCL VAR(&JOBNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&SBSNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&JOBSTAT) TYPE(*CHAR) LEN(5)
DCL VAR(&BEDINGUNG) TYPE(*CHAR) LEN(2)
DCL VAR(&WARTEZEIT) TYPE(*DEC)
DCLF FILE(QTEMP/WAOUTPUT)
/* AB HIER VERARBEITUNG */
CRTPF FILE(QTEMP/WAOUTPUT) RCDLEN(150)
RTVJOBA PRTDEV(&DRUCKER)
START: CHGJOB PRTDEV(OHNE) /* SOLL NICHT GEDRUCKT WERDEN */
WRKACTJOB OUTPUT(*PRINT) SBS(&SBSNAME)
CHGJOB PRTDEV(&DRUCKER)
CPYSPLF FILE(QPDSPAJB) TOFILE(QTEMP/WAOUTPUT) JOB(*) +
SPLNBR(*LAST)
DLTSPLF FILE(QPDSPAJB) JOB(*) SPLNBR(*LAST)
CHGVAR VAR(&WARTEN) VALUE(0) /* STARTWERT */
/* JETZT LESEN BIS DATEIENDE UND JOB SUCHEN */
READ: RCVF /* SATZ LESEN*/
MONMSG MSGID(CPF0864) EXEC(GOTO WEITER)
/*VERLASSEN, WENN DATEIENDE ERRREICHT*/
CHGVAR VAR(&JOB) VALUE(%SST(&WAOUTPUT 4 10))
CHGVAR VAR(&STATUS) VALUE(%SST(&WAOUTPUT 111 4))
/* HANDELT ES SICH UM DEN GESUCHTEN JOB? */
IF COND(&JOB *EQ &JOBNAME) THEN(DO)
/* JETZT JE NACH BEDINGUNG DEN JOBSTATUS PRÜFEN */
IF COND(&BEDINGUNG *EQ 'EQ' *AND &STATUS *EQ &JOBSTAT) +
THEN(CHGVAR VAR(&WARTEN) VALUE(1))
IF COND(&BEDINGUNG *NE 'EQ' *AND &STATUS *NE &JOBSTAT) +
THEN(CHGVAR VAR(&WARTEN) VALUE(1))
ENDDO
GOTO READ /* NÄCHSTEN SATZ LESEN */
/* WURDE DER JOB MIT ENTSPRECHENDEM STATUS GEFUNDEN ? */
WEITER: IF COND(&WARTEN = 1) THEN(DO)
CLRPFM FILE(QTEMP/WAOUTPUT)
DLYJOB DLY(&WARTEZEIT)
GOTO START /* WIEDER VON VORN BEGINNEN */
ENDDO
ENDE:
DLTF FILE(QTEMP/WAOUTPUT)
ENDPGM
Similar Threads
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By zannaleer in forum NEWSboard Drucker
Antworten: 6
Letzter Beitrag: 13-09-06, 10:35
-
By bo1 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 23-06-06, 15:00
-
By uwer in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 05-09-05, 09:34
-
By fred in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 26-04-05, 15:06
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks