Show Menu
SUJETS×

Caractéristiques du schéma

Les particularités propres à un schéma qui référence une table existante sont les suivantes :
  • Adobe Campaign doit s'abstenir de modifier les objets SQL relatifs aux tables existantes,
  • Les noms des tables et colonnes doivent être précisés explicitement,
  • Les index doivent être déclarés.
Ne supprimez pas de champs dans la table des destinataires standard, même s'ils sont inutiles. Cela peut causer des erreurs de comportement dans la base Adobe Campaign.

Attribut view

Les schémas sources acceptent l'attribut view pour l'élément racine srcSchema . Il doit être utilisé lorsqu'on manipule dans Adobe Campaign des tables externes. L'attribut view="true" , indique à l'assistant de mise à jour de la structure de base d'ignorer le schéma. Ainsi, on interdit à l'application de synchroniser la table, ses colonnes et ses index avec le schéma correspondant.
Lorsque cet attribut est renseigné à true , le schéma sert uniquement à générer les requêtes SQL pour accéder aux données de cette table.

Noms de tables et de colonnes

Lorsque les tables sont créées par l'assistant de mise à jour de table, les noms des tables et des colonnes sont générés automatiquement à partir des noms des schémas et des attributs respectifs. Il est cependant possible de forcer les noms SQL à utiliser en renseignant les attributs suivants :
  • sqltable au niveau de l'élément principal du schéma, pour préciser la table,
  • sqlname au niveau de chaque attribut, pour préciser les colonnes.
Exemple :
<element label="Individual" name="individual" sqltable="individual">
    <key internal="true" name="id">
      <keyfield xpath="@id"/>
    </key> 
    <attribute name="id" type="long" length="32" />
    <attribute name="lastName" type="string" length="100" sqlname="Last_Name"/>
    <attribute name="firstName" type="string" length="100" sqlname="First_Name"/>
    <attribute name="email" type="string" length="100"/>
    <attribute name="mobile" type="string" length="100"/>
</element>

Dans cet exemple, si les noms des tables et des colonnes n'avaient pas été explicitement précisés, l'application aurait utilisé CusIndividual pour la table, lastName et firstName pour les colonnes.
Il n'est pas nécessaire de renseigner toutes les colonnes de la table externe, les colonnes non-renseignées ne seront pas accessibles à l'utilisateur.

Champs indexés

Pour trier les enregistrements d'une liste depuis la console cliente, il est préférable, en termes de performances, de trier sur des champs indexés. La déclaration d'un index dans un schéma provoque, dans la console, l'affichage des champs indexés avec un trait rouge sous la flèche de tri située à gauche du libellé de la colonne, comme dans l'écran ci-dessous :
Dans un schéma, un index se définit comme suit :
<dbindex name="name_of_index" unique="true/false"
  <keyfield xpath="xpath_1st_field"/
  <keyfield xpath="xpath_2nd_field"/
  ...
</dbindex

Il est donc important de déclarer les index existants de la table personnalisée dans le schéma correspondant.
Un index est implicitement déclaré pour chaque déclaration de clé et de lien du schéma source. Il est possible d'empêcher la déclaration de l'index en précisant l'attribut noDbIndex="true" :
Exemple :
<key internal="true" name="customer" noDbIndex="true">
  <keyfield xpath="@customerId"/>
</key>