# Notifications

## Onglet Notifications

### Notifications automatiques

<table data-header-hidden><thead><tr><th valign="top">Champs</th><th valign="top">Remarques</th></tr></thead><tbody><tr><td valign="top"><strong>Champs</strong></td><td valign="top"><strong>Remarques</strong></td></tr><tr><td valign="top">À affecter</td><td valign="top">Indique si un email est automatiquement envoyé à l’utilisateur qui doit effectuer l’affectation de l’action</td></tr><tr><td valign="top">À faire</td><td valign="top">Indique si un email est automatiquement envoyé à l’utilisateur qui doit réaliser l’action</td></tr><tr><td valign="top">En retard</td><td valign="top">Indique si un email est automatiquement envoyé à l’utilisateur qui doit réaliser une action en retard</td></tr><tr><td valign="top">Prise en charge annulée</td><td valign="top">Indique si un email est automatiquement envoyé lorsque l’affectation de l’action est annulée de manière automatique</td></tr></tbody></table>

### Notifications supplémentaires

<table data-header-hidden><thead><tr><th valign="top">Champs</th><th valign="top">Remarques</th></tr></thead><tbody><tr><td valign="top"><strong>Champs</strong></td><td valign="top"><strong>Remarques</strong></td></tr><tr><td valign="top">Événement</td><td valign="top"><p>Types d’événement de notification :</p><ul><li>À faire</li><li>Annulée</li><li>Prise en charge annulée</li><li>Erreur d’assignation</li><li>En retard</li><li>Pré-retard *</li><li>Réalisé</li><li>Erreur d’exécution</li></ul></td></tr><tr><td valign="top">Destinataire</td><td valign="top"><p>Destinataire de la notification :</p><ul><li>Le demandeur</li><li>L’initiateur de l’action (si la méthode d’affectation est manuelle)</li><li>Les utilisateurs affectés à l’action</li><li>Des adresses email libres séparées par virgules ou point-virgules)</li><li>Les utilisateurs associés à un participant</li><li>L’utilisateur qui a fait une action ... (nom de l’action)</li><li>Des adresses email contenues dans la donnée (à sélectionner dans la liste ci-dessous) séparées par virgules ou point-virgules</li></ul></td></tr><tr><td valign="top">Modèle</td><td valign="top"><p>Modèle de message de l’email :</p><ul><li>Défaut (utilise le modèle d’email standard localisé dans <code>\App_Data\Templates\Emails</code>).</li><li>Utilise le contenu de la donnée (à sélectionner dans la liste ci-dessous). Cette liste est alimentée avec les données du processus de type texte et fichier.</li></ul><p>Vous pouvez utiliser dans une donnée de type fichier les éléments suivants afin de définir votre propre modèle :</p><ul><li>Le mot-clé réservé <code>SUBJECT</code> pour définir un sujet personnalisé de l’email</li><li>Des macros</li><li>Modèles de notification personnalisés (voir <a href="/pages/-LXBSHImeU5mp7wPOOxV">Notifications personnalisées</a> pour des instructions sur la création de modèles de notification personnalisés)</li></ul></td></tr></tbody></table>

\* La fonctionnalité de notification de pré-retard est disponible dans WorkflowGen 5.1.7 et supérieur. Un processus XPDL utilisant cette fonctionnalité ne sera pas compatible avec les versions précédentes de WorkflowGen, y compris la version 5.1.6. Une erreur sera générée lors de la tentative d'importation du nouveau XPDL dans ces versions.

<table data-header-hidden><thead><tr><th valign="top">Colonnes</th><th valign="top">Remarques</th></tr></thead><tbody><tr><td valign="top"><strong>Colonnes</strong></td><td valign="top"><strong>Remarques</strong></td></tr><tr><td valign="top">Événement</td><td valign="top">Type de l’événement de notification</td></tr><tr><td valign="top">Destinataire</td><td valign="top">Destinataire(s) de l’email</td></tr><tr><td valign="top">Modèle</td><td valign="top">Le modèle sélectionné du message à envoyer</td></tr><tr><td valign="top">Condition</td><td valign="top">Un lien affiche l’écran d’édition de condition de la notification</td></tr><tr><td valign="top">Suppression</td><td valign="top">Le <strong><code>x</code></strong> permet la suppression de la notification</td></tr></tbody></table>

### Ajout et édition des notifications supplémentaires

