Creación de archivos de plantilla de reescritura

Un archivo de plantilla de anotación es un archivo con formato XML que contiene una o más plantillas de anotación.

Una plantilla de anotación consta de un elemento WebMessage que especifica el nombre de la plantilla, el pool de conexiones y las sentencias SQL que son necesarias para insertar y actualizar registros en las tablas y las columnas de anotación que ha creado. Cuando los diseñadores de contenido activan una vista de tabla para anotación, deben especificar el nombre de la plantilla de anotación que se utilizará para insertar y actualizar los registros en la vista de tabla.

Requisitos para una plantilla de anotación

Una plantilla de anotación debe cumplir los siguientes requisitos:

  • WebMessage: debe especificar un nombre para la plantilla de anotación utilizando el atributo name en el elemento WebMessage.

    Para que la anotación funcione correctamente, al activar una vista de tabla para anotación, un diseñador de contenido debe especificar el nombre de la plantilla de anotación que se utilizará para insertar y actualizar los registros en la vista.

    Este ejemplo muestra una plantilla de anotación denominada SetQuotaUseID.

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool: para cumplir los requisitos de seguridad, debe especificar el pool de conexiones junto con los comandos SQL para insertar y actualizar registros. Estos comandos SQL hacen referencia a los valores que se transfieren en el esquema de anotación para generar las sentencias SQL para modificar la tabla de base de datos.

  • VALUES: se puede hacer referencia a los valores de columna mediante el identificador de columna o la posición de columna. Se prefiere el uso del identificador de columna.

    Incluya los valores de cadena y fecha entre comillas simples. Las comillas simples no son necesarias en los valores numéricos.

    • Identificador de columna: cada identificador de columna es alfanumérico y se genera de forma aleatoria. Puede buscar los identificadores de columna en la definición de XML del análisis que está disponible en el separador Avanzado del editor de análisis. Por ejemplo, los valores de identificador de columna como: @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      Cuando utiliza identificadores de columna, la anotación sigue funcionando incluso cuando cambia el orden de las columnas.

      XML en el separador Avanzado del editor de análisis

    • Posición de columna: la posición de columna inicia la numeración por 1. Por ejemplo, valores de posición de columna como: @1, @3, '@5'

      Si cambia el orden de las columnas, la anotación deja de funcionar y este es el motivo por el que se prefieren los identificadores de columna.

  • Debe incluir un elemento <insert> y un elemento <update> en la plantilla. Si no desea incluir comandos SQL en los elementos, debe insertar un espacio en blanco entre las etiquetas de apertura y cierre. Por ejemplo, debe introducir el elemento como:

    <insert> </insert>
    

    En lugar de:

    <insert></insert>
    

    Si omite el espacio en blanco, se muestra un mensaje de error de anotación que indica, por ejemplo, que el sistema no puede leer la plantilla de anotación 'my_template'.

  • Si un tipo de datos de parámetro no es un entero o un número real, inclúyalo entre comillas simples. Si la base de datos no realiza confirmaciones de forma automática, agregue el nodo postUpdate opcional después de los nodos insert y update para forzar la confirmación. El nodo postUpdate normalmente sigue este ejemplo:

    <postUpdate>COMMIT</postUpdate>
    

Ejemplo de archivo de plantilla de anotación que utiliza la sintaxis de identificador de columna

Un archivo de plantilla de anotación que haga referencia a valores por identificador de columna podría ser similar a este ejemplo:

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

Ejemplo de archivo de plantilla de anotación que utiliza la sintaxis de posición de columna

Un archivo de plantilla de anotación que haga referencia a valores por posición de columna podría ser similar a este ejemplo:

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