Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
TALLER DE TRANSACCIONES PERSONALIZADAS (parte III) OBJETIVOS En este laboratorio desarrollaremos una aplicación que maneja procedimientos personalizados desde diversas viewObjects y el paso de datos entre paginas.
1. El modelo de la base de datos es el siguiente:
El código SQL para la creación de las tablas será cedido por el instructor del curso.
[email protected]
Página 1
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
1. Crear un proyecto que se denominara Transacciones02:
La persistencia quedara definida como en la imagen siguiente:
[email protected]
Página 2
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
2. En el AppModule: Realizar la Programación del procedimiento de inserción de en la tabla detalle.
Seleccionamos el procedimiento en el Client Interface:
[email protected]
Página 3
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
3. Programación en el ViewController 1. Dentro del la carpeta public_html crearemos una carpeta images y dentro de ello pondremos las imágenes que utilizaremos en nuestra aplicación.
2. Diseñamos una pagina de tipo plantilla:
[email protected]
Página 4
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Clic derecho en ViewController / New – El asistente ira guiando en la creación de la pagina En el paso 2, seleccionar la opción:
No debe tener un manager Bean. En el paso 4 seleccionar la imagen que desea como fondo de su pagina.
[email protected]
Página 5
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
3. Desarrollar con asistencia del instructor la siguiente interfaz en la pagina plantilla.jsp
4. Debe configurar la navegación entre las paginas JSF Clic derecho a ViewController / Open JSF Navigation Diseñar la siguiente navegación entre páginas:
[email protected]
Página 6
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
5. Definir navegación global en el JSF, poner vista de “Source” y agregar las lineas de codigo:
[email protected]
Página 7
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
6. En la pagina plantilla.jsp vincular los actions de los tabs
En la imagen estamos vinculando el tab Venta con la navegación global “gventa” mediante el atributo action. Repetir el procedimiento para cada uno de los tabs con su respectiva navegación.
[email protected]
Página 8
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
7. Creación de las paginas: Seleccionar la pagina plantilla.jsp del Application Navigation y luego dar clic al menú File / Save as
Ponerle de nombre cliente.jsp Repetir el procedimiento para cada una de las páginas. El navigation debe quedar con la siguiente vista:
[email protected]
Página 9
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
8. Una vez creadas las paginas, colocar al atributo select de los tab en true depediendo de la pagina en la que nos encontramos.
En la imagen, estamos en la pagina venta.jsp . Repetir el proceso para cada una de las páginas
[email protected]
Página 10
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
9. Ejecutar la página cliente y probar la navegación.
10. Mantenimiento de páginas mediante asistente. Mediante el asistente generaremos el mantenimiento para las paginas cliente.jsp y producto.jsp. A. Pagina Cliente Desde el DataControl arrastramos hacia la página el componente ClienteView1 Seleccionamos la opcion Tables / ADF Read-Only Table
[email protected]
Página 11
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Marcar los siguientes cheks:
Se genera la siguiente tabla:
Al botón editar en su atributo action seleccionar “irclientedetalle”
[email protected]
Página 12
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Agregamos a la tabla un boton de tipo “nuevo”, este boton lo generaremos desde ClienteView1 , lo arrastramos hacia la tabla de la pagina web:
A este boton “nuevo” tambien le agregamos en su atributo action: “irclientedetalle”.
A. Pagina ClienteDetalle En esta pagina arrastraremos también desde el DataControl la vista ClienteView1, pero ahora con la opcion Forms / ADF Form
[email protected]
Página 13
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
No marcar ningún check y dale clic al botón aceptar.
Teniendo el formulario arrastrar desde el DataControl hacia la página el componente Confirmar:
[email protected]
Página 14
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
La interfaz de la página tendría esta apariencia:
Por ultimo al botón guardar agregarle en su atributo action Ircliente. Ejecutar la página cliente.jsp y comprobar la transacción. * Repetir el procedimiento para la pagina Producto.
[email protected]
Página 15
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
10. Mantenimiento de Páginas mediante Backing y procedimientos personalizados. El asistente nos ayuda a agilizar el desarrollo, pero cuando los procesos son complejos, en el desarrollo de un sistema, es necesario utilizar un respaldo que nos permita tener un mejor control sobre los objetos. Por este motivo crearemos un backing. 1. Clic derecho en el ViewController / new Seleccionar java class:
2. En el faces-context.xml indicar que la clase BkVenta tendra un scope de tipo request
[email protected]
Página 16
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
3. En la pagina ventas.jsp, en la linea final del codigo escribir lo siguiente:
Cada control que coloquemos en la pagina venta.jsp automáticamente sera creado como objeto en el bkventa.
4. Diseñar la interfaz grafica de la pagina venta.jsp
[email protected]
Página 17
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Agregar 2 Panel Horizontal: phproducto phmovimiento En el panel Horizontal phmovimiento colocaremos una tabla que se generara del componente MovimientoView1:
Solo se mostraran 3 campos:
Agregaremos también un formulario en el panelHorizontal phmovimiento
[email protected]
Página 18
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Con los siguientes campos.
[email protected]
Página 19
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Para que cambie dinámicamente el formulario de la derecha conforme se haga una selección en la tabla se debe hacer lo siguiente: a. La tabla debe tener un id = tbmovimiento b. En el radio de la tabla , la propiedad autosubmit debe encontrar en true. c. En el formulario, su propiedad partialTrigger debe apuntar a tbmovimiento En el panelhorizontal phproducto de la misma forma agregarle una tabla tbproducto y un formulario, y repetir el procedimiento ya mencionado.
[email protected]
Página 20
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
5. Agregarle un botón “Comenzar Venta” a la pagina con el action= irventadetalle La presentación final de la página seria de esta manera:
Si revisa el backing BkVenta se dara cuenta que conforme ha ido generando objetos en la pagina venta.jsp tambien se han ido creando instancias de las clases que dan soporte a los controles ADF Faces. Cuando se de clic al boton “comenzar Venta” debe aparecer la pagina ventadetalle.jsp.
[email protected]
Página 21
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
11. Desarrollo de interfaz grafica de la pagina ventadetalle.jsp Debe crear una clase BkDetalleVenta y asignarle un scope de tipo request en el faces-context.xml.
En la pagina ventadetalle.jsp agregarle este codigo :
Diseño de la interfaz grafica, agregar un formulario y los componentes: 1. txtmovimiento 2. txtnombreproducto 3. txtidproducto 4. txtunidades 5. txttotallocal 6. txttotaldolar 7. cmdgrabar
Ejecutar la pagina:
[email protected]
Página 22
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
12. Para grabar un detalle son necesarios los datos de idmovimiento y idproducto, estos datos se encuentran en la pagina ventas.jsp, con un paso de parámetros mediante el backing podremos lograr completar esta funcionalidad. Para este caso vamos a pasar tres parámetros: Idmovimiento nombreProducto idproducto
[email protected]
Página 23
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
1. Paso de parámetros desde la pagina venta.jsp hacia ventadetalle.jsp
La navegación entre estas dos paginas se da con la variable irventadetalle , que esta siendo trabajada desde el boton “comenzar Venta” de la pagina venta.jsp. Ingresaremos al código de la clase BkVenta.java Y declararemos 3 variables con sus respectivos accesores set / get
[email protected]
Página 24
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Regresamos a la página y le damos clic derecho sobre el botón “Comenzar Venta” y seleccionamos la opcion: (Antes de hacer este procedimiento debemos dejar en blanco su propiedad action)
Aparece una ventana que indica que se va a generar un método para este botón, de tipo action.
[email protected]
Página 25
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Se ha generado este procedimiento:
En este método capturaremos los valores de las cajas de texto y las cargaremos en un request, este request es el que llevara las variables hacia la pagina ventadetalle.jsp.
[email protected]
Página 26
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Vamos a la pagina ventadetalle.jsp y vamos a cargar a los tres controles con su respectivo value que proviene del backing bkventa.
Ejecutar la pagina y compruebe que pasan los datos.
13. Grabar datos en la tabla detalle.
[email protected]
Página 27
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Desde el dataControl arrastrar hacia el formulario el method insertarDetalle:
Cargar los parámetros que necesita el method :
[email protected]
Página 28
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
En la parte inferior de la página crearemos una tabla que muestre dinámicamente las inserciones que se van haciendo en detalle. Para que esta tabla se actualice dinámicamente debemos crear un method action en el pageDefinition.
Seleccionar la opcion:
[email protected]
Página 29
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Dentro de la carpeta binding dar doble clic a la method Execute y en la ventana emergente seleccionar las opciones:
Finalmente vamos al código del botón “Guardar Venta”:
[email protected]
Página 30
Curso de Especialización Java / Oracle
Autor: Ing. Javier Calizaya Melendrez
Y agregamos el código marcado:
Ejecutar la pagina y probar la funcionalidad.
[email protected]
Página 31