Créer des fichiers de modèle de réécriture

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

Un modèle de réécriture comprend un élément WebMessage indiquant le nom du modèle, la réserve de connexions et les énoncés SQL nécessaires pour insérer et mettre à jour les enregistrements dans les tables et les colonnes de réécriture que vous avez créées. Lorsque les concepteurs de contenu activent la réécriture pour une vue de table, ils doivent spécifier le nom du modèle de réécriture à utiliser pour insérer et mettre à jour les enregistrements dans la vue de table.

Exigences pour un modèle de réécriture

Un modèle de réécriture doit répondre aux exigences suivantes :

  • WebMessage : Vous devez spécifier un nom pour le modèle de réécriture à l'aide de l'attribut name de l'élément WebMessage.

    Pour que la réécriture fonctionne correctement, lors de son activation pour une vue de table, le concepteur de contenu doit spécifier le nom du modèle de réécriture à utiliser pour insérer et mettre à jour les enregistrements dans la vue.

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

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool : Pour répondre aux exigences de sécurité, vous devez spécifier la réserve de connexions ainsi que 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 énoncés SQL permettant de modifier la table de base de données.

  • VALUES : Les valeurs de colonne peuvent être référencées par ID colonne ou position de colonne. Il est préférable d'utiliser un ID colonne.

    Placez les valeurs de chaîne et de date entre guillemets simples. Il n'est pas nécessaire d'utiliser des guillemets simples pour les valeurs numériques.

    • ID colonne - Chaque ID colonne est une valeur alphanumérique générée de manière aléatoire. Les ID colonne figurent dans la définition XML de l'analyse disponible dans l'onglet Avancé de l'éditeur d'analyse. Voici un exemple de valeurs d'ID colonne : @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      Lorsque vous utilisez des ID colonne, la réécriture continue de fonctionner même si l'ordre des colonnes change.

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

    • Position de colonne - La numérotation des positions de colonne commence à 1. Voici un exemple de valeurs de position de colonne : @1, @3, '@5'

      Si l'ordre des colonnes change, la réécriture ne fonctionne plus. Il est donc préférable d'utiliser des ID colonne.

  • 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 une espace entre les balises d'ouverture et de fermeture. Par exemple, vous devez entrer l'élément comme suit :

    <insert> </insert>
    

    À la place de :

    <insert></insert>
    

    Si vous omettez l'espace, un message d'erreur de réécriture, tel que "Le système ne parvient pas à lire le modèle de réécriture 'mon_modèle'", s'affiche.

  • Si les données d'un paramètre ne sont pas de type nombre entier ou nombre réel, placez-les entre guillemets simples. Si la base de données n'effectue pas les validations de manière automatique, ajoutez le noeud postUpdate facultatif après les noeuds insert et update pour forcer la validation. Le noeud postUpdate se présente généralement comme suit :

    <postUpdate>COMMIT</postUpdate>
    

Exemple de fichier de modèle de réécriture avec la syntaxe d'ID colonne

Un fichier de modèle de réécriture qui référence des valeurs par ID colonne peut se présenter comme suit :

<?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 fichier de modèle de réécriture avec la syntaxe de position de colonne

Un fichier de modèle de réécriture qui référence des valeurs par position de colonne peut se présenter comme suit :

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