Show Menu
SUJETS×

Exécuter un workflow

Vous trouverez dans cette section des instructions pour résoudre des problèmes relatifs à l'exécution des workflows.

Démarrer un workflow

Un workflow est toujours démarré manuellement. Au démarrage, il peut toutefois rester inactif en fonction des informations spécifiées par le biais d'un planificateur (voir Planificateur ) ou d'une planification d'activité.
Les actions relatives à l'exécution du workflow de ciblage (lancement, arrêt, pause, etc.) sont des processus asynchrones : la commande est enregistrée et sera effective dès que le serveur sera disponible pour l'appliquer.
La barre d'outils permet de lancer et suivre l'exécution du workflow.
La liste des options disponibles dans le menu Actions et le menu contextuel sont présentées dans les sections suivantes.

Barre d'outils des actions

Les boutons de la barre d'outils sont décrits dans cette section . Le bouton Actions vous donne accès à des options d'exécution supplémentaires permettant d'agir individuellement sur le ou les workflows sélectionnés. Vous pouvez également utiliser le menu Fichier > Actions ou cliquer avec le bouton droit sur un workflow et sélectionner Actions .
  • Début
    Cette action permet de lancer l'exécution d'un workflow : un workflow Terminé , En édition ou En pause passe alors en état Démarré . Le moteur de workflow va prendre en charge l'exécution de ce workflow. Si le workflow était en pause, il s'agit d'une reprise, sinon il s'agit d'un démarrage et les activités initiales sont alors activées.
    Le démarrage est un processus asynchrone : la demande est enregistrée et sera traitée dès que possible par un serveur de workflow.
  • Pause
    Cette action a pour effet de passer le workflow En pause . Aucune activité ne sera activée jusqu'à la prochaine reprise mais les opérations en cours ne seront pas suspendues.
  • Stopper
    Cette action arrête un workflow en cours d'exécution : l'instance passe alors en état Terminé . Les opérations en cours sont interrompues, si possible. Les imports ou requêtes SQL en cours sont immédiatement annulées.
    L'arrêt est un processus asynchrone. La demande est enregistrée, puis le ou les serveurs de workflow vont annuler les opérations en cours. L'arrêt d'une instance peut donc prendre un certain temps, notamment si le workflow est distribué sur plusieurs serveurs : chacun des serveurs doit prendre la main pour annuler les tâches en cours.
  • Redémarrer
    Cette action consiste à arrêter puis démarrer un workflow. Dans la plupart des cas, elle permet de redémarrer plus vite. Elle est également utile pour automatiser le redémarrage lorsque l'arrêt prend un certain temps : en effet la commande 'Démarrer' n'est disponible que lorsque l'arrêt est effectif.
    Les actions Démarrer / Pause / Stopper / Redémarrer sont également disponibles via les icônes d'exécution de la barre d'outils. Voir à ce sujet cette section .
  • Purge de l'historique
    Cette action vous permet de purger l'historique du workflow. Voir à ce propos la section Purger l'historique .
  • Démarrer en mode simulation
    Cette option permet de démarrer le workflow, non pas en mode réel, mais en mode simulation. Lorsque vous activez ce mode, seules les activités n'ayant pas d'impact sur la base ni sur le système de fichiers sont exécutées, par exemple les activités de type Requête , Union , Intersection , etc. Les activités ayant un impact ( Export , Import , etc) ainsi que celles qui leur succèdent (dans la même branche) ne sont pas exécutées.
  • Traitement anticipé des tâches en attente
    Cette action permet de lancer dès que possible toutes les tâches en attente. Si vous souhaitez lancer une tâche particulière, cliquez avec le bouton droit sur l'activité correspondante et sélectionnez Traitement anticipé de la (des) tâche(s) .
  • Arrêt inconditionnel
    Lorsque cette option est sélectionnée, l'état du workflow passe à Terminé . Cette action ne doit être utilisée qu'en dernier recours, lorsqu'un arrêt normal ne fonctionne pas après plusieurs minutes. N'utilisez l'arrêt inconditionnel que si vous êtes sûr qu'il n'y a aucun traitement réel en cours sur le workflow.
    Cette option est réservée à un utilisateur expert.
  • Sauver comme modèle
    Cette action crée un nouveau modèle de workflow à partir du workflow sélectionné. Vous devez indiquer son dossier d'enregistrement (dans le champ Dossier ).
    Les options Mettre à jour en masse les lignes sélectionnées et Fusionner les lignes sélectionnées sont des options génériques de la plateforme disponibles dans tous les menus Actions . Voir à ce sujet cette section .

Menu contextuel

