v7
S’applique uniquement à Campaign Classic v7

Présentation de la structure du schéma schema-structure

La structure de base d’un schéma est décrite ci-dessous.

Schémas de données data-schema

Pour un <srcschema>, la structure est la suivante :

<srcSchema>
    <enumeration>
        ...          //definition of enumerations
    </enumeration>

    <element>         //definition of the root <element>    (mandatory)

        <compute-string/>  //definition of a compute-string
        <dbindex>
            ...        //definition of indexes
        </dbindex>
        <key>
            ...        //definition of keys
        </key>
        <sysFilter>
            ...           //definition of filters
        </sysFilter>
        <attribute>
            ...             //definition of fields
        </attribute>

            <element>           //definition of sub-<element>
                  <attribute>           //(collection, links or XML)
                  ...                         //and additional fields
                  </attribute>
                ...
            </element>

    </element>

        <methods>                 //definition of SOAP methods
            <method>
                ...
            </method>
            ...
    </methods>

</srcSchema>

Le document XML d'un schéma de données doit contenir l'élément racine <srcschema> avec les attributs name et namespace pour renseigner respectivement le nom du schéma et son espace de noms.

<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>

Pour illustrer la structure d'un schéma de données, nous partirons du contenu XML suivant :

<recipient email="John.doe@aol.com" created="2009/03/12" gender="1">
  <location city="London"/>
</recipient>

Avec son schéma de données correspondant :

<srcSchema name="recipient" namespace="cus">
  <element name="recipient">
    <attribute name="email"/>
    <attribute name="created"/>
    <attribute name="gender"/>
    <element name="location">
      <attribute name="city"/>
   </element>
  </element>
</srcSchema>

Description description

Le point d’entrée du schéma est son élément principal. Il est facile à identifier, car il porte le même nom que le schéma et il doit être l’enfant de l’élément racine. La description du contenu commence par cet élément.

Dans notre exemple, l'élément principal est représenté par la ligne :

<element name="recipient">

La variable <attribute> et <element> les éléments qui suivent l'élément principal sont utilisés pour définir l'emplacement et le nom des éléments de données dans la structure XML.

Soit dans notre schéma d'exemple :

<attribute name="email"/>
<attribute name="created"/>
<attribute name="gender"/>
<element name="location">
  <attribute name="city"/>
</element>

Les règles suivantes s’appliquent :

  • Chaque <element> et <attribute> doit être identifié par son nom à partir de l'attribut name.

    note important
    IMPORTANT
    Le nom de l’élément doit être concis, de préférence en anglais, et ne comprendre que les caractères autorisés dans les règles de nommage XML.
  • Seuls les éléments <element> peuvent contenir des éléments <attribute> et des éléments <element> dans la structure XML.

  • Un élément <attribute> doit être unique par son nom dans un <element>.

  • L'utilisation des <elements> sur les données de type chaîne multi-lignes est préconisée.

Types de données data-types

Le type de données est renseigné à partir de l'attribut type sur les éléments <attribute> et <element>.

Une liste complète est disponible dans la description de l'<attribute>élément et de l’<element>élément.

Lorsque cet attribut n’est pas renseigné, string est le type de données par défaut, sauf si l’élément contient des éléments enfants. Si tel est le cas, il est utilisé uniquement pour structurer les éléments de manière hiérarchique (élément <location> dans notre exemple).

Les types de données supportés dans un schéma sont les suivants :

  • string  : chaîne de caractères. Exemples : un prénom, une ville, etc.

    La taille peut être spécifiée via l'attribut length (optionnel, valeur par défaut "255").

  • boolean  : champ booléen. Exemples de valeurs possibles : vrai/faux, 0/1, oui/non, etc.

  • byte, short, long  : entiers (1 octet, 2 octets, 4 octets). Exemples : un age, un numéro de compte, un nombre de points, etc.

  • double  : nombre flottant à double précision. Exemples : un prix, un taux, etc.

  • date, datetime: dates et dates + heures. Exemples : une date de naissance, une date d'achat, etc.

  • datetimenotz  : date + heure sans données de fuseau horaire.

  • timespan  : durée. Exemple : l'ancienneté.

  • memo  : champ texte long (multi-lignes). Exemples : une description, un commentaire, etc.

  • uuid  : champ de type "uniqueidentifier" pour la prise en charge d’un GUID (pris en charge uniquement sous Microsoft SQL Server).

    note note
    NOTE
    Pour contenir un uuid champ dans SGBDR autre que Microsoft SQL Server, the newuuid() doit être ajoutée et complétée avec sa valeur par défaut.

Notre schéma d'exemple complété avec les types :

