Bonnes pratiques relatives aux workflows workflow-best-practices
Exécution et performance execution-and-performance
Vous trouverez ci-dessous des instructions générales pour l’optimisation des performances de Campaign, notamment des bonnes pratiques à appliquer à vos workflows.
Des instructions de dépannage relatives à l’exécution des workflows sont également disponibles dans le Guide de production de Campaign Classic v7.
Logs 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, en particulier pour les activités exécutées fréquemment, dans la mesure où elle peut surcharger les logs et accroître considérablement la taille de la table des logs. Cependant, il se peut que la méthode logInfo() ne soit pas suffisante.
Deux autres solutions sont proposées :
-
Conserver le résultat des populations intermédiaires entre deux exécutions
Cette option permet de conserver des tables temporaires entre deux exécutions d'un workflow. Elle est disponible dans l'onglet Général des propriétés du workflow et peut être utilisée à des fins de développement et de test pour surveiller les données et vérifier les résultats. Vous pouvez utiliser cette option dans les environnements de développement, mais ne l'utilisez jamais dans les environnements de production. La conservation des tables temporaires peut entraîner une augmentation significative de la taille de la base de données et, par la suite, l'atteinte de la limite de taille. De plus, cela ralentira la sauvegarde.
Seules les tables de travail de la dernière exécution du workflow sont conservées. Les tables de travail des exécutions précédentes sont purgées par le workflow de nettoyage qui s’exécute tous les jours.
note caution CAUTION 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 workflow-planning
- 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.
Option exécuter dans le moteur execute-in-the-engine-option
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 workflow-properties
Dossiers des workflows workflow-folders
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 workflow-naming
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 workflow-severity
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 workflow-monitoring
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. Pour plus d'informations, consultez la section Gérer les erreurs.
Vérifiez régulièrement l’onglet Supervision pour connaître le statut des workflows actifs. Pour plus d'informations, consultez 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 using-activities
Attribution d'un nom à une activité name-of-the-activity
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 aux activités 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 first-and-last-activities
-
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é javascript-within-an-activity
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 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 workflow-update
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.