Fil d’Ariane du forum – Vous êtes ici :ForumForums techniques: AS/400Planifier un job chaque premier j …
Vous devez vous identifier pour créer des messages et des sujets.

Planifier un job chaque premier jour ouvré du mois

Bonjour à toutes et tous,

Je souhaite planifier un traitement qui devra s'exécuter le premier jour ouvré de chaque mois. J'ai voulu le faire avec le wrkjobscde mais ce n'est pas bon, car j'ai dans le paramètre scddate que monthstr ou *monthend avec d'autres occurrences.

Par avance merci pour votre aide.

Bonjour

Il me semble que frq(*monthly) scddate (*monthstr).

A vérifier.

 

 

 

Bonjour,

Faire une dtaara (ou fichier) pour mémoriser que l'on a déjà lancé le job en sauvegardant l'année et le mois.

Récupérer le jour de la semaine et le jour du mois, si < 3 et que le jour n'est pas un samedi ou un dimanche et que la dtaara ne contient pas le mois et l'année en cours, traitement et mise à jour de la dtaara, sinon on sort.

Le job peut tourner tous les jours.

Jean

Merci pour vos réponses @christophe oui j'ai fait le frq(*monthly) scddate (*monthstr) mais en mettant ces paramètres, le travail tourne le premier jouir du mois, sans tenir compte des jours ouvrés, que ça soit le 1 janv ou le 1 nov et aussi que le premier tombe un samedi ou un dimanche.

Merci @jean, mais pourriez-vous développer svp, je ne sais pas bien la récupération jour semaine et jour mois, ne dois-je pas tester dans un calendrier si jour férié ou non, après avoir extrait la date système de la machine ?

Cdt,

Xavier

 

 

re,

Un truc du genre, les jours fériés étant en dur dans le programme (sinon faire plus propre avec un fichier des jours fériés) :

RTVSYSVAL SYSVAL(QDAYOFWEEK) RTNVAR(&DAYOFWEEK)

IF &DAYOFWEEK *EQ '*SAT' or &DAYOFWEEK = '*SUN' then(goto fin)

RTVSYSVAL SYSVAL(QDAY) RTNVAR(&DAY)

If &DAY > 7 then goto fin

RTVSYSVAL SYSVAL(QMONTH) RTNVAR(&MONTH)

RTVSYSVAL SYSVAL(QYEAR) RTNVAR(&YEAR)

CHGVAR VAR(&moisannee) value(&year *cat &month)

RTVDTAARA DTAARA(MADTAARA *ALL) RTNVAR(&MADTAARA)

if &madtaara = &moisannee then(goto fin)

CHGVAR VAR(&madate) value(&year *cat &month *cat &day)

if &madate *eq 20200101 *or &madate = 20191101 *or &madate = 20191111 ........ then(goto fin)

/* le traitement ici */

CHGDTAARA DTAARA(MADTAARA *ALL) VALUE(&MOISANNEE)

FIN:

 

Jean

Merci beaucoup JMA, cela me donne un bon truc sur lequel m'appuyer. Super.

Xavier