Serve avvisare qualcuno quando un batch finisce. La via più breve è SNDSMTPEMM, che è un
comando CL normale e non richiede nulla di installato.
DCL VAR(&ORA) TYPE(*CHAR) LEN(6)
RTVSYSVAL SYSVAL(QTIME) VAR(&ORA)
SNDSMTPEMM RCP((operatori@azienda.it)) +
SUBJECT('Chiusura mensile conclusa') +
NOTE('Elaborazione terminata alle ' *CAT &ORA)
L'ora si prende con RTVSYSVAL da QTIME, che è un carattere di sei posizioni nella forma
HHMMSS.
Per allegare un file dell'IFS si aggiunge ATTACH:
SNDSMTPEMM RCP((operatori@azienda.it)) +
SUBJECT('Report di chiusura') +
NOTE('In allegato il riepilogo.') +
ATTACH(('/home/batch/chiusura.csv'))
Esempio: il batch che racconta com'è andata
Una mail che parte solo quando tutto è filato liscio non serve a niente: nessuno si accorge della mail che non è arrivata. Quella utile è la mail che distingue i due esiti.
PGM
DCL VAR(&ORA) TYPE(*CHAR) LEN(6)
CALL PGM(PRODLIB/CHIUSURA)
MONMSG MSGID(CPF0000) EXEC(DO)
RTVSYSVAL SYSVAL(QTIME) VAR(&ORA)
SNDSMTPEMM RCP((operatori@azienda.it)) +
SUBJECT('CHIUSURA INTERROTTA') +
NOTE('Interrotta alle ' *CAT &ORA *CAT +
'. Job log da controllare.')
RETURN
ENDDO
RTVSYSVAL SYSVAL(QTIME) VAR(&ORA)
SNDSMTPEMM RCP((operatori@azienda.it)) +
SUBJECT('Chiusura conclusa') +
NOTE('Terminata alle ' *CAT &ORA)
ENDPGM
Il RETURN dentro il DO è quello che impedisce alla mail di successo di partire subito
dopo quella di errore. Senza, arrivano tutte e due, e la seconda cancella la prima nella testa
di chi legge.
Vale la pena mettere l'esito nell'oggetto e non nel corpo: chi guarda la posta dal telefono vede solo quello.
Attenzione
il comando fallisce senza spiegare quale prerequisito manchi, e i
prerequisiti sono due. Il server SMTP dev'essere avviato: dopo STRTCPSVR SERVER(*SMTP)
si controlla che i lavori siano davvero partiti con WRKACTJOB SBS(QSYSWRK), cercando
QTSMTPCLTD e QTSMTPSRVD. Il profilo dev'essere censito: serve una voce nella
directory di sistema (WRKDIRE) e un nome SMTP associato (WRKNAMSMTP).
Suggerimento
quando la mail parte ma non arriva, il prerequisito non c'entra. Il punto
da guardare è il mailhub di inoltro, che si legge con CHGSMTPA: senza un inoltro valido il
sistema accetta il messaggio e non lo consegna a nessuno.
Nota
il testo di NOTE è limitato. Per messaggi lunghi conviene scrivere il contenuto
in un file sull'IFS e allegarlo, invece di comporre il corpo nel programma.
Rilasci. SNDSMTPEMM è presente su tutti i rilasci ancora supportati. Il vincolo vero non
è la versione ma la configurazione: server SMTP avviato e profilo presente nella directory di
sistema. Si verificano con WRKDIRE, WRKNAMSMTP e WRKACTJOB SBS(QSYSWRK).
Commenti
Nessun commento ancora. Sii il primo a commentare!
Devi avere un account per commentare. Accedi · Registrati