Show Menu
SUJETS×

Automatiser via les workflows

Activité Gestion de contenu

La création, l'édition et la publication d'un contenu peuvent être automatisées à partir d'un workflow paramétré depuis l'interface cliente Adobe Campaign.
L'activité Gestion de contenu est accessible à partir de la barre d'outils Outils du diagramme de workflow.
Les propriétés de l'activité se divisent en quatre étapes :
  • Contenu : permet de renseigner un contenu déjà existant ou de le créer,
  • Mettre à jour du contenu : permet de modifier le sujet du contenu ou de mettre à jour le contenu à partir d'un flux de données XML,
  • Action à effectuer : permet d'enregistrer ou de générer le contenu,
  • Transition : permet de générer ou non une transition sortante et, si elle existe, de la nommer.

Content

  • Spécifié par la transition
    Le contenu à utiliser a été créé précédemment, les traitements porteront sur l'instance de contenu propagée par l'événement entrant. L'identifiant du contenu est accessible à partir de la variable "contentId" de l'événement.
  • Explicite
    Permet de choisir un contenu déjà créé.
  • Calculé par un script
    Choisit une instance de contenu à partir d'un template JavaScript, le code à évaluer permet de récupérer l'identifiant du contenu.
  • Nouveau, créé depuis un modèle de publication
    Crée un nouveau contenu depuis un modèle de publication. L'instance de contenu sera enregistrée dans le dossier "Chaîne" renseigné.

Mettre à jour le contenu

  • Objet
    Permet de modifier le sujet de l'action de diffusion lors d'une publication.
  • Accès aux données provenant d'un flux XML
    Le contenu est mis à jour à partir d'un flux XML provenant d'une source externe. Une URL doit être renseignée pour le téléchargement des données.
    Une feuille de style XSL peut être utilisée pour transformer les données XML entrantes.

Action à effectuer

  • Enregistrer
    Sauve le contenu créé ou modifié, l'identifiant du contenu sauvé est propagé dans la variable "contentId" de l'événement sortant.
  • Générer
    Génère les fichiers de sortie pour chacun des modèles de transformation dont le type de publication est "Fichier". La transition sortante est activée pour chacun des fichiers générés, avec pour paramètres l'identifiant du contenu sauvegardé dans la variable "contentId" et le nom du fichier dans la variable "filename".

Transition

L'option Générer une transition sortante permet d'ajouter une transition en sortie de l'activité de Gestion de contenu afin d'enchaîner l'exécution du workflow sur une nouvelle activité. Lorsque cette option est cochée, vous devez saisir le libellé de la transition.

Exemples

Automatiser la création et la diffusion d'un contenu

L'exemple suivant automatise la création et la diffusion d'un contenu.
Le contenu est paramétré à partir de l'activité Gestion de contenu, comme suit :
Une nouvelle instance de contenu est créée à partir du modèle de publication et du dossier chaîne de contenu.
Dans notre exemple, nous avons surchargé le sujet de la diffusion. Il sera pris en compte à la place de celui renseigné dans le modèle de diffusion de l'activité Diffusion .
Le contenu est complété automatiquement par un flux XML provenant de l'URL renseignée :
<?xml version='1.0' encoding='ISO-8859-1'?>
<book name="Content automation test" date="2008/06/08" language="eng" computeString="Content automation test">
  <section id="1" name="Introduction">
    <page>Introduction to input forms.</page>
  </section>
</book>

Le format de données ne correspond pas au schéma de données entré dans le modèle de publication ( cus:book dans notre exemple) ; l’élément <section> doit être remplacé par l’élément <chapter> . Il est nécessaire d’appliquer la feuille de style « cus:book-workflow.xsl » pour apporter les modifications nécessaires.
Code source de la feuille de style XSLT utilisée :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output indent="yes" method="xml"  encoding="ISO-8859-1"/>

 <xsl:template match="text()|@*"/>

  <xsl:template match="*">
    <xsl:variable name="element.name" select="name(.)"/>
    <xsl:element name="{$element.name}">
      <xsl:copy-of select="text()|@*"/>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>

  <xsl:template match="book">
  <book name="test">
     <xsl:apply-templates/>
    <book>
 </xsl:template>

  <xsl:template match="section">
    <chapter>
      <xsl:for-each select="@*">
        <xsl:copy-of select="."/>
      </xsl:for-each>
       <xsl:apply-templates/>
    </chapter>
  </xsl:template>
  
</xsl:stylesheet>

L'action finale de l'activité est d'enregistrer l'instance de contenu et continuer sur la tâche suivante.
Le ciblage de la population à diffuser est renseigné via l'activité Requête .
Une activité Rendez-vous a été ajoutée afin de ne lancer la diffusion qu'une fois le requêtage de la cible et la mise à jour du contenu terminés.
L'action de diffusion est paramétrée à partir de l'activité Diffusion :
Une nouvelle action de diffusion est créée depuis un modèle.
Le modèle de diffusion de l'activité est utilisé pour sélectionner les modèles de transformation du modèle de publication. La génération du contenu prendra en compte les modèles HTML et Texte sans modèle de diffusion associés ou référencés avec le même modèle que celui spécifié dans l'activité.
La cible à diffuser est renseignée à partir de l'événement entrant.
Le contenu de la diffusion est renseigné à partir de l'événement entrant.
L'action finale de l'activité est de préparer puis lancer la diffusion.