Pour ajouter une notification supplémentaire, cliquez sur le symbole d'addition (**`+`**) dans l'entête de la colonne à droite, choisissez un événement et un modèle si désiré (sinon les défauts **À faire** et **Défaut** seront utilisés) et ensuite choisissez le ou les destinataire(s). Cliquez encore pour enregistrer la notification. Vous pouvez ensuite ajouter une condition si désiré.

Cliquez sur l'événement, sur le ou les destinataire(s) ou sur la condition pour les éditer. Pour supprimer une notification, cliquez sur le **`x`** à droite de la notification.

{% hint style="info" %}
Les notifications supplémentaires sont automatiquement enregistrées, mais vous devez toutefois cliquez sur **Enregistrer** ou sur **Enregistrer et fermer** pour enregistrer les modifications aux notifications automatiques.
{% endhint %}

## Rappels récurrents de retard et de pré-retard

Depuis WorkflowGen 9.6, vous pouvez configurer des rappels récurrents directement à partir des notifications additionnelles d’une action. Il s’agit de la méthode recommandée lorsque vous devez envoyer des emails de rappel répétés avant ou après l’échéance.

{% hint style="info" %}
Les rappels récurrents sont disponibles uniquement pour les événements de notification additionnelle **En retard** et **Pré-retard**. Les autres événements de notification additionnelle ne supportent pas de planification récurrente.
{% endhint %}

### Configuration d’un rappel récurrent

1. Ouvrez l’action du processus.
2. Dans la section **Notifications supplémentaires** de l’onglet **Notifications**, ajoutez ou modifiez une notification.
3. Dans la colonne **Événement**, sélectionnez l’un des événements suivants :
   * **En retard**
   * **Pré-retard**
4. Configurez les colonnes **Destinataires** et **Modèle**.
5. Dans la colonne **Planification**, cliquez sur **Ajouter**.
6. Configurez les champs de récurrence :
   * **Début** : Définit le moment où le premier rappel est envoyé.
     * Pour une notification **En retard**, laissez ce champ vide pour envoyer le premier rappel lorsque l’action devient en retard, ou saisissez un délai pour l’envoyer après la date d’échéance.
     * Pour une notification **Pré-retard**, saisissez le délai avant la date d’échéance auquel le premier rappel doit être envoyé. Ce champ est obligatoire pour les rappels récurrents avant échéance.
   * **Répéter toutes les** : Définit l’intervalle entre les rappels. Laissez ce champ vide pour envoyer uniquement le premier rappel.
   * **Nombre de répétitions** : Facultatif. Définit le nombre de rappels additionnels envoyés après le premier rappel. Ce champ est disponible uniquement lorsqu’une valeur est définie dans **Répéter toutes les**.
7. Cliquez sur **Enregistrer et fermer** dans l’éditeur de planification.

{% hint style="info" %}

* La planification supporte les jours, les heures et les minutes. Les valeurs **Début**, **Répéter toutes les** et **Nombre de répétitions** doivent être des entiers positifs.
* Si la colonne **Planification** est laissée vide, la notification supplémentaire conserve son comportement ponctuel existant.
  {% endhint %}

### Application de la récurrence

Pour les notifications **En retard** :

* Si **Début** est vide, le premier rappel est envoyé lorsque l’action atteint sa date d’échéance.
* Si **Début** contient une valeur, le premier rappel est envoyé après la date d’échéance selon ce délai.
* Si **Répéter toutes les** est configuré sans **Nombre de répétitions**, les rappels continuent tant que l’action reste ouverte.

Pour les notifications **Pré-retard** :

* **Début** est obligatoire et définit le moment où le premier rappel est envoyé avant la date d’échéance de l’action.
* Si **Répéter toutes les** est configuré sans **Nombre de répétitions**, les rappels continuent jusqu’à la date d’échéance.
* Aucun rappel avant échéance n’est envoyé après que l’action a atteint sa date d’échéance.

Lorsque **Nombre de répétitions** est défini, la valeur représente le nombre de rappels répétés après le premier rappel. Par exemple, un premier rappel avec un nombre de répétitions de 2 peut envoyer jusqu’à trois rappels au total.

Les rappels récurrents sont traités par le service de moteur WorkflowGen. L’heure d’envoi réelle dépend de la cadence de notification du moteur; un rappel est donc envoyé lors de la prochaine exécution de notification après son occurrence planifiée. La valeur **Répéter toutes les** doit être supérieure ou égale à la cadence de notification du service de moteur, qui est basée sur le paramètre `EngineServiceNotificationFrequency`.

