Show Menu
SUJETS×

A propos de l’édition de schéma

Dans Adobe Campaign, les schémas de données permettent de :
  • définir la façon dont les objets de l'application sont liés à des tables de la base de données ;
  • définir des liens entre les différents objets de l'application ;
  • définir et décrire les champs individuels inclus dans chaque objet.
Pour une meilleure compréhension des tables intégrées de Campaign et de leur interaction, voir la section Modèle de données Campaign Classic .

Extension ou création de schémas

Pour ajouter un champ, un index ou tout autre élément à l'un des schémas d'usine d'Adobe Campaign, comme la table des destinataires (nms:recipient), vous devez étendre ce schéma. Voir à ce sujet la section Extension d’un schéma .
Pour ajouter un nouveau type de données qui n'existe pas par défaut dans Adobe Campaign (une table des contrats par exemple), vous pouvez directement créer un schéma personnalisé. Voir à ce sujet la section Schémas de données .
Une fois que vous avez créé une extension ou un nouveau schéma, il est recommandé de définir les éléments de son contenu XML dans l'ordre ci-dessous.

Enumérations

Les énumérations sont définies avant l'élément principal du schéma. Elles permettent d'afficher des valeurs dans une liste afin de restreindre les choix de l'utilisateur pour un champ donné.
Exemple:
<enumeration basetype="byte" name="exTransactionTypeEnum" default="store">
<value label="Website" name="web" value="0"/>
<value label="Call Center" name="phone" value="1"/>
<value label="In Store" name="store" value="2"/>
</enumeration>

Quand vous définissez des champs, vous pouvez ensuite utiliser cette énumération de la façon suivante :
<attribute desc="Type of Transaction" label="Transaction Type" name="transactionType" 
type="string" enum="exTransactionTypeEnum"/>

Vous pouvez également ajouter des énumérations gérées par l'utilisateur (accessibles depuis le noeud Administration > Platform ) pour spécifier les valeurs d'un champ donné. Cela peut être judicieux si vous envisagez d'utiliser votre énumération en dehors du schéma sur lequel vous travaillez.
Pour en savoir plus sur les énumérations, consultez les sections Enumérations et <enumeration> .

Index

Les index sont les premiers éléments déclarés à partir de l'élément principal du schéma.
Ils peuvent être uniques ou non et référencer un ou plusieurs champs.
Exemples:
<dbindex name="email" unique="true">
  <keyfield xpath="@email"/>
</dbindex>

<dbindex name="lastNameAndZip">
  <keyfield xpath="@lastName"/>
  <keyfield xpath="location/@zipCode"/>
</dbindex>

L'attribut xpath pointe vers le champ de votre schéma que vous souhaitez indexer.
Les index permettent d'optimiser les performances des requêtes SQL en termes de lecture mais aussi d'écriture. Ils doivent donc être utilisés avec précaution.
Pour en savoir plus sur les index, consultez la section Champs indexés .

Clés

Chaque table doit posséder au moins une clé. Celle-ci est souvent définie automatiquement dans l'élément principal du schéma au moyen de l'attribut @autopk avec la valeur "true".
La clé primaire peut également être définie au moyen de l'attribut internal .
Exemple:
<key name="householdId" internal="true">
  <keyfield xpath="@householdId"/>
</key>

Dans cet exemple, au lieu de laisser l'attribut @autopk créer une clé primaire par défaut nommée "id", on définit ici la clé primaire "householdId".
Lors de la création ou de l’extension d’un schéma, vous devez conserver la valeur de la séquence de la clé primaire (@pkSequence) pour l’ensemble du schéma.
Pour en savoir plus sur les clés, consultez la section Gestion des clés .

Attributs (champs)

Les attributs permettent de définir les champs composant votre objet de données. Utilisez le bouton Insérer de la barre d'outils d’édition du schéma pour ajouter les modèles d’attribut vides dans votre XML, à l’endroit où se trouve votre curseur. Voir à ce sujet la section Schémas de données .
La liste complète des attributs est disponible dans la section <attribute> . Voici quelques-uns des attributs les plus utilisés :
  • @advanced
  • @dataPolicy
  • @default
  • @desc
  • @enum
  • @expr
  • @label
  • @length
  • @name
  • @notNull
  • @required
  • @ref
  • @xml
  • @type
    Pour obtenir le tableau répertoriant les correspondances des types de données générés par Adobe Campaign pour les différents systèmes de gestion de base de données, consultez la section Correspondance des types de données Adobe Campaign/SGBD .
Pour en xavoir plus sur chaque attribut, consultez la section Description des attributs .

Exemples

Exemple de définition d'une valeur par défaut :
<attribute name="transactionDate" label="Transaction Date" type="datetime" default="GetDate()"/>

Exemple d'utilisation d'un attribut commun en tant que modèle pour un champ également marqué comme obligatoire :
<attribute name="mobile" label="Mobile" template="nms:common:phone" required="true" />

Exemple de champ calculé masqué au moyen de l'attribut @advanced :
<attribute name="domain" label="Email domain" desc="Domain of recipient email address" expr="GetEmailDomain([@email])" advanced="true" />

Exemple de champ XML également stocké dans un champ SQL et qui a un attribut @dataPolicy :
<attribute name="secondaryEmail" label="Secondary email address" length="100" xml="true" sql="true" dataPolicy="email" />

Alors que la plupart des attributs sont associés selon une cardinalité 1-1 à un champ physique de la base de données, ce n'est pas le cas pour les champs XML ni les champs calculés. Un champ XML est stocké dans un champ memo ("mData") de la table. Un champ calculé en revanche est créé dynamiquement chaque fois qu'une requête est lancée ; il n'existe donc que dans la couche applicative.

Suivi

Il peut être utile d'ajouter à la fin de votre schéma un élément de suivi.
Procédez comme dans l'exemple ci-dessous pour inclure les champs relatifs à la date de création, à l'utilisateur qui a créé la donnée, à la date et à l'auteur de la dernière modification pour toutes les données de votre table :
<element aggregate="xtk:common:auditTrail" name="auditTrail"/>

Mettre à jour la structure de la base de données

Une fois vos modifications effectuées et enregistrées, toutes celles affectant la structure SQL doivent être appliquées. Pour cela, vous devez lancer l'assistant de mise à jour de la base de données.
Lorsque les modifications n'ont aucun impact sur la structure de la base de données, vous devez uniquement régénérer les schémas. Pour ce faire, sélectionnez le ou les schémas à mettre à jour, cliquez avec le bouton droit et sélectionnez Actions > Régénérer les schémas sélectionnés... . Voir à ce sujet la section Régénération des schémas .