Bonnes pratiques relatives aux workflows

Exécution et performance

Vous trouverez ci-dessous des instructions générales pour l’optimisation des performances de Campaign, notamment des bonnes pratiques à appliquer à vos workflows.

Vous trouverez également dans cette section des instructions pour résoudre les problèmes liés à l’exécution des workflows.

Logs

La méthode JavaScript logInfo() s'avère particulièrement utile pour déboguer un workflow. Elle doit toutefois être utilisée avec précaution, notamment pour les activités exécutées fréquemment, car elle peut surcharger les logs et accroître considérablement la taille de la table des logs. Si la méthode logInfo() n'est pas suffisante,

Deux autres solutions sont proposées :

  • Conserver le résultat des populations intermédiaires entre deux exécutions

    Cette option, disponible dans l'onglet Général des propriétés d'un workflow, permet de conserver temporairement les tables entre deux exécutions d'un workflow. Elle peut être utilisée à des fins de développement et de test pour surveiller les données et vérifier les résultats. Bien que cette option puisse être utilisée dans des environnements de développement, elle ne doit jamais l'être dans des environnements de production. La conservation des tables temporaires peut entraîner une augmentation significative de la taille de la base de données, voire même un dépassement des limites de taille. Elle peut aussi ralentir la sauvegarde.

    Seules les tables de travail de la dernière exécution du workflow sont conservées. Celles des exécutions précédentes sont purgées par le workflow de nettoyage qui s'exécute tous les jours.

    ATTENTION

    Cette option ne doit jamais être cochée dans un workflow de production. Elle sert à analyser les résultats et est conçue uniquement à des fins de test. Elle ne doit donc être utilisée que dans les environnements de développement ou d’évaluation.

  • Enregistrer les requêtes SQL dans le journal

    Cette option, disponible dans l'onglet Exécution des propriétés d'un workflow, permet d'enregistrer toutes les requêtes SQL générées par l'outil à partir des différentes activités. Elle permet ainsi de savoir ce qui est actuellement exécuté par la plateforme. Cette option ne doit toutefois être utilisée que temporairement pendant le développement et ne pas être activée en production.

Purgez les logs lorsqu’ils ne sont plus nécessaires. L’historique d’un workflow n’est pas purgé automatiquement : tous les messages sont conservés par défaut. Vous pouvez purger l’historique depuis le menu Fichier > Actions ou en cliquant sur le bouton Actions situé dans la barre d’outils au-dessus de la liste. Choisissez Purge de l’historique.
Pour savoir comment purger les logs, consultez cette documentation.

Planification des workflows

  • Essayez de maintenir un niveau d’activité stable au cours de la journée et évitez les pics afin de ne pas surcharger l’instance. Pour cela, distribuez les heures de début des workflows tout au long de la journée.
  • Planifiez le chargement des données au cours de la nuit de façon à réduire les conflits entre les données.
  • Les workflows longs peuvent avoir une incidence sur les ressources du serveur et de la base de données. Fractionnez les workflows les plus longs pour réduire le temps de traitement.
  • Pour réduire les temps d’exécution globaux, remplacez les activités exigeant beaucoup de temps par des activités simplifiées et plus rapides.
  • Évitez d’exécuter plus de 20 workflows simultanément. Si trop de workflows sont exécutés en même temps, le système risque de manquer de ressources et peut devenir instable. Pour plus d’informations sur les raisons éventuelles empêchant votre workflow de démarrer, reportez-vous à cet article.

Exécution des workflows

Il est recommandé de ne pas planifier l'exécution d'un workflow à une fréquence supérieure à toutes les 15 minutes, afin de ne pas nuire aux performances générales du système et d'éviter la création de blocs dans la base de données.

Evitez de laisser les workflows en pause. Si vous créez un workflow temporaire, vérifiez qu'il pourra se terminer correctement et qu'il ne restera pas dans un état en pause, car il vous obligerait de conserver les tables temporaires, ce qui augmenterait la taille de la base de données. Affectez des superviseurs dans les propriétés du workflow pour envoyer une alerte en cas d’échec ou de suspension d’un workflow par le système.