Créer un contenu et le publier ultérieurement

Cet exemple crée un contenu et ne lance la publication fichier qu'après un délai d'attente.
La première tâche Gestion de contenu crée une instance de contenu.
L'onglet Publication des modèles de transformation doit être renseigné avec la localisation de la cible à générer.
Une activité d'attente est ajoutée afin de suspendre la transition suivante pendant une semaine.
Le contenu est renseigné manuellement pendant ce délai.
La tâche suivante lance la génération du contenu.
Le contenu à publier est renseigné à partir de la transition entrante.
L'action finale est la génération de ce contenu en forçant le répertoire de publication.
L'activité Code JavaScript récupère le nom complet de chaque fichier généré.

Création de la diffusion puis de son contenu

Cet exemple reprend le principe du premier exemple, mais avec la création de l'action de diffusion en première étape.
La première tâche Création de diffusion crée l'action de diffusion.
L'activité de branchement permet de lancer en parallèle le calcul de la cible et la création de l'instance de contenu.
Une fois les tâches effectuées, la boite de rendez-vous active la tâche Diffusion pour lancer la diffusion créée précédemment sur le contenu et le ciblage.
L'action de diffusion à démarrer est renseignée à partir de la transition.
La cible à diffuser est renseignée à partir de l'événement entrant.
Le contenu de la diffusion est renseigné à partir de l'événement entrant.
L'action finale de l'activité est de préparer et de lancer la diffusion.

Import du contenu depuis FTP

Si le contenu de votre diffusion figure dans un fichier HTML qui se trouve sur un serveur FTP ou SFTP, vous pouvez facilement charger ce contenu dans les diffusions Adobe Campaign. Voir cet exemple .

Import du contenu depuis le connecteur Amazon Simple Storage Service (S3)

Si le contenu de votre diffusion figure dans un fichier HTML qui se trouve dans des compartiments Amazon Simple Storage Service (S3), vous pouvez facilement charger ce contenu dans les diffusions Adobe Campaign. Voir cet exemple .

Mise à jour semi-automatique

Les données d'un contenu peuvent être mises à jour en mode "semi-automatique". Les données sont récupérées à partir d'un flux XML provenant d'une URL.
L'activation de la récupération des données est réalisée manuellement à partir du formulaire de saisie.
L’objectif est de déclarer un champ de type editBtn <input> dans le formulaire. Ce contrôle comprend une zone de modification et un bouton permettant de lancer le traitement.
La zone d'édition permet de renseigner une donnée variable utilisée pour construire l'URL du flux XML de données à récupérer.
Le bouton exécute la méthode SOAP GetAndTransform renseignée sous la balise <input> .
La déclaration du contrôle dans le formulaire est la suivante :
<input type="editbtn" xpath="<path>">
  <enter>
    <soapCall name="GetAndTransform" service="ncm:content">
      <param exprIn="<url>" type="string"/>
      <param exprIn="'xtk:xslt|<style sheet>'" type="string"/>
      <param type="DOMElement" xpathOut="<output path>"/>
    </soapCall>
  </enter>
</input>

La méthode GetAndTransform doit être déclarée sous l’élément <enter> de la balise <input> . Cette balise prend comme paramètres l’URL de récupération des données XML d’une expression construite dynamiquement. Le deuxième paramètre de la fonction est facultatif et fait référence à une feuille de style utilisée pour une transformation intermédiaire lorsque les données XML entrantes ne sont pas au même format que le contenu.
La sortie met à jour le contenu à partir du chemin renseigné dans le dernier paramètre.
Exemple : Pour illustrer cette fonctionnalité, nous partirons du schéma "cus:livre".
On ajoute dans le formulaire de saisie un contrôle d'édition de mise à jour semi-automatique :
<input label="File name" type="editbtn" xpath="/tmp/@name">
  <enter>
    <soapCall name="GetAndTransform" service="ncm:content">
      <param exprIn="'https://server/incoming/' + [/tmp/@name] + '.xml'" type="string"/>
      <param exprIn="'xtk:xslt|cus:book-workflow.xsl'" type="string"/>
      <param type="DOMElement" xpathOut="."/>
    </soapCall>
  </enter>
</input>

La zone d'édition permet de renseigner le nom du fichier à récupérer. L'URL est construite à partir de ce nom, soit par exemple : https://server/incomin/data.xml
Le format des données à récupérer est le même que dans l'exemple 1 de l'automatisation des workflows. Nous utiliserons la feuille de style "cus:livre-workflow.xsl" vue dans cet exemple.
Le résultat de l'exécution du traitement met à jour l'instance de contenu à partir du chemin '.'.