Les paramètres de planification remplacent dynamiquement les valeurs temporelles dans votre code au moment de l'exécution, ce qui évite d'avoir à coder en dur des dates dans les workflows récurrents. Cette rubrique décrit les formats pris en charge et l'utilisation des valeurs de paramètre.
Assurez-vous de bien comprendre comment configurer les paramètres de planification. Pour plus de détails, consultez la rubrique Configurer et utiliser les paramètres de planification.
Concepts clés : références temporelles
Les paramètres temporels remplacent dynamiquement les chaînes de caractères représentant le temps lors de l'exécution. Tous les paramètres temporels dans DataWorks sont basés sur les deux références temporelles fondamentales suivantes.
Concept | Description | Valeur par défaut | Format personnalisé | Précision |
Date métier | Le jour précédent la date d'exécution planifiée d'une tâche. Dans les scénarios de calcul offline T+1, elle correspond à la date de génération des données métier. Par exemple, si vous exécutez une tâche aujourd'hui pour calculer le chiffre d'affaires d'hier, « hier » fait référence à la date des transactions, c'est-à-dire la date métier. |
|
| Année-mois-jour |
Heure planifiée | L'heure planifiée définie dans la configuration de planification de la tâche. Au moment de l'exécution, le système la résout en la journée en cours. Elle représente l'heure théorique d'exécution de la tâche et ne varie pas en cas de mise en file d'attente des ressources ou de retards. |
|
| Année-mois-jour-heure-minute-seconde |
En résumé :
Date métier ≈ Hier (date des données)
Heure planifiée ≈ Aujourd'hui (moment d'exécution de la tâche)
Une tâche T+1 typique démarre tôt le matin d'aujourd'hui (heure planifiée) pour traiter les données d'hier (date métier).
Expression de la valeur du paramètre
Les paramètres de planification prennent en charge les types de valeurs suivants :
Paramètres temporels personnalisés : expressions telles que
${...}et$[...]qui transforment les valeurs en fonction des deux références temporelles : la date métier et l'heure de planification. Pour plus d'informations, consultez la section Paramètres temporels personnalisés.Paramètres système intégrés : variables prédéfinies, telles que
$bizdate,$bizmonthet$jobid, qui renvoient des valeurs comme la date métier, le mois métier ou l'ID du workflow. Ces paramètres ne se limitent pas aux valeurs temporelles. Pour plus de détails, reportez-vous à la section Paramètres système intégrés.Constantes : valeurs littérales, telles que
'123'et'abc'.
Restrictions relatives aux caractères spéciaux : les expressions de paramètre ne peuvent pas contenir d'espaces ni le signe égal (=).
Utilisation
Définissez la logique d'affectation d'un paramètre de planification en spécifiant un nom de paramètre et une valeur de paramètre dans la section . Une fois le paramètre défini, vous pouvez y faire référence dans votre code à l'aide de la syntaxe ${nom du paramètre}. Pour obtenir des instructions détaillées, consultez la rubrique Configurer et utiliser les paramètres de planification.
-
Utilisez les paramètres intégrés au système
$bizdateet$cyctimepour représenter respectivement la date métier et l'heure planifiée. Ces paramètres se résolvent selon les valeurs suivantes :$bizdate=${yyyymmdd}-
$cyctime=$[yyyymmddhh24miss]

