Utilisation des schémas

La structure physique et logique des données véhiculées dans l'application est décrite en XML et respecte une grammaire propre à Adobe Campaign appelée schéma.

Un schéma est un document XML associé à une table de la base de données, il définit la structuration des données et décrit la définition SQL de la table :

  • le nom de la table,
  • des champs ;
  • les liens avec les autres tables,

mais aussi la structure XML utilisée pour stocker les données :

  • Eléments et attributs
  • la hiérarchie entre les éléments,
  • les types des éléments et des attributs,
  • Les valeurs par défaut
  • les libellés, les descriptions et autres propriétés.

Les schémas servent à définir en base une entité. A chaque entité, correspond un schéma.

Dans Adobe Campaign, les schémas de données permettent de :

  • définir la façon dont les objets de données 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.

ATTENTION

Certains schémas Campaign prédéfinis comportent un schéma associé sur la base de données cloud. Ces schémas sont identifiés par l'espace de noms Xxl et ne doivent pas être modifiés ou étendus.

Syntaxe des schémas

L'élément racine du schéma est <srcschema>. Il contient les sous-éléments <element> et <attribute>.

Le premier sous-élément <element> correspond à la racine de l'entité.

<srcSchema name="recipient" namespace="cus">
  <element name="recipient">  
    <attribute name="lastName"/>
    <attribute name="email"/>
    <element name="location">
      <attribute name="city"/>
   </element>
  </element>
</srcSchema>
REMARQUE

L'élément racine de l'entité porte le nom du schéma.

Les balises <element> définissent les noms des éléments d'entité. Les balises <attribute> du schéma définissent les noms des attributs dans les balises <element> auxquelles elles ont été liées.

Identification d'un schéma

Un schéma de données est identifié par son nom et son espace de noms.

Un espace de noms permet de regrouper un ensemble de schémas par centres d'intérêt. Par exemple, on utilisera l'espace de noms cus pour le paramétrage spécifique aux clients (customers).

ATTENTION

Par convention, le nom de l'espace de noms doit être concis et ne comprendre que des caractères autorisés conformes aux règles de nommage des noms XML.

Les identifieurs ne doivent pas commencer par des caractères numériques.

Espaces de noms réservés

Certains espaces de noms sont réservés à la description des entités systèmes nécessaires au bon fonctionnement de l’application Adobe Campaign. L'espace de noms suivant ne doit pas être utilisé pour identifier un nouveau schéma, dans quelque combinaison majuscule/minuscule que ce soit :

  • xxl : réservé aux schémas de base de données cloud
  • xtk : réservé aux données du système de la plateforme
  • nl : réservé à l'utilisation globale de l'application
  • nms : réservé aux diffusions (destinataire, diffusion, tracking, etc.)
  • ncm : réservé à la gestion de contenu
  • temp : réservé aux schémas temporaires
  • crm : réservé à l'intégration des connecteurs CRM

La clé d'identification d'un schéma est une chaîne construite avec l'espace de noms et le nom séparés par le caractère ":", par exemple nms:recipient.

Création ou extension de schémas Campaign

Pour ajouter un champ ou tout autre élément à l'un des principaux schémas de données de Campaign, comme la table des destinataires (nms:recipient), vous devez étendre ce schéma.

Pour plus d’informations, consultez la section Extension d'un schéma.

Pour ajouter un tout nouveau type de données qui n'existe pas par défaut dans Adobe Campaign (une table des contrats par exemple), vous pouvez créer directement un schéma personnalisé.

Pour plus d’informations, consultez la section Création d'un schéma.

Une fois que vous avez créé ou étendu un schéma, il est recommandé de définir les éléments de son contenu XML dans l'ordre présenté ci-dessous.

Énumé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"/>
REMARQUE

Vous pouvez également ajouter des énumérations gérées par l'utilisateur (accessibles depuis le nœud 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.

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 des attributs @autouuid et autopk définis sur 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 @autouuid créer une clé primaire par défaut nommée "id", on définit ici la clé primaire "householdId".

ATTENTION

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.

En savoir plus sur les clés dans cette section.

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. En savoir plus dans cette section.

La liste complète des attributs est disponible dans la section consacrée aux éléments <attribute> de la documentation de Campaign Classic v7. Voici quelques-uns des attributs les plus utilisés : @advanced, @dataPolicy, @default, @desc, @enum, @expr, @label, @length, @name, @notNull, @required, @ref, @xml, @type.

Pour plus d'informations sur chaque attribut, consultez la description des attributs dans la documentation de Campaign Classic v7.

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" />
ATTENTION

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

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.

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

Pour plus d'informations à ce sujet, consultez cette section.

REMARQUE

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, faites un clic droit et sélectionnez Actions > Régénérer les schémas sélectionnés….

Sur cette page