#### 📌 Exemples

Notifier l’assigné chaque jour après que l’action devient en retard :

* **Événement** : En retard
* **Destinataires** : Assigné de l’action
* **Début** : Vide
* **Répéter toutes les** : 1 jour
* **Nombre de répétitions** : Vide

Notifier le demandeur un jour avant la date d’échéance, puis toutes les deux heures jusqu’à la date d’échéance :

* **Événement** : Avant échéance
* **Destinataires** : Demandeur
* **Début** : 1 jour
* **Répéter toutes les** : 2 heures
* **Nombre de répétitions** : Vide

Notifier un superviseur deux jours après que l’action devient en retard, puis envoyer deux autres rappels quotidiens :

* **Événement** : En retard
* **Destinataires** : Participant superviseur
* **Début** : 2 jours
* **Répéter toutes les** : 1 jour
* **Nombre de répétitions** : 2

### Conditions

Vous pouvez toujours définir une condition sur une notification additionnelle récurrente. La condition est évaluée lorsque le moteur traite une occurrence de rappel arrivée à échéance. Si vous avez uniquement besoin de rappels à intervalles fixes avant ou après l’échéance, utilisez les champs de planification au lieu de créer des conditions date/heure à l’aide de scripts ou de macros.

Utilisez les conditions pour des règles métier additionnelles, par exemple pour envoyer un rappel récurrent seulement lorsqu’une donnée de processus possède un statut spécifique.

### Importation et exportation XPDL

Lorsqu’un processus est exporté, les paramètres de notification récurrente sont stockés dans l’attribut `RecurrenceSchedule` de l’élément `ActivityNotification`. L’attribut est exporté uniquement pour les notifications additionnelles **En retard** et **Pré-retard**.

Le format de `RecurrenceSchedule` est le suivant :

```
[start][d|h|m],[repeatInterval][d|h|m],[repeatCount]
```

Les unités sont les suivantes :

* `d` : jours
* `h` : heures
* `m` : minutes

{% hint style="info" %}
Les fichiers XPDL importés doivent utiliser des valeurs entières positives et des unités valides. Pour les rappels récurrents avant échéance, la valeur de début est obligatoire. L’intervalle de répétition doit être supérieur ou égal à la cadence de notification du service de moteur.
{% endhint %}

#### 📌 Exemples

* `,1d,` : Rappel en retard dû lorsque l’action devient en retard, puis répété chaque jour sans limite de nombre de répétitions.
* `1d,,` : Un rappel un jour avant ou après la date d’échéance, selon l’événement de notification.
* `2h,30m,4` : Premier rappel deux heures avant ou après la date d’échéance, puis quatre rappels additionnels toutes les 30 minutes.

## Notifications de retard et de pré-retard&#x20;

Vous pouvez créer une hiérarchie afin de gérer les notifications des actions en retard en définissant des conditions de notification supplémentaires basées sur les fonctions de calcul des dates/heures dans VBScript ou JavaScript. Cela peut se faire dans JavaScript en manipulant l'objet de la date directement, dans VBScript en utilisant la fonction `DateDiff`, ou bien en utilisant les macros `Action en cours._[Unité de temps]_ en retard` et `Action en cours._[Unité de temps]_ pré-retard` (voir la section [Macros](/admin-fr/9.6-admin-fr/macros.md) pour plus d’informations).

{% hint style="info" %}

* Les macros de notification de retard arrondissent le temps réel du retard **vers le bas** à l’unité de temps la plus proche, tandis que les macros de notification de pré-retard arrondissent le temps réel du pré-retard **vers le haut** à l’unité de temps la plus proche.
* Pour une meilleure précision du calcul de la durée, il est suggéré d’utiliser les minutes comme unité de temps dans la condition. Par exemple, si vous utilisez la fonction `DateDiff` dans une condition, utilisez `n` comme paramètre pour l’unité de temps; si vous utilisez une macro, utilisez `<WF_ACTIVITY_INST_OVERDUE_MINUTES>` ou `<WF_ACTIVITY_INST_PREOVERDUE_MINUTES>`.
  {% endhint %}

### Exemple

