À propos de l’édition de schéma about-schema-edition
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, consultez cette section.
Extension ou création de schémas extending-or-creating-schemas
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.
Énumérations enumerations
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"/>
Pour en savoir plus sur les énumérations, consultez les sections Enumérations et <enumeration>
Elément.
Index 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.
Pour en savoir plus sur les index, consultez la section Champs indexés.
Clés keys
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 ».
Pour en savoir plus sur les clés, consultez la section Gestion des clés.
Attributs (champs) attributes--fields-
Les attributs vous permettent de définir les champs qui constituent votre objet de données. Vous pouvez utiliser le bouton Insérer dans la barre d’outils d’édition du schéma pour déposer les modèles d’attribut vides dans le XML 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>
Elément. 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 examples
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" />
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.
Liens links
Les liens sont parmi les derniers éléments de l'élément principal de votre schéma. Ils définissent comment les différents schémas de votre instance sont associés les uns aux autres.
Les liens sont déclarés dans le schéma qui contient la clé étrangère de la table à laquelle il est lié.
Il existe trois types de cardinalité : 1-1, 1-N et N-N. C'est le type d'association 1-N qui est utilisé par défaut.
Exemples examples-1
Exemple de relation 1-N entre la table des destinataires (schéma d'usine) et une table des transactions personnalisée :
<element label="Recipient" name="lnkRecipient" revLink="lnkTransactions" target="nms:recipient" type="link"/>
Exemple de relation 1-1 entre un schéma personnalisé "Car" (dans l'espace de noms "cus") et la table des destinataires :
<element label="Car" name="lnkCar" revCardinality="single" revLink="recipient" target="cus:car" type="link"/>
Exemple d'une jointure externe entre la table des destinataires et une table des adresses reposant sur l'adresse email et non une clé primaire :
<element name="emailInfo" label="Email Info" revLink="recipient" target="nms:address" type="link" externalJoin="true">
<join xpath-dst="@address" xpath-src="@email"/>
</element>
« xpath-dst » correspond ici à la clé primaire dans le schéma cible et « xpath-src » à la clé étrangère dans le schéma source.
Journal d’audit audit-trail
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 updating-the-database-structure
Une fois vos modifications apportées et enregistrées, toutes les modifications susceptibles d'avoir un impact sur la structure SQL doivent être appliquées à la base de données. Pour ce faire, utilisez l'assistant de mise à jour de la base de données.
Voir à ce sujet la section Mettre à jour la structure de la base de données.