Création de fichiers de modèle de réécriture

Un fichier de modèle de réécriture est un fichier au format XML qui contient au moins un modèle de réécriture.

Un modèle de réécriture est un élément WebMessage qui indique le nom du modèle, le pool de connexions et les instructions SQL nécessaires pour insérer et mettre à jour des enregistrements dans les tables et colonnes de réécriture que vous avez créées. Lorsque les concepteurs de contenu activent une vue de table pour la réécriture, ils doivent indiquer le nom du modèle de réécriture à utiliser pour insérer et mettre à jour les enregistrements dans la vue de table.

Exigences relatives à un modèle de réécriture

Un modèle de réécriture doit respecter les exigences suivantes :

  • WebMessage : vous devez indiquer le nom du modèle de réécriture à l'aide de l'attribut name dans l'élément WebMessage.

    Afin que la réécriture fonctionne correctement, lors de l'activation d'une vue de table pour la réécriture, un concepteur de contenu doit indiquer le nom du modèle de réécriture à utiliser pour insérer et mettre à jour les enregistrements dans la vue.

    Cet exemple montre un modèle de réécriture appelé SetQuotaUseID.

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool : afin de respecter les exigences en matière de sécurité, vous devez indiquer le pool de connexions avec les commandes SQL permettant d'insérer et de mettre à jour les enregistrements. Ces commandes SQL référencent les valeurs transmises au schéma de réécriture pour générer les instructions SQL afin de modifier la table de base de données.

  • VALUES : les valeurs de colonne peuvent être référencées par ID de colonne ou position de colonne. L'utilisation de l'ID de colonne est à privilégier.

    Placez les valeurs de chaîne et de date entre apostrophes. Les apostrophes ne sont pas requises pour les valeurs numériques.

    • ID de colonne : chaque ID de colonne est une valeur alphanumérique générée de façon aléatoire. Vous trouverez les ID de colonne dans la définition XML de l'analyse qui est disponible dans l'onglet Avancé de l'éditeur d'analyse. Exemples de valeur d'ID de colonne : @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      Lorsque vous utilisez des ID de colonne, la réécriture fonctionne toujours même si l'ordre des colonnes est modifié.

      Représentation XML dans l'onglet Avancé de l'éditeur d'analyse

    • Position de colonne : la numérotation des positions de colonne débute à 1. Exemples de valeur de position de colonne : @1, @3, '@5'

      Si l'ordre des colonnes est modifié, la réécriture ne fonctionne plus. C'est la raison pour laquelle les ID de colonnes sont à privilégier.

  • Vous devez inclure un élément <insert> et un élément <update> dans le modèle. Si vous ne voulez pas inclure de commandes SQL dans les éléments, vous devez insérer un espace entre les balises d'ouverture et de fermeture. Par exemple, vous devez saisir l'élément comme suit :

    <insert> </insert>
    

    plutôt que :

    <insert></insert>
    

    Si vous oubliez l'espace, un message d'erreur de réécriture tel que "Le système ne peut pas lire le modèle de réécriture 'my_template'" apparaîtra.

  • Si le type de données d'un paramètre n'est pas un nombre entier ou réel, placez-le entre apostrophes. Si la base de données n'effectue pas automatiquement des validations, ajoutez le noeud postUpdate facultatif après les noeuds insert et update pour forcer la validation. Le noeud postUpdate suit généralement l'exemple ci-après :

    <postUpdate>COMMIT</postUpdate>
    

Exemple de syntaxe de fichier de modèle de réécriture utilisant les ID de colonne

Un fichier de modèle de réécriture qui référence les valeurs par ID de colonne peut ressembler à l'exemple suivant :

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
   <WebMessage name="SetQuotaUseID">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert>
            <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>

Exemple de syntaxe de fichier de modèle de réécriture utilisant les positions de colonne

Un fichier de modèle de réécriture qui référence les valeurs par position de colonne peut ressembler à l'exemple suivant :

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
   <WebMessage name="SetQuota">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypequota VALUES(@1,@2,'@3','@4',@5)</insert>
            <update>UPDATE regiontypequota SET Dollars=@5 WHERE YR=@1 AND Quarter=@2 AND Region='@3' AND ItemType='@4'</update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>