Utilisation des schémas gs-ac-schemas
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.
Syntaxe des schémas syntax-of-schemas
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>
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 identification-of-a-schema
Un schéma de données est identifié par son nom et son espace de noms.
Un espace de noms vous permet de regrouper un ensemble de schémas par domaine d’intérêt. Par exemple, l’espace de noms cus est utilisé pour la configuration spécifique aux clientes et clients (clients).
Espaces de noms réservés reserved-namespaces
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 create-or-extend-schemas
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 Étendre 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 directement créer un schéma personnalisé.
Pour plus d’informations, consultez la section Créer un nouveau 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 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"/>
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 défini sur la valeur true.
En outre, dans le cadre d’un Déploiement Enterprise (FFDA), utilisez l’attribut @autouuid et définissez-le 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 @autopk ou @autouuid créer une clé primaire par défaut nommée « id », on définit ici la clé primaire « householdId ».
En savoir plus sur les clés dans cette section.
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. 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 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.
Pour plus d'informations à ce sujet, consultez cette section.