La anotación permite que los usuarios actualicen datos de análisis.
Temas:
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:
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>
Los administradores pueden permitir que los usuarios editen los datos en análisis y paneles de control.
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.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.
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.
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>