Lorsqu'une ou plusieurs activités d'un workflow sont sélectionnées, vous pouvez cliquer avec le bouton droit de la souris afin d'agir sur votre sélection.
Les options disponibles dans le menu contextuel sont les suivantes :
Ouvrir : cette option permet d'accéder aux propriétés de l'activité.
Afficher le journal : cette option permet de visualiser le journal d'exécution des tâches de l'activité sélectionnée. Voir la section Afficher le journal .
Traitement anticipé de la (des) tâche(s) : cette action permet de lancer dès que possible la ou les tâches en attente de l'activité.
Redémarrage du workflow à partir d'une tâche : cette option permet de redémarrer le workflow en utilisant les résultats précédemment stockés pour cette activité.
Couper/Copier/Coller/Supprimer : ces options permettent de couper, copier, coller et supprimer les activités.
Copier en tant qu'image : cette option permet d'effectuer une capture d'écran de l'ensemble des activités.
Exécution normale / Activer mais ne pas exécuter / Ne pas activer : ces options sont également disponibles dans l'onglet Avancé des propriétés de l'activité. Elles sont présentées dans la section Exécution .
Enregistrer/Annuler : permet d'enregistrer ou d'annuler les modifications effectuées sur le workflow.
Vous pouvez sélectionner un groupe d'activités pour leur appliquer une de ces commandes.
Le menu contextuel est également présenté dans cette section .

Cycle de vie d'un workflow

Le cycle de vie d'un workflow comporte trois grandes étapes.
  • En édition
    C'est la phase de conception initiale : lorsqu'un nouveau workflow est créé, il est en état d'édition. Un tel workflow n'est pas encore pris en charge par le serveur, il peut donc être modifié sans risque.
  • Démarré
    Une fois la phase de conception terminée, le workflow peut être démarré. Dans cette phase, l'instance est prise en charge par le serveur, les tâches élémentaires sont exécutées. Le workflow peut encore être modifié, mais avec certaines précautions.
  • Terminé
    Un workflow est terminé lorsqu'il n'a plus de tâche en cours ou lorsqu'un opérateur a arrêté explicitement l'instance.
Par exemple, dans le workflow ci-dessous, les activités Début et Diffusion sont entourées tandis que l'activité Validation clignote.
Cela signifie que les deux premières activités ont été exécutées avec succès et que la validation est en cours, c'est-à-dire que l'activité est créée mais pas encore complétée.
Les caractères 574 - Ok affichés au-dessus de la transition suivant l'activité Diffusion signifient que la préparation de la diffusion a ciblé 574 destinataires et que l'opération s'est déroulée correctement. Ces informations, ajoutées sur les transitions au moment de l'exécution, sont calculées par les activités traitant des données.
Le workflow est donc démarré et attend la décision d'un opérateur du groupe spécifié dans l'activité Validation . Les opérateurs du groupe ayant un email ou un numéro de téléphone mobile renseigné sont notifiés via ce média.
La gestion des opérateurs est présentée dans cette section .
Pour plus d'informations sur la manière de surveiller vos workflows, voir cette section .

Cycle de vie des données

Table de travail

Dans un workflow, les données véhiculées d'une activité à l'autre sont stockées dans une table de travail temporaire.
Ces données peuvent être affichées et analysées à partir du bouton droit de la souris sur la transition visée.
Sélectionnez pour cela le menu correspondant :
  • Afficher la cible
    Ce menu affiche les données relatives à la population de la cible ainsi que la structure de la table de travail (onglet Schéma ).
    Voir à ce sujet la section Tables de travail et schémas des workflows .
  • Analyser la cible
    Ce menu permet d'accéder à l'assistant d'analyse descriptive qui permet de produire des statistiques et des rapports sur les données de la transition.
    Voir à ce propos cette section .
Les données de la cible sont purgées au fur et à mesure de l'exécution du workflow. Seule la dernière table de travail est accessible. Vous pouvez paramétrer le workflow pour que toutes les tables de travail restent accessibles. Pour cela, cochez l'option Conserver le résultat des populations intermédiaires entre deux exécutions dans les propriétés du workflow.
Toutefois, l'activation de cette option est à éviter lorsque les données manipulées sont volumineuses.

Données de la cible

Les données stockées dans la table de travail du workflow sont accessibles notamment dans les champs de personnalisation.
Vous pouvez ainsi utiliser dans une diffusion des données collectées via une liste ou à partir des réponses fournies à un questionnaire. Pour cela, utilisez la syntaxe suivante :
%= targetData.FIELD %