<srcSchema name="recipient" namespace="cus">
  <element name="recipient">
    <attribute name="email" type="string" length="80"/>
    <attribute name="created" type="datetime"/>
    <attribute name="gender" type="byte"/>
    <element name="location">
      <attribute name="city" type="string" length="50"/>
   </element>
  </element>
</srcSchema>

Correspondance des types de données Adobe Campaign/SGBD mapping-the-types-of-adobe-campaign-dbms-data

Le tableau suivant répertorie 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.

Adobe Campaign
PosgreSQL
Oracle
Chaîne
VARCHAR(255)
VARCHAR2 (NVARCHAR2 si unicode)
Booléen
SMALLINT
NUMBER(3)
Octet
SMALLINT
NUMBER(3)
Court
SMALLINT
NUMBER(5)
Double
DOUBLE PRECISION
FLOAT
Long
INTEGER
NUMBER(10)
Int64
BIGINT
NUMBER(20)
Date
DATE
DATE
Time
TIME
FLOAT
Datetime
TIMESTAMPZ
DATE
Datetimenotz
TIMESTAMPZ
DATE
Timespan
DOUBLE PRECISION
FLOAT
Memo
TEXT
CLOB (NCLOB si Unicode)
Blob
BLOB
BLOB

Propriétés properties

Les éléments <elements> et <attributes> du schéma de données peuvent être enrichis de diverses propriétés. Vous pouvez remplir un libellé afin de décrire l’élément actif.

Les libellés et les descriptions labels-and-descriptions

  • La propriété label permet de saisir une description courte.

    note note
    NOTE
    Le libellé est associé à la langue courante de l'instance.

    Exemple:

    code language-sql
    <attribute name="email" type="string" length="80" label="Email"/>
    

    Le libellé est affiché dans le formulaire de saisie de la console cliente Adobe Campaign :

  • La propriété desc permet de saisir une description longue.

    La description s'affiche dans le formulaire de saisie, dans la barre d'état de la fenêtre principale de la console cliente Adobe Campaign.

    note note
    NOTE
    La description est associée à la langue courante de l'instance.

    Exemple:

    code language-sql
    <attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
    

Les valeurs par défaut default-values

Utilisez la variable default pour définir une expression renvoyant une valeur par défaut lors de la création du contenu.

La valeur doit être une expression conforme au langage XPath. Pour plus d’informations, consultez la section Référencer avec XPath.

Exemple:

  • Date courante : default="GetDate()"

  • Compteur : default="'FRM'+CounterValue('myCounter')"

    Dans cet exemple, la valeur par défaut est construite à l'aide de la concaténation d'une chaîne et de l'appel de la fonction CounterValue avec un nom de compteur gratuit. Le nombre renvoyé est incrémenté d'une unité à chaque insertion.

    note note
    NOTE
    Dans la console cliente Adobe Campaign, accédez au Administration > Compteurs de l’Explorateur pour gérer les compteurs.

Pour associer une valeur par défaut à un champ, vous pouvez utiliser la variable <default> ou <sqldefault> champ .

<default> : vous permet de préremplir le champ avec une valeur par défaut lors de la création d’entités. La valeur ne sera pas une valeur SQL par défaut.

<sqldefault> : vous permet d'avoir une valeur ajoutée lors de la création d'un champ. Cette valeur s'affiche sous forme de résultat SQL. Lors de la mise à jour d'un schéma, seuls les nouveaux enregistrements seront affectés par cette valeur.

Énumérations enumerations

Enumération ouverte free-enumeration

La variable userEnum permet de définir une énumération ouverte pour stocker et afficher les valeurs renseignées à partir de ce champ.

La syntaxe est la suivante :

userEnum="name of enumeration"

Une liste déroulante énumère la liste de ces valeurs à partir du formulaire de saisie :

NOTE
Dans la console cliente Adobe Campaign, accédez au Administration > Enumérations de l’ Explorateur pour gérer les énumérations.

Énumération fixe set-enumeration

La propriété enum permet de définir une énumération fixe utilisée lorsque la liste des valeurs possibles est connue à l'avance.

L'attribut enum fait référence à la définition d'une classe d'énumération renseignée dans le schéma en dehors de l'élément principal.

Les énumérations permettent à l'utilisateur de sélectionner une valeur dans une liste déroulante au lieu de saisir cette valeur dans une zone de saisie classique :

Exemple de déclaration d'énumération dans le schéma de données :

<enumeration name="gender" basetype="byte" default="0">
  <value name="unknown" label="Not specified" value="0"/>
  <value name="male" label="male" value="1"/>
  <value name="female" label="female" value="2"/>
</enumeration>

Une énumération est déclarée en dehors de l'élément principal à partir de l'élément <enumeration>.

Les propriétés de l'énumération sont :

  • baseType: type de données associé aux valeurs
  • label: description de l’énumération
  • name: nom de l'énumération
  • default: valeur par défaut de l'énumération

