Schedulare un job l'ultimo giorno del mese

Rivista il

Accedi per salvare

La schedulazione di sistema ha un valore apposito: non serve calcolare la data.

ADDJOBSCDE JOB(CHIUSURA)                    +
           CMD(CALL PGM(PRODLIB/CHIUSURA))  +
           FRQ(*MONTHLY)                    +
           SCDDATE(*MONTHEND)               +
           SCDTIME(230000)                  +
           JOBQ(QBATCH)

Per l'ultimo giorno lavorativo, invece, la schedulazione va lasciata giornaliera e il controllo va nel programma, perché "lavorativo" dipende dal calendario aziendale.

Esempio: l'ultimo giorno lavorativo

Questa è la richiesta che arriva subito dopo, e *MONTHEND non la copre: il 31 può cadere di domenica, e la chiusura deve girare venerdì.

Non c'è un valore di sistema per questo, perché "lavorativo" dipende dal calendario aziendale: le festività locali, le chiusure, i ponti. La schedulazione resta giornaliera e la decisione va nel programma, contro una tabella che l'azienda ha quasi sempre già:

SELECT 1
  FROM PRODLIB/CALENDAR
 WHERE GIORNO = CURRENT DATE
   AND LAVORATIVO = 'S'
   AND NOT EXISTS (
       SELECT 1 FROM PRODLIB/CALENDAR
        WHERE GIORNO > CURRENT DATE
          AND LAVORATIVO = 'S'
          AND YEAR(GIORNO)  = YEAR(CURRENT DATE)
          AND MONTH(GIORNO) = MONTH(CURRENT DATE))

Si legge come la definizione stessa: oggi è lavorativo, e dopo oggi non ce n'è un altro in questo mese. Se la query restituisce una riga il programma prosegue, altrimenti esce.

La tabella dei giorni è la parte che va costruita una volta e mantenuta. Chi non ce l'ha finisce a scrivere in un programma le festività di quest'anno, e a rifarlo l'anno prossimo.

Attenzione

con FRQ(*MONTHLY) e una data fissa, il 31 per esempio, IBM dice che il job non parte nei mesi che quel giorno non ce l'hanno: febbraio, aprile, giugno, settembre, novembre. Per l'ultimo giorno di ogni mese la pagina del comando indica proprio SCDDATE(*MONTHEND).


Rilasci. SCDDATE(*MONTHEND) è nella documentazione IBM di ADDJOBSCDE per 7.5.

Fonti

← Torna al blog

Commenti

Nessun commento ancora. Sii il primo a commentare!

Devi avere un account per commentare. Accedi · Registrati