Les exemples précédents illustrent les définitions des paramètres $bizdate (qui se résout en ${yyyymmdd} ) et $cyctime (qui se résout en $[yyyymmddhh24miss] ), ainsi que leurs résultats de prévisualisation lorsque la date métier est le 16/10/2025.
Si les valeurs par défaut de l'heure de base ne répondent pas à vos besoins, utilisez la syntaxe
${...}et$[...]pour transformer les deux heures de base en paramètres temporels personnalisés.
Paramètres temporels personnalisés
DataWorks permet de récupérer la date métier et l'heure de planification en utilisant respectivement les formats ${...} et $[...]. Ces formats vous permettent de transformer les valeurs temporelles afin de répondre aux exigences métier. Les exemples suivants partent du principe qu'un nœud est planifié pour s'exécuter quotidiennement à 02:30:45 et que la date métier est 20251031. Les heures de référence sont les suivantes :
Date métier : la valeur de ${yyyymmdd} est 20251031.
Heure de planification : la valeur de $[yyyymmddhh24miss] est 20251101023045.
Différences clés entre ${...} et $[...]
Les formats ${...} et $[...] diffèrent par leurs références temporelles et leurs capacités de calcul. Leur utilisation conjointe peut entraîner des erreurs de données.
|
Comparaison |
${...} (Date métier) |
$[...] (Heure de planification) |
|
Référence temporelle |
Date métier (T-1) |
Heure de planification (T) |
|
Précision temporelle |
Jour (année, mois, jour) |
Seconde (année, mois, jour, heure, minute, seconde) |
|
Décalages pris en charge |
Prend en charge les calculs de décalage pour l'année, le mois, la semaine et le jour. |
Prend en charge les calculs de décalage pour le jour, l'heure et la minute. |
|
Limitations principales |
Ne prend pas en charge le formatage ni les calculs de décalage pour les unités de temps inférieures telles que les heures, les minutes ou les secondes. |
Les décalages directs d'année ou de mois utilisant une syntaxe telle que |
|
Paramètre système équivalent |
|
|
Formatage temporel
Utilisez les formats ${...} ou $[...] pour générer des paramètres temporels. Combinez des codes de format tels que yyyy, yy, mm et dd pour générer des dates situées N années, mois ou jours avant ou après la date métier.
Code | Description |
|
| ||
Exemple | Résultat | Exemple | Résultat | ||
| Année à 4 chiffres |
|
|
|
|
| Mois à 2 chiffres |
|
|
|
|
| Jour à 2 chiffres |
|
|
|
|
| Heure au format 24 heures | Non pris en charge (précision au niveau du jour) | - |
|
|
| Heure au format 12 heures | - |
|
| |
| Minute | - |
|
| |
| Seconde | - |
|
| |
| Année et mois |
|
|
|
|
| Année et mois formatés avec un trait de soulignement |
|
|
|
|
| Date formatée avec des traits d'union |
|
|
|
|
| Date et heure formatées avec des traits d'union et des deux-points | Non pris en charge (précision au niveau du jour) | - | Ce format peut être obtenu par concaténation de chaînes. Voir Concaténation de chaînes : Cas 2. | |
Calcul du décalage
Le calcul du décalage vous permet d'ajouter ou de soustraire une durée à une date métier ou à une heure de planification. Vous pouvez appliquer des décalages de N années, mois, jours, heures ou minutes par rapport à la référence temporelle. Les décalages en heures et en minutes sont pris en charge uniquement pour l'heure de planification. Les capacités de décalage de ${...} et $[...] diffèrent car elles prennent en charge différents niveaux de précision temporelle.
-
Calcul du décalage avec ${...}
-
Fonctionnalité principale : prend en charge les décalages entiers pour les années, les mois, les semaines et les jours.
ImportantLes décalages en heures et en minutes ne sont pas pris en charge. Par exemple, ${yyyy-mm-dd-1/24} constitue une syntaxe invalide.
-
Syntaxe :
${<time_format><±N>}, où l'unité de N correspond à la plus petite unité du format, telle que yyyymm ou yyyymmdd.Exigence
Unité de décalage
Syntaxe
Exemple
N années avant/après
Année
${yyyy±N}ou${yy±N}Obtenir l'année précédente :
${yyyy-1}N mois avant/après
Mois
${yyyymm±N}Obtenir le mois précédent :
${yyyymm-1}N semaines avant/après
Semaine
${yyyymmdd±7*N}Obtenir la semaine précédente :
${yyyymmdd-7*1}N jours avant/après
Jour
${yyyymmdd±N}Obtenir le jour précédent :
${yyyymmdd-1}
-
-
Calcul du décalage avec $[...]
-
Fonctionnalité principale : prend en charge les décalages fractionnaires pour les jours, les heures et les minutes.
ImportantLe format $[...] ne peut pas utiliser d'expressions telles que
$[yyyy-N]ou$[mm-N]pour récupérer des dates datant de N années ou mois. Pour effectuer des décalages en années ou en mois, vous devez utiliser la fonctionadd_months. -
Syntaxe :
$[<time_format><±N>], où N représente une fraction d'un jour : utilisez N/24 pour un décalage de N heures et N/24/60 pour un décalage de N minutes.Exigence
Unité de décalage
Syntaxe
Exemple
N années avant/après
Année
Dans N années :
$[add_months(yyyymmdd,12N)]
Il y a N années :$[add_months(yyyymmdd,-12N)]Obtenir l'année précédente :
$[add_months(yyyymmdd,-12)]N mois avant/après
Mois
Dans N mois :
$[add_months(yyyymmdd,N)]
Il y a N mois :$[add_months(yyyymmdd,-N)]Obtenir le mois précédent :
$[add_months(yyyymmdd,-1)]
Obtenir le mois suivant :$[add_months(yyyy_mm,1)]N semaines avant/après
Semaine
$[yyyymmdd±7*N]Obtenir la semaine précédente :
$[yyyymmdd-7*1]N jours avant/après
Jour
$[yyyymmdd±N]Obtenir le jour précédent (hier) :
$[yyyymmdd-1]N heures avant/après
Heure
Formats disponibles :
$[hh24miss±N/24],$[hh24±N/24]$[<custom_time_format>±N/24]
Obtenir l'heure précédente dans différents formats :
Mois :
$[mm-1/24]Année :
$[yyyy-1/24]Année et mois :
$[yyyymm-1/24]Année, mois et jour :
$[yyyymmdd-1/24]Jour précédent et heure précédente :
$[yyyymmdd-1-1/24]
N minutes avant/après
Minute
Formats disponibles :
$[hh24miss±N/24/60]$[yyyymmddhh24miss±N/24/60]$[mi±N/24/60]$[<custom_time_format>±N/24/60]
Obtenir l'heure située 15 minutes avant l'heure de planification dans différents formats :
$[yyyy-15/24/60]$[yyyymm-15/24/60]$[yyyymmdd-15/24/60]$[hh24-15/24/60]$[mi-15/24/60]
Décalage combiné
Jour + Heure
$[yyyymmdd±N±M/24], où N est le décalage en jours et M le décalage en heures.Exemple : Obtenir l'heure du jour précédent et de l'heure précédente →
$[yyyymmdd-1-1/24]RemarqueGestion du passage à la journée suivante : les décalages en heures et en minutes peuvent entraîner un dépassement de la limite journalière. Pour plus de détails sur la gestion de ce cas, consultez Comment gérer le remplacement des paramètres lors d'un décalage d'une heure franchissant la limite journalière.
Calibration de fin de mois : lorsque vous appliquez un décalage mensuel à une date de fin de mois, si le mois cible comporte moins de jours, le résultat est automatiquement ajusté au dernier jour de ce mois. Par exemple, soustraire un mois au 31 mars 2025 renvoie le 28 février 2025, car février ne compte pas 31 jours.
-
Transformation secondaire à l'aide des fonctions du moteur
Si les capacités intégrées de mise en forme et de décalage ne permettent pas d'obtenir la valeur exacte souhaitée (par exemple, le dernier jour du mois précédent), appliquez une transformation secondaire en utilisant les fonctions du moteur du nœud ou un nœud d'affectation.
Voir : Scénarios typiques de traitement secondaire des valeurs de retour des paramètres de planification .
Concaténation de chaînes
Utilisez la concaténation de chaînes pour construire des chaînes de dates structurées non prises en charge par la syntaxe intégrée. Cette méthode combine une partie de date générée par un paramètre de planification avec une chaîne constante.
Cas 1 : Obtenir dynamiquement le premier jour de chaque mois
Scénario : vous avez besoin d'une chaîne représentant le premier jour du mois en cours au format
yyyymm01, quel que soit le jour d'exécution de la tâche.-
Implémentation :
Extrayez la partie année et mois : utilisez
${yyyymm}pour obtenir l'année et le mois de la date métier actuelle. Par exemple, si la date métier est20231027, le résultat est202310.Concaténez l'année et le mois extraits avec la chaîne constante
'01'.Appel du paramètre :
first_day_of_month=${yyyymm}01
Résultat : lors de l'exécution de la tâche,
${first_day_of_month}est remplacé par20231001.
Cas 2 : Générer un horodatage au format yyyy-mm-dd hh24:mi:ss
Scénario : vous devez générer un horodatage au format yyyy-mm-dd hh24:mi:ss, tel que
2023-11-01 02:30:45.-
Implémentation :
Définissez deux paramètres,
datetime1etdatetime2. Configurez-les comme suit :datetime1=$[yyyy-mm-dd]etdatetime2=$[hh24:mi:ss].Concaténez les paramètres
datetime1etdatetime2, séparés par un espace.Appel du paramètre : pt=
${datetime1}${datetime2}
Résultat : lors de l'exécution de la tâche,
${datetime1}${datetime2}est remplacé par2023-11-01 02:30:45.
Paramètres système intégrés
DataWorks met à disposition les paramètres système intégrés suivants. En raison de leurs formats temporels figés et de leur flexibilité limitée, il est recommandé d'utiliser plutôt des paramètres temporels personnalisés.
Parameter | Description |
$bizdate | La date métier au format Par défaut, correspond généralement à la veille de l'heure de planification prévue de la tâche. |
$cyctime | L'heure planifiée au format |
$gmtdate | La date actuelle au format Correspond par défaut à la date du jour. Pour une rétroalimentation de données, la date équivaut à |
$bizmonth | Le mois métier au format
|
$jobid | L'ID du workflow contenant la tâche. |
$nodeid | L'ID du nœud. |
$taskid | L'ID de l'instance générée par le nœud. |
Exemples de remplacement de paramètres
La valeur de remplacement d'un paramètre de planification est déterminée lors de la création d'une instance et n'est pas influencée par l'heure réelle de démarrage.
Scénario 1 : planification normale
Dans le cadre d'une planification normale, le remplacement des paramètres s'appuie sur deux repères temporels : la date métier et l'heure de planification.
${...}(date métier) : la valeur est dérivée de la date métier de l'instance.$[...](heure de planification) : la valeur est dérivée de l'heure de planification de l'instance.
Prenons l'exemple d'une tâche quotidienne nommée A, planifiée pour s'exécuter à 00:00 avec les paramètres suivants :
yesterday=${yyyymmdd}today=$[yyyymmddhh24miss]
Le tableau ci-dessous illustre le remplacement de ces paramètres pour une instance spécifique :
|
Scheduling time |
Business date |
yesterday=${yyyymmdd} |
today=$[yyyymmddhh24miss] |
|
|
|
|
|
Scénario 2 : rétroalimentation de données
Lors d'une rétroalimentation de données, la logique de remplacement des paramètres varie selon la date métier sélectionnée. Cette variation impacte particulièrement les paramètres dépendant de l'heure de planification.
${...}(date métier) : le repère correspond à la date métier sélectionnée manuellement.$[...](heure de planification) : le repère correspond à la date métier sélectionnée manuellement + 1 jour.
Par exemple, si vous effectuez une rétroalimentation de la tâche A avec 2025-03-15 comme date métier :
|
Selected business date |
yesterday=${yyyymmdd} |
today=$[yyyymmddhh24miss] |
|
|
|
|
FAQ
Pour toute question relative aux paramètres de planification, consultez la rubrique FAQ sur les paramètres de planification.