Les valeurs de l'énumération sont déclarées dans l'élément <value> avec les attributs suivants :

  • name: nom de la valeur stockée en interne.
  • label: libellé affiché dans l'interface graphique

Enumération dbenum dbenum-enumeration

*Le dbenum permet de définir une énumération dont les propriétés sont similaires à celles de la propriété enum .

En revanche, l'attribut name ne stocke pas de valeur en interne, mais un code, ce qui permet d'étendre les tables concernées sans avoir à modifier leur schéma.

Cette énumération est utilisée par exemple, pour spécifier la nature des opérations.

Exemple example

Notre schéma d'exemple complété avec les propriétés :

<srcSchema name="recipient" namespace="cus">
  <enumeration name="gender" basetype="byte">
    <value name="unknown" label="Not specified" value="0"/>
    <value name="male" label="male" value="1"/>
    <value name="female" label="female" value="2"/>
  </enumeration>

  <element name="recipient">
    <attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
    <attribute name="created" type="datetime" label="Date of creation" default="GetDate()"/>
    <attribute name="gender" type="byte" label="gender" enum="gender"/>
    <element name="location" label="Location">
      <attribute name="city" type="string" length="50" label="City" userEnum="city"/>
   </element>
  </element>
</srcSchema>

des collections. collections

Une collection est une liste d'éléments de même nom et de même niveau hiérarchique.

L'attribut unbound avec la valeur "true" permet de renseigner un élément de collection.

Exemple  : définition de l'élément de collection <group> dans le schéma.

<element name="group" unbound="true" label="List of groups">
  <attribute name="label" type="string" label="Label"/>
</element>

Avec la projection du contenu XML :

<group label="Group1"/>
<group label="Group2"/>

Référencer avec XPath referencing-with-xpath

Le langage XPath est utilisé dans Adobe Campaign pour référencer un élément ou un attribut appartenant à un schéma de données.

XPath est une syntaxe permettant la localisation d’un nœud dans l’arbre d’un document XML.

Les éléments sont désignés par leur nom, les attributs sont désignés par leur nom précédé d'un caractère "@".

Exemple:

  • @email  : sélectionne l'email,
  • Location/@city  : sélectionne l'attribut "city" sous l'élément <location>.
  • …/@email  : sélectionne l’adresse e-mail dans l’élément parent de l’élément courant
  • group[1]/@label  : sélectionne l'attribut "label" enfant du premier élément de collection <group>
  • group[@label='test1']  : sélectionne l'attribut "label", enfant de l'élément <group> et contenant la valeur "test1"
NOTE
Une contrainte supplémentaire a été ajoutée lorsque le chemin traverse un sous-élément. Dans ce cas, il faut mettre l'expression entre crochets :
  • Location/@city n'est pas valide ; veuillez utiliser [location/@city]
  • [@email] et @email sont équivalents

Il est aussi possible de définir des expressions complexes, telles que les opérations arithmétiques :

  • @gender+1  : ajoute 1 au contenu de l'attribut gender,
  • @email + '('+@created+')'  : construit une chaîne en prenant la valeur de l’adresse e-mail ajoutée à la date de création entre parenthèses (pour le type chaîne, il faut mettre la constante entre guillemets).

Des fonctions de haut niveau ont été ajoutées aux expressions afin d'enrichir les possibilités offertes par ce langage.

La liste des fonctions disponibles est accessible à partir de n'importe quel éditeur d'expressions dans la console cliente Adobe Campaign :

Exemple:

  • GetDate()  : retourne la date courante
  • Year(@created): renvoie l’année de la date contenue dans l’attribut "created"
  • GetEmailDomain(@email): renvoie le domaine de l’adresse électronique

Construire une chaîne via la compute string building-a-string-via-the-compute-string

Compute string est une expression XPath utilisée pour construire une chaîne représentant un enregistrement dans une table associée au schéma. Compute string est principalement utilisée dans l’interface graphique pour afficher le libellé d’un enregistrement sélectionné.

La chaîne Compute string est définie via l'élément <compute-string> sous l'élément principal du schéma de données. Un attribut expr contient une expression XPath pour calculer l’affichage.

Exemple  : compute string de la table des destinataires.

<srcSchema name="recipient" namespace="nms">
  <element name="recipient">
    <compute-string expr="@lastName + ' ' + @firstName +' (' + @email + ')' "/>
    ...
  </element>
</srcSchema>

Résultat de la chaîne calculée sur un destinataire : Dupont René (rene.dupont@aol.com)

NOTE
Si le schéma ne contient pas de Compute string, une Compute string est renseignée par défaut avec les valeurs de la clé primaire du schéma.

En savoir plus

Pour en savoir plus, consultez les liens suivants :

recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1