À 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"/>
NOTE
Vous pouvez également ajouter des énumérations gérées par l'utilisateur (accessibles depuis le noeud Administration > Plateforme) 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>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.

IMPORTANT
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 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 ».

IMPORTANT
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) 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" />
IMPORTANT
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.

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.

NOTE
Lorsque les modifications n’ont pas d’impact sur la structure de la base de données, il vous suffit de 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… Pour plus d'informations, consultez la section Régénération des schémas.
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1