Inicio > ADF / Java > ADF tips: Auditemos nuestros datos

ADF tips: Auditemos nuestros datos

En este tip comentaremos las opciones que nos brinda Oracle ADF para poder auditar la creación y modificación de datos. Contar con un sistema de auditoría de datos, en esta época en la que la seguridad y el saber quién y cuándo ha hecho qué, se  ha vuelto prácticamente imprescindible.

Para ello en ADF existen las “History Columns”, que se encargarán de almacenar debidamente la información para poder auditar nuestros datos. Cuando habilitamos este tipo de columnas será el framework el encargado de informarlas debidamente. El momento de asignación es durante la fase de “prepareForDML”.

Por defecto existen cinco tipos de columnas:

adf_tips_history_00

  • created on: Debe seleccionarse en un campo de tipo “Date” o “Timestamp”, una vez seleccionada la columna queda marcada como no actualizable nunca. El sistema almacenará la fecha y hora en la que el dato fue creado  (el valor es obtenido de la base de datos).
  • created by: Debe seleccionarse en un campo de tipo “String”, una vez seleccionada la columna queda marcada como no actualizable nunca. El sistema almacenará el nombre de usuario que creó la fila, para ello recupera al atributo “Principal” del contexto de seguridad (en caso de que no haya usuario se utilizará “anonymous”).
  • modified on: Debe seleccionarse en un campo de tipo “Date” o “Timestamp”. El sistema almacenará la fecha y hora en la que el dato fue modificado por última vez.
  • modified by: Debe seleccionarse en un campo de tipo “String”.  El sistema almacenará el nombre de usuario que modificó por última vez el dato.
  • version number: Debe seleccionarse en un campo de tipo “Long” o “Number”. Este campo indica el número de veces que este registro ha cambiado. En el momento de crearse el valor será 1, y con cada modificación irá aumentando.

Este tipo de columnas no pueden seleccionarse cuando el atributo en cuestión es parte de la clave primaria. Y además debemos no marcar las opciones de “Refresh After Update / Insert”, dado que si las marcaremos no servirá más que para ocasionar una pérdida de rendimiento o incluso almacenar datos incorrectos.

Estas opciones son las que nos brinda Oracle ADF por defecto, pero adicionalmente podemos definir columnas de auditoría personalizadas. Para ello tendremos que seguir los siguientes pasos:

  • Definir el tipo desde las opciones de JDeveloper:

adf_tips_history_01

  • Implementar el código asociado a nuestro tipo personalizado definiendo una constante que identifique nuestro tipo y sobreescribiendo el método getHistoryContextForAttribute:
private static final byte MY_AUDIT_COLUMN_HISTORY_TYPE = 11;

@Override
protected Object getHistoryContextForAttribute(AttributeDefImpl attr) {
    if (attr != null && attr.getHistoryKind() == MY_AUDIT_COLUMN_HISTORY_TYPE) {
        //Código de mi columna de auditoría personalizada.
    }else {
        return super.getHistoryContextForAttribute(attr);
    }
}
Categorías:ADF / Java Etiquetas: , ,
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: