élément attribute

Modèle de contenu

attribute:==help

Attributs

_operation (string), advanced (boolean), applicableIf (string), autoIncrement (boolean), belongsTo (string), dataPolicy (string), dbEnum (string), defOnDuplicate (boolean), default (string), desc (string), edit (string), enum (string), expr (string), feature (string), featureDate (boolean), img (string), inout (string), label (string), length (string), localizable (boolean), name (MNTOKEN), notNull (boolean), pkgStatus (string), ref (string), required (boolean), sql (boolean), sqlDefault (string), sqlname (string), sqltable (string), target (MNTOKEN), template (string), translatedDefault (string), translatedExpr (string), type (MNTOKEN), user (boolean), userEnum (string), visibleIf (string), xml (boolean)

Parents

<element>

Enfants

<help>

Description

Les éléments <attribute> vous permettent de définir un champ dans la base de données.

Usage et contexte d'utilisation

Les éléments <attribute> doivent être déclarés dans un élément <element>.

La séquence dans laquelle les éléments <attribute> sont définis dans un <srcschema> n’affecte pas la séquence de création de champ dans la base de données. La séquence de création sera alphabétique.

Description des attributs

  • _operation (string): définit le type d'écriture dans la base.

    Cet attribut est principalement utilisé lors d'une extension de schéma usine.

    Les valeurs accessibles sont:

    • "none" : Réconciliation seule. Signifie qu'Adobe Campaign va retrouver l'élément sans le mettre à jour ou générer une erreur s'il n'existe pas.
    • "insertOrUpdate" : Mise à jour avec insertion. Signifie qu'Adobe Campaign va mettre à jour l'élément ou le créer s'il n'existe pas.
    • "insert" : Insertion. Signifie qu'Adobe Campaign va insérer l'élément sans vérifier s'il existe.
    • "update" : Mise à jour. Signifie qu'Adobe Campaign va mettre à jour l'élément ou générer une erreur s'il n'existe pas.
    • "delete" : Suppression. Signifie qu'Adobe Campaign va retrouver et supprimer l'élément.
  • advanced (boolean): quand cette option est activée (@advanced="true"), elle permet de masquer l'élément dans la liste des champs disponibles et accessibles pour la configuration d'une liste dans un formulaire.

  • applicableIf (string) : cet attribut vous permet de rendre les champs facultatifs. L’élément <attribute> sera pris en compte lors de la mise à jour de la base de données lorsque la contrainte sera respectée. "applicableIf" reçoit une expression XTK.

  • autoIncrement (boolean): si cette option est activée, le champ devient un compteur. Cela permet d'incrémenter une valeur (le plus souvent un ID).(usage interne)

  • belongsTo (string): prend le nom et l’espace de noms de la table qui partage le champ - renseigne le schéma où est déclaré l'attribut. (utilisé uniquement dans un <schema>).

  • dataPolicy (string): permet de préciser des contraintes de validation sur les valeurs permises dans le champ de type SQL ou XML, les valeurs pour cet attribut sont :

    • "none" : pas de valeur
    • "smartCase": premières lettres en majuscule
    • "lowerCase": tout en minuscule
    • "upperCase": tout en majuscule
    • "email" : adresse email
    • "phone": numéro de téléphone
    • "identifier": nom d'identifiant
    • "resIdentifier": nom de fichier
  • dbEnum (string): reçoit le nom interne d'une énumération "fermée". Les valeurs de l'énumération doivent être définies dans le <srcschema>.

  • defOnDuplicate (boolean): si cet attribut est activé, lors de la duplication d'un enregistrement, la valeur par défaut (définie dans "@default") est réappliquée automatiquement à l'enregistrement.

  • default (string): permet de définir la valeur du champ par défaut (appel à une fonction, valeur par défaut). Cet attribut reçoit une expression XTK.

  • desc (string): permet d'insérer une description de l'attribut. Cette description s'affiche dans la barre de statut de l'interface.

  • edit (string): cet attribut précise le type d'input qui sera utilisé dans le formulaire associé au schéma.

  • enum (string): reçoit le nom de l'énumération associé au champ. L'énumération peut être insérée dans le même schéma ou bien dans un schéma distant. L'énumération définie une liste fermée de valeurs.

  • expr (string): définit une expression de précalcul du champ. Cet attribut reçoit un Xpath ou une expression XTK.

  • feature (string): définit un champ de caractéristiques. Les champs de caractéristiques sont utilisés pour étendre les données d'une table existante, mais avec un stockage déporté dans une table annexe. Les valeurs acceptées sont :

    • "shared" : le contenu est stocké dans une table partagée par type de données
    • "dedicated" : le contenu est stocké dans une table dédiée

    Les tables SQL de caractéristiques sont construites automatiquement en fonction du type de la caractéristique :

    • dédié : Ft_[name_of_the_schema_containing_the_characteristic]_[name_of_the_characteristic]
    • shared: Ft_[type_of_key_of_the_schema_containing_the_characteristic]_[type_of_the_characteristic]

    Deux types de champs de caractéristiques sont disponibles : les champs simples o๠une seule valeur est autorisée sur la caractéristique et les champs à choix multiples o๠la caractéristique est associée à un élément de collection qui peut donc contenir plusieurs valeurs.

    Lorsque une caractéristique est définie dans un schéma, ce schéma doit comporter une clef principale basé sur un seul champ (clef composite non autorisée).

  • featureDate (boolean): attribut associé au champ de caractéristiques "feature", si sa valeur est "true", il permet de connaître la date de la dernière mise à jour de la valeur.

  • img (string): permet de définir un chemin pour une image associée à un champ (namespace + nom de l'image)(exemple : img="cus:mypicture.jpg"). Physiquement l'image doit être importée sur le serveur applicatif.

  • label (string): libellé associé au champ, le plus souvent destiné à l'utilisateur dans l'interface. Il permet d'éviter les contraintes de nommage.

  • length (string): nombre de caractères maximal autorisés pour une valeur du champ SQL de type "string". Si l'attribut "@length" n'est pas précisé, Adobe Campaign crée automatiquement un champ de 255 caractères.

  • localizable (boolean): s'il est activé, cet attribut indique à l'outil de collecte de récupérer la valeur de l'attribut "@label" pour traduction (usage interne).

  • name (MNTOKEN): nom de l'attribut qui correspondra au nom du champ dans la table. La valeur de l'attribut "@name" doit être courte, de préférence en anglais et elle doit respecter les contraintes de nommage liées au XML.

    Lors de l'écriture du schéma en base, des préfixes sont automatiquement rajoutés par Adobe Campaign au nom du champ:

    • "i" : préfixe pour le type 'entier'.
    • "d" : préfixe pour le type 'double'.
    • "s" : préfixe pour le type chaine de caractère.
    • "ts" : préfixe pour le type 'date'.

    Pour définir intégralement le nom du champ dans la table, il faut utiliser l'option "@sqlname" dans la définition d'un attribut.

  • notNull (boolean): permet de redéfinir le comportement de Adobe Campaign concernant la gestion des enregistrements NULL en base de données. Par défaut, les champs numériques sont non-nuls et les champs de type chaîne et date peuvent être nuls.

  • pkgStatus (string): durant l'export de package, les valeurs seront prises en compte ou non en fonction de la valeur de l'attribut "@pkgStatus" :

    • "always" : toujours présentes
    • "never" : jamais présente
    • "default (ou rien)" : la valeur est exportée sauf si c'est la valeur par défaut ou bien si ce n'est pas un champ interne qui ne serait pas compatible entre plusieurs instances.
  • ref (string) : cet attribut définit une référence à un élément <attribute> partagé par plusieurs schémas (factorisation des définitions). La définition n’est pas copiée dans le schéma actuel.

  • required (boolean): si cet attribut est activé (@required="true"), le champ est mis en avant dans l'interface. Le label du champ est affiché en rouge dans un formulaire.

  • sql (boolean): si cet attribut est activé (@sql="true"), il force le stockage de l'attribut en SQL même lorsque l'élément contenant l'attribut a la propriété xml="true".

  • sqlDefault (string): cet attribut permet de définir la valeur par défaut qui sera prise en compte pour la mise à jour de la base de données uniquement si l'attribut "@notNull" est activé. Si cet attribut est ajouté après la création de l’attribut, le comportement du schéma ne change pas, même pour les nouveaux enregistrements. Pour modifier le schéma et mettre à jour la valeur des nouveaux enregistrements, vous devez supprimer et créer à nouveau l’attribut.

  • sqlname (string): nom du champ lors de la création de la table. Si "@sqlname" n'est pas précisé la valeur de l'attribut "@name" est pris par défaut. Lors de l'écriture du schéma en base, des préfixes sont automatiquement rajoutés en fonction du type du champ.

  • template (string) : cet attribut définit une référence à un élément <attribute> partagé par plusieurs schémas. La définition est automatiquement copiée dans le schéma actuel.

  • translatedDefault (string): si un attribut "@default" est présent, l'attribut "@translatedDefault" permet de redéfinir une expression, correspondante de l'expression définie dans "@default", qui sera collectée par l'outil de traduction (usage interne).

  • translatedExpr (chaîne) : si un attribut « @expr » est présent, l’attribut « @translatedExpr » permet de redéfinir une expression, correspondant à l’expression définie dans « @expr », qui sera collectée par l’outil de traduction (usage interne).

  • type (MNTOKEN): type du champ.

    Les types de champs sont génériques. C'est en fonction du type de base de donnée installé qu'Adobe Campaign transforme le type défini en valeur propre à la base de données installées lors de la mise à jour de la structure.

    Liste des types disponibles :

    • ANY
    • bin
    • blob
    • boolean
    • byte
    • CDATA
    • datetime
    • datetimetz
    • datetimenotz
    • date
    • double
    • enum
    • float
    • html
    • int64
    • link
    • long
    • memo
    • MNTOKEN
    • percent
    • primarykey
    • short
    • string
    • time
    • timespan
    • uuid

    Si l'attribut "@type" est laissé vide, Adobe Campaign associe par défaut un type chaîne de caractères (STRING) de longueur 100 au champ.

    Si le champ est de type STRING et que le nom du champ n'est pas précisé par la présence de l'attribut "@sqlname", alors le nom du champ dans la base de données sera automatiquement précédé du caractère 's'. Ce fonctionnement sera similaire avec les champs de type INTEGER (i), DOUBLE (d) et DATE(ts).

  • userEnum (string): reçoit le nom interne d'une énumération "ouverte". Les valeurs de l'énumération peuvent être définies par l'utilisateur dans l'interface.

  • visibleIf (string): définit une condition sous la forme d'une expression XTK pour montrer ou masquer l'attribut.

    IMPORTANT

    L'attribut est masqué mais ses données sont toujours accessibles.

  • xml (boolean): si cette option est activée, les valeurs du champ n'ont pas de champ SQL associé. Adobe Campaign crée un champ "mData" de type Text pour stocker les enregistrements. En conséquence, il n'y a pas de filtrage ni de tri sur ces champs.

Exemples

Exemple d'énumération dont les valeurs sont stockées en base:

    <enumeration name="myEnum">
       <value name="One" value="1"/>
       <value name="Two" value="2"/>
    </enumeration>

    <element label="Sample" name="Sample">
       <attribute dbEnum="myEnum" length="100" name="Number" required="true" type="string"/>
    </element>     

Déclaration d'un champ XML avec "@datapolicy":

<attribute dataPolicy="phone" desc="Mobile number" label="Mobile"
     length="32" name="mobilePhone" sqlname="sMobilePhone" type="string"/>

Exemple avec un "@applicableIf" : l'attribut "continent" ne sera crée que si le nombre de pays est supérieur au nombre 20.

<attribute length="100" name="Continent" type="string" applicableIf="@country > 20"/>

Exemple avec "@feature" de type "shared":

<attribute name="field1" label="Field 1" type="long" feature="shared"/>
<attribute name="field1" label="Field 1" type="long" feature="shared" sqlname="126" sqltable="Ft_Content_Long"/>

Exemple avec "@feature" de type "dedicated":

<attribute name="field1" label="Field 1" type="long" feature="dedicated"/>
<attribute name="field1" label="Field 1" type="long" feature="dedicated" sqlname="sField1" sqltable="Ft_recipient_field1"/>

Sur cette page