Les particularités propres à un schéma qui référence une table existante sont les suivantes :
Ne supprimez pas les champs de la table des destinataires intégrée, même s’ils sont inutiles. Cela peut entraîner des erreurs de comportement dans la base de données d’Adobe Campaign.
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.
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 :
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.
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>