domingo, 23 de marzo de 2014

Override Commit en AppModule, Oracle Adf 11g

Hoy nuestra idea es crear un commit personalizado, para cuando se realice la operación commit, ya sea mediante Task Flow o programáticamente, podemos hacer operaciones tanto en commit como en rollback y en su before y en su after.

La idea final es realizar una auditoria sobre cada operación que se realice en nuestra aplicación.

Lo primero que debemos realizar son 2 clases java.

La primera "CustomDatabaseTransactionFactory.java", extenderá de "DatabaseTransactionFactory".


La segunda "CustomDataBaseImpl" extenderá de "DBTransactionImpl2".


Ya realizadas las dos clases con sus respectivos métodos, Nos vamos al "appModule", y nos vamos a su configuración.

Dentro de su configuración pulsamos en "appmoduleLocal". 

En las propiedades buscamos la opción "TransactionFactory", y modificamos con nuestra ruta del java creado anteriormente con nombre "CustomDatabaseTransactionFactory.java".


Con todo esto tenemos un "override" de las operaciones, ahora podremos usarla para nuestra necesidad, en este caso cada vez que se haya realizado un commit, leeremos todas las transacciones, miraremos su estado "nuevo registro/modificado/eliminado ...", y con toda la información recogida alimentan su auditoria.


Gracias por su atención, y un saludo.

Rafael Prada Gómez



sábado, 22 de marzo de 2014

Adf - viewCriteriaItem con séntencia SQL

Hoy explicaremos una forma muy fácil de utilizar una sentencia sql dentro de un viewCriteria.

En nuestro ejemplo filtraremos todos nuestros empleados que tengan un salario superior a la media, y es el que mostraremos al usuario.

Basándonos en una VO simple, creamos un  viewCriteria, le añadimos la opción "Salary".



Después nos vamos al XML, y nos posicionamos en el viewCriteriaItem del salario, y añadimos la propiedad "isSqlFragment".

Seguidamente al volver al "overView", he insertamos en el valor la sentencia SQL.
"(SELECT AVG(SALARY) AVG_SAL FROM EMPLOYEES)".

En la pestaña de "UI Hints", seleccionamos en el "rendered", nunca.

Al generar el viewCriteria dentro de una página, vemos el resultado.
Empero como siempre que esto les haya servido de gran ayuda.

Rafael Prada Gómez 





lunes, 17 de marzo de 2014

Uso de Jquery y JavaScript en Oracle Adf

Hoy utilizaremos Javascript para el lanzamiento de mensaje "message" en Adf y nos apoyaremos en Jquery para hacerlo visualmente atractivo.


Lo primero que haremos es utilizar el formulario del otro día y añadirle un botón, con la función de guardar.


Las funciones JavaScript que usaremos son:


 En resumen estas funciones colocan una capa durante 2 segundos con el texto recibido en parámetros.

En el formulario no se nos puede olvidar aplicar "resources" aplicando el "js" y los Jquery.


En la funcionalidad del boton, haremos un commit programático, después comprobaremos que sea realizado commit correctamente.

Y mostraremos el mensaje de confirmación.


Resultado final:


Con unos sencillos pasos hemos incrustado un mensaje atractivo dentro de nuestro proyecto.

Rafael Prada Gómez.






viernes, 14 de marzo de 2014

LOV (List Of Value) Creación de lista de valores.

Hoy veremos un ejemplo muy sencillo de como crear un LOV "Lista de valores" en Oracle Developer 11g.

Esta opción es realmente útil, cuando usamos "foreing key" o un atributo tiene una lista de valores ya predeterminada.

En nuestro ejemplo un empleado, esta asociado a un departamento, la "foreign key" es DepartmentId.




Generamos la vista de department, una VO sencilla la llamaremos "DepartmentView"y la de empleados "EmployeesView".
Agregamos un nuevo ViewAccessor.


Seleccionamos al vista creada anteriormente.


A continuación nos situamos en la "foreign key", en la etiqueta "List of Value, seleccionamos la vista agregada en el ViewAccessor y despues la "primary key" por la que hace referencia.


En la siguiente pestaña, podremos señalar que tipo de componente queremos que nos salga en los formularios o en los demás sitios donde vayamos a usarlo, como por ejemplo en un componente "af|query".

Tiene varias opciones muy interesantes, como es (include "No Selection" item), con esto conseguiremos que en la lista de valores exista el campo null.
Esta opción es bastante útil a la hora de implemente ViewCriterias.

Ahora al arrastrar el data control en DepatmentId nos muestra por defecto otra opción que es "Select One Choine".



Resultado final:

Hemos conseguido crear una lista de valores rápidamente, sin necesidad de tener mas de una entidad en un view y tener que realizar los respectivos join.



Empero como siempre que esto les haya servido de gran ayuda.

Rafael Prada Gómez 








martes, 11 de marzo de 2014

Busquedas e implementación mediante ViewCriteria en Adf

En esta tarde explicaremos como realizar un viewCriteria con los componentes "af:query" y "af:table".

Con el componente "af:query" implementado a partir de la versión 11g realizaremos las funciones de búsqueda con mucho menor coste que anteriormente.

Para empezar generamos una VO sencilla de empleados "EmployessView".


Añadimos un "ViewCriteria" e incorporamos los distintos criterios de búsqueda que deseamos incluir en nuestro panel de búsqueda.


Ademas en la segunda pestaña podremos seleccionar, tanto el "Query automatically" para que se ejecute la query automáticamente, como marcarle el tipo de Rendered que deseamos en cada criterio y el tamaño que llevara.





Con esto hemos generado un ViewCriteria donde se vería reflejado en el apartado de "Named Criteria" dentro de los "Data Control".
Automáticamente se genera un componente "af:query" y su tabla correspondiente.


Empero como siempre que esto les haya servido de gran ayuda.

Rafael Prada Gómez