1er avril 2012

Initialisation de la date du jour

La date du jour est un argument couramment utilisé dans les batchs, il est possible de calculer la date script shell ou en batch windows mais nous allons donner un méthode qui permet de la définir en amont de l’exécution pour être reprise comme un simple paramètre.


Le principe est de définir un paramètre qui sera mis à jour par un script javascript dans une fonction de pré-exécution, cette fonction peut être modifiée à loisir pour générer tout type de date.

Création du traitement

Utilisation de la variable {PNG}
On lance le jobeditor pour créer un nouveau Job dans lequel on va définir un nouveau script shell :

Job Name : DateDuJour
Language : Shell
Source Code (Windows) : echo %SCHEDULER_PARAM_DATE_DU_JOUR%
Source Code (Unix) : echo $SCHEDULER_PARAM_DATE_DU_JOUR


Paramètre {PNG}
On ajoute ce paramètre dans la partie parameter pour indiquer à l’ordonnanceur cette nouvelle variable.


Pré-traitement {PNG}
La troisième étape est d’ajouter la fonction dans la partie Pre-/Postprocessing.

function spooler_task_before() {
        var today = yy = mm = dd = "";
        today = new Date();
        yy = today.getYear() + 1900;
        mm = today.getMonth() + 1;
        dd = today.getDate();

        if (parseInt(mm) < 10) mm = "0" + mm;
        if (parseInt(dd) < 10) dd = "0" + dd;

        spooler_task.params.set_var("DATE_DU_JOUR", yy + "-" + mm + "-" + dd );

return true;
}

Exécution

A partir de l’interface HTTP (généralement [http://localhost:4444]), on démarre le traitement avec un clic droit :
- Start task immediately si vous êtres en anglais
- Démarrer la tâche immédiatement avec l’interface en français

Un clic sur Show Log permet de vérifier que la date est bien celle du jour :
2012-03-31 20:54:03.641 [info] SCHEDULER-918 state=starting (at=2012-03-31 20:54:03.532)
2012-03-31 20:54:04.158 [info] SCHEDULER-987 Starting process : "C :\Windows\TEMP\sos71E5D.cmd"
2012-03-31 20:54:04.572 [info]
2012-03-31 20:54:04.572 [info] C :\SOS-PARIS\jobscheduler\supervisor>echo 2012-03-31
2012-03-31 20:54:04.572 [info] 2012-03-31