Les éléments de personnalisation de type Extension de la cible (targetData) ne sont disponible que dans le cadre des workflows de ciblage. Ainsi, la cible de la diffusion doit être construite dans le workflow et spécifiée dans la transition entrante de la diffusion.
Si vous souhaitez créer des BAT pour les diffusions, la cible des BAT doit alors être construite selon le mode Substitution des adresses , afin que les données de personnalisation puissent être renseignées. Voir à ce propos cette section .
Dans l'exemple suivant, nous allons collecter dans une liste des informations relatives à des clients qui seront utilisées dans un mail personnalisé.
Les étapes sont les suivantes :
  1. Créez un workflow afin de collecter les informations, les réconcilier avec celles de la base puis lancer une diffusion.
    Dans notre exemple, le contenu du fichier est le suivant :
    Music,First name,Last name,Account,CD/DVD,Card
    Pop,David,BLAIR,4323,CD,0
    Rock,Daniel,ARCARI,3222,DVD,1
    Disco,Uma,ALTON,0488,DVD,0
    Jazz,Paul,BOLES,6475,CD,1
    Jazz,David,BOUKHARI,0841,DVD,1
    [...]
    
    
    L'activité de chargement de fichier est paramétrée comme suit :
  2. Paramétrez l'activité de type Enrichissement afin de réconcilier les données collectées avec celles de la base Adobe Campaign.
    Ici, la clé de réconciliation est le numéro de compte :
  3. Configurez ensuite la Diffusion : elle est créée depuis un modèle et les destinataires sont ceux spécifiés par la transition entrante.
    Seules les données contenues dans la transition peuvent être utilisées pour personnaliser la diffusion. Les champs de personnalisation de type targetData ne sont disponibles que pour la population en entrée de l'activité Diffusion .
  4. Dans le modèle de diffusion, utilisez les champs collectés dans le workflow.
    Pour cela, insérez des champs de personnalisation de type Extension de la cible .
    Ici, nous allons insérer le genre musical favori du client, ainsi que le type de support privilégié (CD ou DVD), tels qu'ils sont indiqués dans le fichier collecté via le workflow.
    En complément, nous ajouterons une promotion réservée aux porteurs de la carte de fidélité, soit ceux pour lesquels la valeur 'Carte' est égale à 1.
    Les données de type Extension de la cible (targetData) sont insérées dans les diffusions selon les mêmes caractéristiques que tous les champs de personnalisation. Elles peuvent ainsi par exemple être utilisées dans l'objet du message, les libellés des liens ou les liens eux-mêmes, etc.
    Les messages adressés aux destinataires collectés contiendront donc les données suivantes :

Définir les validations

Les validations permettent à des opérateurs de prendre des décisions à certaines étapes d'un workflow ou de confirmer la poursuite d'un traitement.
Un message est envoyé à un groupe d'opérateurs et le workflow attend une réponse pour poursuivre le traitement qui suit la validation. Le workflow n'est pas bloqué et peut effectuer d'autres opérations en l'attente d'une réponse. Il peut donc, par exemple, y avoir plusieurs validations simultanées en attente.
Une validation peut proposer plusieurs choix : l'opérateur devra sélectionner une option parmi les choix possibles. Cependant, il est possible de n'autoriser qu'un seul choix dans le but de soumettre une tâche à réaliser à un opérateur, par exemple effectuer un ciblage : l'opérateur répond lorsque la tâche est réalisée (puis le processus se poursuit). L'exemple ci-dessous illustre les deux types de validations :
Dans les opérations, toutes les étapes qui nécessitent une validation fonctionnent sur le même principe.
Des exemples de validations sont proposés dans cette section .
Pour répondre, l'opérateur dispose de deux modes : valider via la page web dont l'URL est fournie dans l'email envoyé, ou valider directement depuis la console.
Une fois la réponse enregistrée, elle ne peut plus être modifiée.

Envoi d'emails

Il est possible de recevoir un message de validation qui contient un lien vers une page Web permettant de répondre. Pour le recevoir l'opérateur ciblé doit renseigner son adresse email dans son profil. Dans le cas contraire, il devra passer par la console pour répondre.
La gestion des opérateurs est présentée dans cette section .
L'envoi des emails de validation se fait grâce à une diffusion au fil de l'eau. Le modèle de diffusion par défaut est notifyAssignee  : il est enregistré dans le dossier Administration > Gestion de campagne > Modèles des diffusions techniques . Ce modèle peut être personnalisé, mais il est recommandé d'en faire une copie et de changer de modèle pour chaque activité.
Les diffusions créées depuis ce modèle sont stockées dans le dossier Administration > Exploitation > Objets créés automatiquement > Diffusions techniques > Notifications de workflow .

Validation depuis la console

Dans les opérations, les éléments à valider sont affichés dans le tableau de bord de l'opération.
Pour les workflows techniques, les tâches que l'utilisateur peut valider sont accessibles depuis l'arborescence en sélectionnant le dossier Administration > Exploitation > Objets créés automatiquement > Validations en attente .