Pour éviter que les workflows soient dans un état en pause :

  • Vérifiez vos workflows régulièrement pour vous assurer qu'il n'y a pas d'erreurs inattendues.
  • Faites en sorte que vos workflows soient aussi simples que possible, en fractionnant par exemple les workflows volumineux en plusieurs workflows différents. Vous pouvez utiliser des activités Signal externe pour déclencher leur exécution selon celle d'autres workflows.
  • Évitez de conserver dans vos workflows des activités désactivées contenant des flux. Cette situation conduit à maintenir des threads ouverts et de nombreuses tables temporaires qui consomment beaucoup d’espace. Ne conservez pas, dans vos workflows, des activités se trouvant dans les états Ne pas activer ou Activer, mais ne pas exécuter.

De même, arrêtez les workflows inutilisés. En continuant à s’exécuter, ils maintiennent les connexions avec la base de données.

N’utilisez l’arrêt inconditionnel que très rarement. Cette action ne doit pas être appliquée régulièrement. Une fermeture incorrecte des connexions générées par les workflows vers la base de données nuit aux performances.

Option exécuter dans le moteur

Dans la fenêtre des Propriétés du workflow, ne cochez jamais l'option Exécuter dans le moteur. Lorsque cette option est activée, le workflow devient prioritaire, et tous les autres workflows sont stoppés par le moteur de workflow tant qu'il n'est pas terminé.

Propriétés d'exécution

Dossiers des workflows

Adobe conseille de créer les workflows dans un dossier dédié.

Si le workflow a un impact sur l’ensemble de la plateforme (processus de nettoyage, par exemple), vous pouvez ajouter un sous-dossier au dossier intégré Workflows techniques.

Attribution d’un nom au workflow

Pour trouver plus facilement les workflows qui ne fonctionnent pas de la manière attendue et résoudre les problèmes, Adobe recommande d'attribuer aux workflows des libellés et des noms adéquats. Renseignez également le champ de description du workflow pour que l'opérateur puisse facilement comprendre son objectif.

Si le workflow fait partie d'un processus impliquant d'autres workflows, vous pouvez saisir un libellé explicite, en utilisant par exemple des chiffres pour classer les workflows (par libellé).

Par exemple :

  • 001 - Import - Import des destinataires
  • 002 - Import - Import des ventes
  • 003 - Import - Import des détails sur les ventes
  • 010 - Export - Export des logs de diffusion
  • 011 - Export - Export des logs de tracking

Niveau de criticité d’un workflow

Vous pouvez configurer le niveau de criticité d'un workflow dans l'onglet Exécution des propriétés du workflow :

  • Normal
  • Production
  • Critique

Si vous indiquez cette information lors de la création d'un workflow, vous déterminerez le niveau de priorité du processus configuré.

Cette option n'a aucun impact fonctionnel sur les workflows autres que les workflows d'opération.

Les workflows d'opération (créés dans le cadre d'une opération/campagne) avec un niveau de priorité plus élevé sont exécutés en premier si l'opération comprend plusieurs processus qui sont supposés s'exécuter simultanément. Par défaut, seuls 10 processus peuvent s'exécuter simultanément dans une opération, selon l'option NmsOperation_LimitConcurrency. Par exemple, si une opération contient 25 workflows, ceux avec une priorité plus élevée seront exécutés dans le premier pool de 10 processus.

Surveillance des workflows

Vous devez surveiller tous les workflows planifiés s'exécutant dans des environnement de production afin d'être averti en cas d'erreur.

Dans les propriétés d'un workflow, sélectionnez un groupe de responsables : le groupe Superviseurs de workflow par défaut ou un groupe personnalisé. Vérifiez qu'un opérateur au moins appartient à ce groupe et qu'il dispose d'une adresse email.

