Structure d'un schéma schema-structure

La structure de base d'un <srcschema> est la suivante :

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

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

        <compute-string/>  //definition of a compute-string
        <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="AAAA/DD/MM" 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 facilement identifiable car son nom est identique à celui du schéma et il doit être enfant de l'élément racine. C'est à partir de cet élément que commence la description du contenu.

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

<element name="recipient">

Les éléments <attribute> et <element> qui suivent l'élément principal permettent de définir l'emplacement et le nom des 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 à respecter sont les suivantes :

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

    note caution
    CAUTION
    Le nom de l'élément doit être concis, de préférence en anglais, et ne comprendre que des caractères autorisés conformes aux règles de nommage des noms 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 détaillée est disponible dans la documentation de Campaign Classic v7.

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  : champs "uniqueidentifier"

    note note
    NOTE
    Pour contenir un champ uuid, la fonction "newuuid()" doit être ajoutée et complétée avec sa valeur par défaut.

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

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-none
    <attribute name="email" type="string" length="80" label="Email"/>
    

    Le libellé est visible à partir du formulaire de saisie de la console cliente Adobe Campaign :

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

    La description est visible à partir du formulaire de saisie dans la barre de statut 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-none
    <attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
    

Les valeurs par défaut default-values

La propriété default permet de définir une expression retournant une valeur par défaut à la création du contenu.

La valeur doit être une expression conforme au langage XPath. Pour plus d'informations à ce sujet, consultez cette section.

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, le noeud Administration>Compteurs permet de gérer les compteurs.

Pour lier une valeur par défaut à un champ, vous pouvez utiliser le <default> or <sqldefault> field. </sqldefault> </default>

<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

Énumération libre free-enumeration

La propriété userEnum permet de définir une énumération libre pour mémoriser et afficher les valeurs renseignées à partir de ce champ. La syntaxe est la suivante :

userEnum="nom de l'énumeration"

Le nom donné à l'énumération est libre et peut être partagé avec d'autres champs.

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

NOTE
Dans la console cliente Adobe Campaign, le nœud Administration > Enumérations permet de 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ées 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é à partir de l'interface graphique.

Enumération dbenum dbenum-enumeration

  • La propriété 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.

    Les valeurs sont définies depuis le nœud Administration > Énumérations.

    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érencement avec XPath reference-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'email sur 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'email ajoutée à la date de création entre parenthèses (pour le type chaîne, il faut mettre la constante entre quotes).

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)  : retourne l'année de la date contenue dans l'attribut "created"
  • GetEmailDomain(@email)  : retourne le domaine de l'email

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.
recommendation-more-help
35662671-8e3d-4f04-a092-029a056c566b