Despliegue de anotación

La anotación permite que los usuarios actualicen datos de análisis.

Temas:

Acerca de la anotación para los administradores

La anotación permite a los usuarios actualizar sus datos directamente desde los paneles de control y los análisis.

Los usuarios con el privilegio Anotar en base de datos pueden ver los campos de anotación como campos editables en los análisis. Los valores que introducen en ellos se guardan en la base de datos. Los usuarios sin el privilegio Anotar en base de datos pueden ver los campos de anotación como campos de solo lectura.

Si un usuario escribe un valor en un campo editable y hace clic en el botón de anotación, la aplicación ejecutará el comando SQL insert o update definido en una plantilla de anotación. Si el comando se ejecuta correctamente, el análisis se actualiza con el nuevo valor. Si se produce un error en la lectura de la plantilla o en la ejecución del comando SQL, se mostrará un mensaje de error.

El comando insert se ejecuta cuando no existe aún un registro y el usuario introduce nuevos datos en la tabla. En este caso, el usuario ha introducido un registro de tabla donde el valor original era nulo. El comando update se ejecuta cuando un usuario modifica los datos existentes. Para mostrar un registro que aún no existe en la tabla física, puede crear otra tabla similar. Utilice esta tabla similar para mostrar registros de marcadores de posición que pueda modificar el usuario.

Nota:

Cuando cree plantillas de anotación, debe incluir un comando insert y un comando update, incluso aunque no se use ninguno de ellos. Por ejemplo, si solo realiza un insert, debe incluir una sentencia update vacía <update></update>, como en este código XML:

Este es un ejemplo de archivo XML de anotación que contiene dos comandos insert y dos sentencias update vacías. Para obtener más información sobre cómo crear y estructurar archivos XML de anotación, consulteCreación de archivos de plantilla de reescritura.
<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/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>
         </writeBack>
      </XML>
   </WebMessage>
<WebMessage name="SetForecastUseID">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e0}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert>
            <update></update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>

Activación de anotación en análisis y paneles de control

Los administradores pueden permitir que los usuarios editen los datos en análisis y paneles de control.

  1. Configure el modelo semántico.

    Nota:

    Siga estos pasos si utiliza la herramienta de administración de modelos para desarrollar modelos semánticos. Si utiliza el modelador semántico, consulte

    Activación de la reescritura en las columnas .

    1. En la herramienta de administración de modelos, abra su modelo semántico (archivo .rpd).
    2. En la capa física, haga doble clic en la tabla física que contiene la columna para la que desea activar la anotación.
    3. En el separador General del cuadro de diálogo Tabla física, asegúrese de que Permite caché no está seleccionado. Al anular la selección de esta opción se asegura de que los usuarios de Presentation Services puedan ver actualizaciones de forma inmediata.
    4. En la capa Modelo de negocio y asignación, haga doble clic en la columna lógica correspondiente.
    5. En el cuadro de diálogo Columna lógica, seleccione Permitir escritura y, a continuación, haga clic en Aceptar.
    6. En la capa Presentación, haga doble clic en la columna que corresponda a la columna lógica para la que ha activado la anotación.
    7. En el cuadro de diálogo Columna de presentación, seleccione Permisos.
    8. Seleccione el permiso de lectura/escritura para los usuarios y roles de aplicación adecuados.
    9. Guarde los cambios.
  2. Cree un documento XML con su plantilla (o plantillas) de anotación. Consulte Creación de archivos de plantilla de reescritura.

    El documento XML puede contener varias plantillas. En este ejemplo se muestra un documento XML que contiene dos plantillas (SetQuotaUseID y SetForecastUseID).

    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/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>
    <WebMessage name="SetForecastUseID">
          <XML>
             <writeBack connectionPool="Supplier">
                <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e01}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert>
                <update>UPDATE regiontypeforecast SET Dollars=@{c7322jkl93ev92cd8} WHERE YR=@{c83ebf607f3cb8320} AND Quarter=@{cb7e2046a0fba2204} AND Region='@{c5a93e65d31f10e01}' AND ItemType='@{c5a93e65d31f10e0}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    Nota: Debe incluir un elemento <insert> y un elemento <update>, incluso aunque no se use ninguno de ellos. Por ejemplo, si solo realiza un insert, debe incluir una sentencia update vacía <update></update>.
  3. Copie el documento XML que contiene las plantillas de anotación en el portapapeles.
  4. Aplique la plantilla de anotación en Oracle Analytics:
    1. Haga clic en Consola y, a continuación, en Configuración del sistema.
    2. En XML de plantilla de anotación, pegue la plantilla de anotación que ha copiado en el paso 3.
  5. Otorgue permisos para utilizar el código de anotación:
    1. Navegue a la página inicial clásica y haga clic en Administración.
    2. Debajo de Seguridad, haga clic en Gestionar privilegios y desplácese a Anotación.
    3. Otorgue Anotar en base de datos a Usuario autenticado.
    4. Otorgue Gestionar anotación a Administrador de servicio de BI.
  6. Para activar la anotación en columnas:
    1. En el editor de análisis, muestre las propiedades de columna de la columna en la que desea activar la anotación.
    2. En el cuadro de diálogo Propiedades de Columna, haga clic en el separador Anotación.
      Si la columna se ha activado para la anotación en el modelo semántico, el cuadro Activar anotación estará disponible.
    3. Seleccione la opción Activar anotación.
    4. Especifique el valor de otras opciones si desea cambiar los valores por defecto.
    5. Guarde los cambios.
    Se ha activado anotación para esta columna en cualquier análisis que incluya.
  7. Para activar la anotación en vistas de tabla:
    1. En el editor de análisis, abra la vista de tabla para la edición.
    2. Haga clic en Propiedades de la vista.
    3. En el cuadro de diálogo Propiedades de tabla, haga clic en el separador Anotación.
    4. Seleccione la opción Activar anotación.
    5. Active la casilla Nombre de plantilla, especifique el valor de "WebMessage name=" en la plantilla de anotación que especificó en el paso 2.
      Por ejemplo, el valor de Nombre de plantilla de la plantilla de ejemplo en el paso 2 es "SetQuotaUseID".
    6. Guarde los cambios.