Dans une action d’un processus, si vous voulez notifier le demandeur que le délai de l’action est supérieur à un jour et sinon notifier le gestionnaire du processus aussi après deux jours, vous devez créer deux notifications supplémentaires de l’action avec les paramètres ci-dessous :

#### **Notifier le demandeur si le délai est supérieur à 1 jour**

**Type :** Retard\
**Destinataire :** Demandeur

* JavaScript : &#x20;

  ```javascript
  (<WF_SYSTEM_DATETIME> - <WF_ACTIVITY_INST_LIMIT_DATETIME>) / 3600000 < 24
  ```
* VBScript : &#x20;

  ```javascript
  DateDiff("h",<WF_ACTIVITY_INST_LIMIT_DATETIME>,<WF_SYSTEM_DATETIME>) < 24
  ```
* En utilisant une macro :

  ```
  <WF_ACTIVITY_INST_OVERDUE_HOURS> < 24
  ```

#### **Notifier le superviseur du processus si le délai est supérieur à 2 jours**

**Type :** Retard\
**Destinataire :** Le participant superviseur

* JavaScript :&#x20;

  ```javascript
  (<WF_SYSTEM_DATETIME> - <WF_ACTIVITY_INST_LIMIT_DATETIME>) / 3600000 >= 48
  ```
* VBScript :&#x20;

  ```javascript
  DateDiff("h",<WF_ACTIVITY_INST_LIMIT_DATETIME>,<WF_SYSTEM_DATETIME>) >= 48
  ```
* En utilisant une macro :&#x20;

  ```
  <WF_ACTIVITY_INST_OVERDUE_HOURS> >= 48
  ```

### Notifications de pré-retard

Dans une action de processus, si vous voulez notifier un utilisateur qu’il risque d’être en retard avant la date cible, vous devez ajouter une notification additionnelle sur l’action en utilisant l’événement **Pré-retard**.

Pour ajouter une notification de pré-retard, suivez les étapes suivantes :

1. Dans l’onglet de notification d’une action, sous la section **Supplémentaires**, sélectionnez l’événement **Pré-retard**.<br>
2. Sélectionnez le ou les destinataire(s).<br>
3. Sélectionnez le modèle par défaut ou le modèle personnalisé précédemment créé.<br>
4. Cliquez sur **Ajouter**.<br>
5. Entrez une condition (voir les exemples ci-dessous).

#### 📌 Exemples

#### **La notification est envoyée 3 jours avant la fin du délai défini pour l’action**

* JavaScript :&#x20;

  ```javascript
  (<WF_ACTIVITY_INST_LIMIT_DATETIME> - <WF_SYSTEM_DATETIME>) / 86400000 <= 3
  ```
* VBScript : &#x20;

  ```javascript
  DateDiff("d", <WF_SYSTEM_DATETIME> , <WF_ACTIVITY_INST_LIMIT_DATETIME>) <= 3
  ```
* En utilisant une macro :

  ```
  <WF_ACTIVITY_INST_PREOVERDUE_DAYS> <= 3
  ```

#### **La notification est envoyée 15 minutes avant la fin du délai défini pour l’action**

* JavaScript : &#x20;

  ```javascript
  (<WF_ACTIVITY_INST_LIMIT_DATETIME> - <WF_SYSTEM_DATETIME>) / 60000 <= 15
  ```
* VBScript : &#x20;

  ```javascript
  DateDiff("n", <WF_SYSTEM_DATETIME> , <WF_ACTIVITY_INST_LIMIT_DATETIME>) <= 15
  ```
* En utilisant une macro :

  ```
  <WF_ACTIVITY_INST_PREOVERDUE_MINUTES> <= 15
  ```

Il n’y a pas de limite sur les notifications additionnelles de pré-retard qui peuvent être ajoutées à une action (ex. : 2 jours, 1 jour, 1 heure, 30 minutes, etc...).

{% hint style="info" %}

* Si vous ne spécifiez pas de condition, la notification de pré-retard sera envoyée chaque fois qu’une action est créée avec un délai et que le service du moteur Windows sera exécuté. Il est donc préférable d’ajouter une condition comme dans les exemples ci-dessus pour contrôler le moment où la notification de pré-retard est envoyée.
* Depuis la version 5.1.7, tous les processus qui incluent des notifications de pré-retard ne peuvent êtres importés dans une version WorkflowGen 5.1.6 ou inférieure pour des raisons de compatibilité.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.workflowgen.com/admin-fr/9.6-admin-fr/workflow/notifications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
