FAQ

Insérer une date

De MappingDoc
Révision datée du 20 octobre 2020 à 17:17 par Nsmet (discussion | contributions) (Via un workflow sous Mapping Windows)

Comment insérer une date ou l'heure dans un document ?

Pour rappel, dans le Designer Mapping il est possible d'utiliser le mot clé VAR: entre doubles crochets afin d'insérer la valeur d'une variable d'environnement Linux ou Windows.

Ainsi, une zone contenant le texte suivant : VAR:MaVariable permet d'insérer le contenu de la variable d'environnement %MaVariable% sous windows ou $MaVariable sous linux.

Partant de ce principe, pour insérer une date avec un formatage spécifique, il suffit de créer, avant la composition, une variable d'environnement contenant cette date.

Cela peut se faire par script si la commande de composition (mapcpysplf) est invoquée en ligne de commande, ou en utilisant une boite "PARAM" si le traitement se fait dans un workflow Mapping. Les commandes illustrées ci-dessous peuvent aussi bien être utilisées via un workflow qu'en script shell.

Via un workflow sous Mapping Linux

  • Créer une boite de type "Paramètre" (attribut)
  • Donner un nom à la variable à utiliser
  • Pour la valeur, positionner le type de champ sur "cmd" (via le bouton droit)
  • Cliquer sur l'icone en bout de champ (cmd)
  • Saisir la commande suivante dans la zone de texte CMD:
/usr/bin/date +%d/%m/%Y

puis l'adapter selon le format de date désiré

Via un workflow sous Mapping Windows

  • Créer un script .bat avec le contenu suivant :
@echo off
for /f %%a in ('wmic os get localdatetime ^| findstr [0-9]') do set "$WmicDate=%%a"
set "$Date=%$WmicDate:~0,4%/%$WmicDate:~4,2%/%$WmicDate:~6,2%" 
echo %$date
  • Créer une boite de type "Paramètre" (attribut)
  • Donner un nom à la variable à utiliser
  • Pour la valeur, positionner le type de champ sur "cmd" (via le bouton droit)
  • Cliquer sur l'icone en bout de champ (cmd)
  • Saisir le chemin complet du fichier .bat créé précédemment. Pour rappel, les chemins en dur sont à proscrire au profit de paramètres définis dans la configuration. Exemple :
[%PATH_BIN%]/custom/current_date.bat

Autres solutions

Si un traitement est invoqué via le Spooler Mapping, une variable d'environnement nommée MAP_DATE est déjà existante. Le format de cette date est définie dans le fichier de configuration Mapping (mapping.conf), via le paramètre DATE_FORMAT

Attention : si le traitement n'est pas issu du Spooler, cette variable n'existe pas !!!