Limitaciones de anotación

Los usuarios pueden anotar en cualquier origen de datos que permita la ejecución de consultas SQL de Oracle Analytics.

Al definir la configuración para anotación, tenga en cuenta las siguientes limitaciones:

  • Las columnas numéricas solo deben contener números. No deben contener ningún carácter de formato de datos como símbolos de dólar ($), símbolos numerales o de almohadilla (#), símbolos de porcentaje (%), etc.

  • Las columnas de texto solo deben contener datos de cadena.

  • Si un usuario conectado ya está viendo un panel de control que contiene un análisis donde se han modificado los datos con la anotación, los datos no se refrescan automáticamente en el panel de control. Para ver los datos actualizados, el usuario debe refrescar manualmente el panel de control.

  • Puede utilizar el mecanismo de plantilla solo con vistas de tabla y solo para datos de valor único. El mecanismo de plantilla no está soportado para vistas de tabla dinámica ni cualquier otro tipo de vista, para datos de varios valores o para columnas desplegables con datos de valor único.

  • Todos los datos de las columnas de anotación son editables. Cuando aparecen en un contexto de versión para impresora, los campos editables se muestran como si el usuario tuviera el privilegio Anotar en base de datos. Sin embargo, cuando se asigna una columna lógica a una columna física que puede cambiar, la columna lógica devuelve valores para intersecciones de varios niveles. Este escenario puede causar problemas.

  • Cualquier datos de un análisis se puede marcar como un campo de notación, incluso aunque no se derive de la tabla de anotación que ha creado. Sin embargo, no puede ejecutar correctamente la operación de anotación si la tabla no tiene activada la anotación. La responsabilidad de etiquetar correctamente los campos reside en el diseñador de contenido.

  • Una plantilla puede contener sentencias SQL distintas de insert y update. La función de anotación transfiere estas sentencias a la base de datos. Sin embargo, Oracle no soporta ni recomienda el uso de sentencias que no sean insert o update.

  • Oracle Analytics solo realiza la validación mínima de la entrada de datos. Si el campo es numérico y el usuario introduce datos de texto, Oracle Analytics lo detecta e impide que los datos no válidos vayan a la base de datos. Sin embargo, no detecta otras formas de entrada de datos no válidos (valores fuera de rango, texto y números combinados, etc.). Cuando el usuario hace clic en el botón de anotación y se ejecuta una inserción o una actualización, los datos no válidos generan un mensaje de error de la base de datos. A continuación, el usuario puede corregir la entrada incorrecta. Los diseñadores de contenido pueden incluir texto en el análisis de anotación para ayudar al usuario, por ejemplo, "No está permitido introducir valores alfanuméricos combinados en un campo de datos numéricos".

  • El mecanismo de plantilla no es adecuado para introducir nuevos registros arbitrarios. Es decir, no lo utilice como una herramienta de entrada de datos.

  • Al crear una tabla para anotación, asegúrese de que al menos una columna no incluya la capacidad de anotación, sino que incluya valores que sean únicos para cada fila y que no sean nulos.

  • El análisis de anotación no soportada el aumento de detalle. Debido a que el aumento de detalle modifica la estructura de la tabla, la plantilla de anotación no funciona.

    Atención:

    El mecanismo de plantilla recoge la entrada de usuario y la escribe directamente en la base de datos. La seguridad de la base de datos física es su responsabilidad. Para una seguridad óptima, almacene las tablas de base de datos de anotación en una instancia de base de datos única.

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>