Avant de commencer la construction d’un workflow, pensez à définir les superviseurs. Ceux-ci seront avertis par email lorsqu’un workflow sera en erreur. Voir à ce propos la section Gérer les erreurs.

Vérifiez régulièrement l’univers de Surveillance pour connaître le statut des workflows actifs. Voir à ce propos la section Supervision de l’instance.

La carte thermique des workflows permet aux administrateurs de la plateforme Adobe Campaign de surveiller la charge sur l’instance et de planifier les workflows en conséquence. Voir à ce sujet Surveillance des workflows.

Utilisation des activités

ATTENTION

Vous pouvez copier et coller des activités dans un même workflow. Toutefois, nous vous déconseillons de copier et coller des activités dans différents workflows. Certains paramètres associés à des activités telles que Diffusions et Planificateur peuvent entraîner des conflits et des erreurs lors de l'exécution du workflow de destination. Nous vous recommandons plutôt de dupliquer les workflows. Pour plus d’informations, voir la section Duplication des workflows.

Attribution d'un nom à une activité

Lors du développement de votre workflow, toutes les activités seront dotées d'un nom, tout comme les objets Adobe Campaign. Bien que ce nom soit généré par l'outil, il est recommandé d'attribuer à une activité un nom explicite lors de sa configuration. Si vous le faites plus tard, le workflow peut être interrompu si les activités utilisent le nom d'activités précédentes et la mise à jour des noms risque d'être difficile.

Le nom d'une activité figure dans l'onglet Avancé. Ne conservez pas le nom query, query1 ou query11. Attribuez à une activité un nom explicite comme querySubscribedRecipients. Ce nom apparaît dans le journal et les logs SQL, le cas échéant, et permet de déboguer le workflow lors de sa configuration.

Premières et dernières activités

  • Commencez toujours votre workflow par une activité Début ou une activité Planificateur. Lorsque cela est pertinent, vous pouvez également utiliser une activité Signal externe.

  • Lors de la construction de votre workflow, n'utilisez qu'une seule **** activité Planificateur par branche. Si une même branche d'un workflow comporte plusieurs planificateurs (liés les uns aux autres), le nombre de tâches à exécuter sera multiplié de manière exponentielle, ce qui surchargerait considérablement la base. Cette règle s’applique également à toutes les activités comportant un onglet Planification & historique. En savoir plus sur la planification.

  • Utilisez des activités Fin dans tous vos workflows. Cela permet à Adobe Campaign de libérer l’espace temporaire utilisé pour réaliser les calculs dans les workflows. Voir à ce sujet la section Début et Fin.

Code JavaScript dans une activité

Vous souhaiterez peut-être ajouter du code JavaScript lors de l'initialisation d'une activité de workflow. Vous pouvez le faire dans l'onglet Avancé d'une activité.

Pour repérer plus facilement le workflow, il est conseillé d'utiliser deux tirets avant et après le libellé de l'activité, comme dans l'exemple suivant : – Mon libellé --.

Signal

La plupart du temps, vous ne saurez pas d'où vient l'appel d'un signal. Pour éviter ce problème, utilisez le champ Commentaire de l'onglet Avancé de l'activité de signal pour documenter l'origine attendue d'un signal pour l'activité en question.

Mise à jour des workflows

Un workflow de production ne doit pas être directement mis à jour. À moins que le processus consiste à créer une opération avec des modèles de workflow, les processus doivent être d'abord testés dans un environnement de développement. Après validation, le workflow peut être déployé et démarré en production.

Effectuez tous les tests dans les environnements de développement ou d’évaluation, et non dans les environnements de production, où les performances ne peuvent pas être garanties.

Les workflows archivés peuvent être conservés sur des plateformes de développement ou de test, dans un dossier Archivé. Un environnement de production doit en revanche rester aussi propre que possible. Les anciens workflows doivent être supprimés de l'environnement de production s'ils sont inactifs.

Sur cette page