Groupes

Une validation est assignée à un groupe d'opérateurs, un opérateur unique ou un ensemble d'opérateurs sélectionnés au travers d'une condition de filtrage.
  1. Pour une validation simple, la tâche est terminée dès qu'un opérateur a répondu. Tout autre opérateur qui essayera de répondre recevra alors un message lui signalant que quelqu'un d'autre a déjà répondu.
  2. Pour les validations multiples, voir la section Validation multiple .
Les groupes d'opérateurs destinés aux validations doivent être conçus comme des rôles ou des fonctions plutôt que des personnes nommées. Par exemple, un groupe "Responsable budget campagne" est plus pertinent que "Equipe Martine". Il est conseillé d'avoir toujours au moins deux personnes dans un groupe pour valider une tâche, afin qu'en cas d'absence, une personne puisse toujours répondre.

Expirations

Les expirations sont des transitions particulières que l'on retrouve sur différents types d'activités mais qui sont surtout utilisées pour les validations. Une expiration permet de déclencher une action après un certain délai si personne n'a répondu, ou de continuer l'exécution du workflow (et par exemple assigner une validation à un groupe différent).
Le deuxième onglet des propriétés de l'activité de validation permet de définir une ou plusieurs expirations. En effet, vous pouvez définir plusieurs types d'expiration.
Pour ajouter une nouvelle expiration, cliquez sur le bouton Ajouter . Une transition est ajoutée pour chacune des expirations créées. Vous pouvez :
  • soit modifier les paramètres usuels directement depuis la liste en cliquant sur une cellule (ou en appuyant sur la touche F2),
  • soit éditer l'expiration en cliquant sur le bouton Détail... .
Il n'est pas nécessaire d'ordonner les expirations, elles seront traitées par ordre chronologique.
L'option Ne pas terminer la tâche laisse la validation active une fois le délai expiré. Ce mode de fonctionnement permet de gérer des relances tout en laissant la validation active : les opérateurs ont toujours la possibilité de répondre. Cette option est désactivée par défaut : lorsque le délai est expiré la tâche est terminée et les opérateurs ne peuvent plus répondre.
Vous pouvez créer quatre types d'expirations :
  • Délai après le début de la tâche : l'expiration est calculée en ajoutant une durée que vous spécifiez à la date d'activation de la validation.
  • Délai après une date donnée : l'expiration est calculée en ajoutant une durée à une date que vous spécifiez.
  • Délai avant une date donnée : l'expiration est calculée en soustrayant une durée à une date que vous spécifiez.
  • Expiration calculée par script : l'expiration est calculée à partir d'un script JavaScript.
    L'exemple suivant calcule une expiration 24 heures avant la date de démarrage d'une diffusion (identifiée par vars.deliveryId ) :
    var delivery = nms.delivery.get(vars.deliveryId)
    var expiration = delivery.scheduling.contactDate
    var oneDay = 1000*60*60*24
    expiration.setTime(expiration.getTime() - oneDay)
    return expiration
    
    

Validation multiple

La validation multiple permet à tous les opérateurs validants de répondre. Une transition est activée pour chaque réponse.
La validation multiple est utile pour des mécanismes de votes ou de sondages. Il est possible de compter les réponses, puis de traiter le résultat du vote après un délai donné en ajoutant une expiration.

Droits requis

Les opérateurs d'un groupe doivent avoir au minimum les droits suivants pour répondre à une demande de validation :
  • Droit en lecture sur le workflow.
  • Droit en lecture et en écriture sur le dossier des tâches à valider.
Le groupe 'Exécution des workflows' possède ces droits. Pour qu'un opérateur puisse répondre à une demande de validation, il suffit donc de l'ajouter à ce groupe.

Architecture

Les workflows sont pris en charge par un module spécifique. Ce module peut être démarré sur plusieurs serveurs afin de répartir la charge d'exécution.
  • Le processus 'Workflow Instance Runner' (runwf) exécute toutes les tâches d'une instance de workflow donnée. Lorsqu'il n'y a plus de tâche à exécuter dans l'immédiat, ce processus devient passif, c'est-à-dire qu'il sauvegarde son état dans la base de données puis s'arrête.
  • Le module 'Workflow Server' (wfserver) surveille les instances de workflow en cours. Lorsqu'il y a une tâche à effectuer, ce module crée un processus pour activer (ou réactiver) l'instance correspondante.
Lorsque un opérateur commande une action sur un workflow (démarrer, arrêter, mettre en pause, etc.), l'action n'est pas exécutée immédiatement par le module 'nlserver', mais placée dans une file d'attente pour être traitée par un module de workflow.