miércoles, 15 de febrero de 2017

Ejecutando una Aplicación de Forms Developer

Objetivos:
• Iniciar OC4J.
• Describir el entorno de ejecución.
• Describir los elementos de un Form en ejecución.
• Navegar por una aplicación Forms.
• Describir los dos modos principales de operación.
• Ejecutar un Form en un navegador Web.
---Recuperar datos restringidos y no restringidos.
---Insertar, actualizar y eliminar registros.
---Mostrar errores de Base de Datos.

______________________________________________________________________________________
Oracle Containers for J2EE (OC4J).
Oracle Application Server Containers para J2EE (OC4J) es el contenedor Java 2 Enterprise Edition (J2EE) de Oracle que se ejecuta en cualquier Java Virtual Machine (JVM), que es el intérprete de Java disponible en cada sistema operativo y plataforma hardware. El mismo es completamente implementado en Java, lo cual lo hace ligero y fácil de instalar. Al mismo tiempo, proporciona soporte completo para aplicaciones J2EE, incluyendo servlets, Enterprise JavaBeans, paginas JavaServer, etc.

OC4J es fundamental para ejecutar aplicaciones Forms. Incluido en Oracle Developer Suite para así permitir al desarrollador probar sus aplicaciones en la misma máquina en la que está ejecutando Forms Builder. En otras palabras, no es necesario instalar Oracle Application Server para probar las aplicaciones.

Como iniciar OC4J:
En Windows:
Ejecutar el el archivo startinst.bat localizado en el subdirectorio: j2ee\DevSuite\ del directorio principal de Developer Suite. De igual manera debe ejecutar stopinst.bat para detener la instancia de OC4J. Como alternativa, puede llamar estos archivos desde el menú de Inicio de Windows: Programas>Oracle Developer Suite - iDS10g>Forms Developer>Start[Shutdown] OC4J Instance.

Nota: El archivo por lotes se ejecuta en una ventana separada; Puede minimizar esta ventana si lo desea pero no debe cerrarla, o abortará la instancia de OC4J.

Ejecutando un Form:
El despliegue de aplicaciones de Form en la Web se implementa mediante la arquitectura de tres niveles de Oracle Application Server. La lógica de la aplicación y el motor de ejecución de Forms Services residen en el servidor de aplicaciones de nivel medio. Todos los triggers de procesamiento ocurren en la Base de Datos y en los servidores de aplicaciones, mientras que el procesamiento de la interfaz de usuario se produce en el cliente Forms. Los usuarios finales pueden ejecutar aplicaciones Forms en un explorador Web.
Los usuarios acceden a una aplicación mediante sus navegadores Web introduciendo la URL que apunta a la aplicación. Forms Services genera un archivo HTML que descarga un applet Java en la máquina cliente. Este pequeño applet es capaz de mostrar la interfaz de usuario de cualquier forma, mientras que la lógica de la aplicación se ejecuta en el nivel medio.
______________________________________________________________________________________
Entorno de Ejecución de Java-Java Runtime Environment.
El navegador Web puede ejecutar un applet de Java ya que este proporciona un entorno de ejecución Java (JRE). Sin embargo, no todos los navegadores Web pueden ejecutar de forma nativa el cliente Forms. En plataformas Windows, Oracle proporciona un complemento llamado JInitiator que proporciona una alternativa JRE capaz de ejecutar el applet Forms.

JInitiator ofrece varios beneficios:
• Es capaz de descargar de forma incremental los ARchivos Java (archivos JAR) necesarios para el cliente Forms, proporcionando un inicio de aplicación más rápido.
 Almacena (localmente) en caché los archivos JAR, por lo que no es necesario descargarlos de nuevo.
• Mejora el rendimiento de la aplicación en una sesión de navegador gracias al caché de instancias applet. Cuando el usuario navega desde una página del navegador a otra, la aplicación en ejecución se almacena en caché. Cuando el usuario vuelve a la página, el applet que se estaba ejecutando se restaura automáticamente, incluyendo todos los datos introducidos en ella.
• Se configura automáticamente para ejecutar la aplicación Forms en modo seguro. Esto permite que la aplicación tenga acceso a los recursos que el modelo de sandbox Java normalmente prohíbe utilizar, como los servicios de impresión.

______________________________________________________________________________________
El Cliente Forms.
El Cliente Forms es un applet Java genérico. Este applet is descargado y almacenado automáticamente en caché en la máquina cliente por el Forms Services. El Cliente Forms consta de un conjunto de clases Java. En el arranque, sólo se descargan las clases Java necesarias para inicializar la aplicación. Los archivos de clase adicionales se descargan dinámicamente, según sea necesario, para proveer actividad adicional a la interfaz de usuario.

No es necesario implementar un applet Java independiente para cada aplicación. El mismo applet genérico se utiliza para ejecutar cualquier aplicación de Forms Services, independientemente de su tamaño y complejidad.

Responsabilidades del Cliente Forms.
El Cliente Forms representa la capa de interfaz de usuario y tiene tres funciones principales:
• Mostrar la aplicación de Forms Services al usuario.
• Procesar de forma eficiente la interacción del usuario con Forms Services.
• Procesar de forma eficiente los mensajes de entrada de Forms Services y traducirlos en objetos de interfaz para el usuario final.

______________________________________________________________________________________
El Forms Listener Servlet.
El Forms Listener Servlet es un servlet Java que se ejecuta en un servidor Web equipado con un motor servlet, como OC4J. El servidor Web dirige las solicitudes HTTP del Forms Listener Servlet directamente a las instancias de servlet.

El Forms Listener Servlet se encarga de:
• Gestionar la creación del proceso Forms Runtime para cada cliente.
• Gestionar las comunicaciones de red que se producen entre el cliente y su proceso Forms Runtime asociado, a través del servidor Web.

Esto significa que el cliente envía solicitudes HTTP y recibe respuestas HTTP desde el propio proceso del servidor Web. Dado que el servidor Web actúa como punto final de la red para el cliente, no hay necesidad de exponer máquinas y puertos adicionales en el firewall.

______________________________________________________________________________________
Forms Runtime Engine.
El Motor de Ejecución Forms es un proceso en el servidor de aplicaciones que es iniciado por el Forms Listener Servlet. El usuario no puede iniciar el Motor de Ejecución Forms directamente.

Funcionalidad:
• Controla toda la lógica, funcionalidad y ejecuta el código escrito de la aplicación Forms.
• Administra las solicitudes del Cliente Forms y envía metadatos al cliente para describir la interfaz de usuario.
• Se conecta y comunica con la Base de Datos Oracle a través de Oracle Net Services (reemplazo de Net8 SQL * Net).

______________________________________________________________________________________
Descripción del Entorno de Ejecución.
En tiempo de ejecución, verá los siguientes componentes:
1. Ventana del navegador.
2. Java applet (contenido en la ventana del navegador).
3. Menú predeterminado (contenido en el applet).
4. Barra de herramientas de menús (contenida en el applet).
5. Consola (contenida en el applet).

¿Qué es el Menú Predeterminado?
El menú Predeterminado, que forma parte de todas las aplicaciones Oracle Forms Developer, es una alternativa a las operaciones de pulsación de teclas. Puede reemplazar o personalizar el menú Predeterminado para introducir su propia funcionalidad.

¿Qué es la Barra de Menú?
La barra de menú contiene botones correspondientes a los elementos del menú. En tiempo de ejecución, aparece encima de cualquier barra de herramientas definida por el usuario. Ejecuta el mismo código que los elementos del menú y es un acceso directo a los comandos de menú que en la mayoría de los casos reduce el código y el esfuerzo.

¿Qué es la Consola?
La consola es el nombre genérico para las características estándar que proporcionan información en tiempo de ejecución. La consola se muestra en la parte inferior de la ventana y consta de:
• La línea de mensajes que muestra formularios y mensajes específicos de la aplicación.
• La línea de estado que muestra una variedad de indicadores para reflejar el estado actual del módulo de formulario.

Indicador
Descripción
Record: n/m
Indica el enésimo (n)   registro recuperado y mostrado hasta ahora, de m número de registros totales que pueden ser recuperados por la consulta.
Hasta que se obtenga el último registro, m aparece como "?"; Después de eso, muestra el número correspondiente al último registro.
Enter-Query
Indica que el bloque actual está en el modo de consulta de entrada y no se han recuperado registros.
List of Values
Indica que una lista de valores (LOV) está asociada con el elemento actual.
______________________________________________________________________________________
Algunos Elementos de Datos.
Una aplicación Forms puede contener diferentes tipos de elementos de datos:
1.  Prompts (Similar a los Labels o Etiquetas).
2.  Text Items.
3.  Boilerplate graphics.
4.  Check boxes.
5.  Boilerplate text.
6.  Display items.
7.  List items.
8.  Push buttons.
9.  Image items.
10.  Radio groups.
No aparecen en la foto:
Hierarchical tree items (Elementos del árbol jerárquico).
Chart items (Elementos de gráfico).
Custom items.

______________________________________________________________________________________
Navegando en una Aplicación Forms.
El Menú Predeterminado.
El Menú Predeterminado está integrado automáticamente en un Forms, pero puede ser inhabilitado o reemplazado por un menú personalizado. En el puede seleccionar las opciones con el ratón o con las teclas de función.
En tiempo de ejecución, utilice el menú para realizar las tareas siguientes:
• Mover el cursor y naveguar entre bloques de datos, registros y elementos.
• Guardar o borrar todos los cambios.
• Ejecutar consultas.
• Insertar nuevos o eliminar registros existentes.
• Invocar la Ayuda.

La Barra de Menú.
Puede utilizar los botones de la Barra de Menú para realizar las siguientes operaciones también disponibles en el Menú Predeterminado:
• Guardar todos los cambios.
• Salir del Forms.
• Ejecutar Consultas.
• Navegar entre bloques de datos o registros.
• Insertar nuevos o eliminar registros existentes.
• Invocar la Ayuda para ver las propiedades de un elemento.

El Mouse.
Puede utilizar el Mouse para navegar y realizar muchas operaciones de usuario sin necesidad de aprender las teclas de función.
Utilice el Mouse para realizar las siguientes acciones:
• Mover el cursor.
• Seleccionar una opción de un menú.
• Seleccionar una opción de un LOV (Lista de Valores).
• Activar o desactivar un Chek Box.
• Seleccionar un botón, incluido un Radio Button.
• Cambiar a una ventana abierta.
• Responder a una alerta.
• Desplazarse por los registros de un Bloque de Datos o de una barra de desplazamiento (scroll bar).
• Manipular un elemento personalizado.

Los Botones.
Las aplicaciones Web utilizan a menudo botones como medio de navegación. Puede hacer clic en los botones con el Mouse.
Utilice los botones para realizar las siguientes tareas:
• Cambiar el foco de entrada.
• Mostrar una lista de valores.
• Invocar un editor.
• Invocar/abrir otra ventana.
• Confirmar datos.
• Realizar una consulta.
• Realizar cálculos.
• Salir del Form.

Teclas de función.
Además de navegar con el ratón, puede desplazarse de un elemento a otro en secuencia con las teclas de función.
Utilice las teclas de función para realizar las tareas siguientes:
• Navegar entre bloques de datos, registros y elementos.
• Ejecutar consultas.
• Insertar nuevos registros o eliminar los existentes.
• Invocar la Ayuda.

Para ver una lista de teclas y las funciones que realizan, seleccione Ayuda> Teclas o pulse [Ctrl] + K.

______________________________________________________________________________________
Los Modos de Operación en Forms.
Forms Builder tiene dos modos principales de operación en los cuales el usuario puede interactuar con el Form: estos son el modo Enter-Query y modo Normal. El tercer modo de operación es el modo Query, este se produce mientras Forms está procesando una consulta; Pero en este último, el usuario no puede interactuar con el Form mientras se está procesando.

Modo Enter-Query.
Utilice el modo Enter-Query para introducir criterios de búsqueda para una consulta de Base de Datos. En el modo Enter-Query, las pulsaciones de teclas se interpretan como criterios de búsqueda para recuperar datos.
En el modo Enter-Query puede:
• Recuperar todos los registros.
• Recuperar registros mediante criterios de selección.
• Recuperar registros mediante el cuadro de diálogo Query/Where.
• Obtener el número de registros que se recuperarán antes de extraerlos de la Base de Datos mediante Query> Count Hits.

En el modo Enter-Query no puede:
• Navegar fuera del bloque actual.
• Salir de la sesión en ejecución.
• Utilizar ciertas funciones, tales como: Siguiente registro (Next Record).
• Insertar nuevos registros.
• Actualizar registros existentes.
• Eliminar registros.

Modo Normal.
Utilice el modo Normal para insertar y alterar registros en la Base de Datos. En el modo Normal, las pulsaciones de teclas se interpretan como la introducción de nuevos registros o la modificación de los existentes.
En Modo Normal puede:
• Recuperar todos los registros.
• Insertar nuevos registros.
• Actualizar registros.
• Eliminar registros.
• Confirmar registros (Commit).
• Revertir registros (Clear).
• Navegar fuera del bloque de datos actual.
• Salir de la sesión de ejecución.

En Modo Normal no puede:
• Recuperar un conjunto restringido de registros.
• Invocar el cuadro de diálogo Query/Where.

______________________________________________________________________________________
Recuperando Datos.
Puede utilizar Forms para recuperar información de la Base de Datos sin conocer ninguna sintaxis de SQL. Sin embargo, si es un usuario SQL experimentado, puede complementar el procesamiento predeterminado de Oracle Forms Developer con sus propios predicados de SQL.
Hay dos tipos generales de consultas:
Tipo de Consulta
Descripción
Irrestricto/Sin Restricción (query global)
Equivalente a seleccionar todas las filas de todas las columnas de la tabla base para el bloque de datos en cuestión.
Restringido
Equivalente a seleccionar un conjunto restringido de filas de todas las columnas de la tabla base para el bloque de datos en cuestión.
Consulta sin Restricciones.
Puede recuperar datos sin restricciones realizando una de las siguientes acciones:
• Seleccionando Query> Execute.
• Presionando la tecla de función correspondiente.
• Haciendo clic en el botón Query Execute.

Nota: No puede realizar una consulta mientras tiene actualizaciones (Updates), inserciones (Inserts) o eliminaciones (Deletes) sin confirmar. Debe guardar o deshace los cambios antes de continuar con la consulta.

Consulta Restringida.
Puede utilizar cualquiera de los métodos siguientes para realizar una consulta restringida:
• Especificando valores exactos.
• Especificando un patron X.
• Usando un cuadro de diálogo Query/Where para introducir predicados SQL.

Directrices:
• No utilice comillas con elementos de carácter y fecha.
• Puede usar el operador LIKE de forma implícita con % o _.
• Utilice (#) delante de operadores SQL.
Eje:
#BETWEEN 2350 AND 2360
• Utilice Query/Where para condiciones de consulta complejas.
• Utilice el formato de fecha predeterminado (DD-MON-RR) en Query/Where.
• Utilice comillas alrededor de literales en Query/Where.

Cómo realizar una consulta restringida:
1. Realice una de las siguientes acciones:
--Seleccionar Query>Enter.
--Presionar el botón Query Enter.
--Presionar la tecla función correspondiente.
2. Enter-Query se muestra en la barra de estado.
3. Introducir los criterios de búsqueda en los elementos/campos apropiados.
4. Realizar una de las siguientes acciones:
--Seleccionar Query>Execute.
--Presionar el botón Execute Query.
--Presionar la tecla función correspondiente.

Nota: Forms Builder construye una sentencia SELECT utilizando el operador AND para todas las condiciones especificadas.

______________________________________________________________________________________
Cuadro de diálogo Query/Where.
En el cuadro de diálogo Query/Where puede introducir criterios de búsqueda complejos utilizando el lenguaje SQL. Para utilizar el cuadro de diálogo Query/Where, se requiere conocimientos de SQL.
Query/Where se usa para:
• Escribir condiciones de búsqueda complejas.
• Escribir consultas con predicados OR.
• Ordenar el resultado de una consulta.

Nota: Forms Builder utiliza lógicamente el operador AND para añadir las condiciones de Query/Where a cualquier otro criterio de búsqueda (incluyendo los impuestos por el form designer). El cuadro de diálogo Query/Where no funciona en un elemento cuyo nombre difiere del nombre de su columna de Base de Datos correspondiente.

Ejemplo:
1. Para restringir una consulta de órdenes de compra con un representante de ventas (:S) igual a 11 o un código de pedido (:O) entre 100 y 200, debe especificar lo siguiente en el cuadro de diálogo Query/Where:
:S = 11 OR :O BETWEEN 100 AND 200
2. Para ordenar los datos por código de representante (:S), especifique lo siguiente en el cuadro de diálogo Query/Where:
ORDER BY :S

Para usar el cuadro de diálogo Query/Where:
1. Realice una de las siguientes acciones:
--Seleccione Query>Enter.
--Presione Enter-Query.
--Presione la tecla función correspondiente.
2. Introduzca (:) seguido del nombre de variable único en el campo o campos en cuestión.
3. Realice una de las siguientes acciones:
--Seleccione Query>Execute.
--Haga clic en Execute Query.
--Presione la tecla función apropiada.
Nota: Puede seleccionar Query>Count Hits si simplemente desea saber cuántos registros coincidirán con sus criterios.
4. Aparecerá el cuadro de diálogo Query/Where.
5. Introduzca los criterios de búsqueda utilizando variables, SQL y operadores lógicos y luego presione OK.

Nota: para realizar una consulta sin ninguna variable, sólo escriba los dos puntos (:) y ejecute la consulta. Al hacer esto, también se muestra el cuadro de diálogo Query/Where.

Al introducir ORDER BY en el Query/Where, se anula cualquier orden definido por el diseñador.

______________________________________________________________________________________
Insertando, Actualizando y Eliminando Registros.
Al momento de entrar a un Form típico, el modo por defecto es Normal. Esto significa que Forms Builder considera INSERT a todo lo que se escriba en un registro en blanco y UPDATE cuando se escribe sobre un registro existente.
Cómo insertar un Registro:
1. Asegúrese de que tiene el cursor colocado en un registro en blanco realizando uno de los pasos siguientes:
--Desplácese hacia abajo hasta encontrar un registro en blanco (siempre el último en el bloque).
--Seleccione Record>Insert.
--Haga clic en Insert Record ().
--Pulse la tecla de función correspondiente.
2. Introduzca los datos en los campos pertinentes.

Cómo actualizar un Registro:
1. Seleccione Query>Enter.
2. Introduzca los criterios de búsqueda para recuperar el registro a actualizar.
3. Seleccione Query>Execute para recuperar todos los registros que cumplan con sus criterios de búsqueda especificados.
4. Desplácese por los registros, deteniéndose en el registro que desea actualizar.
5. Actualice el registro.

Cómo eliminar un Registro:
1. Seleccione Query>Enter.
2. Introduzca los criterios de búsqueda para recuperar el registro a eliminar.
3. Seleccione Query>Execute para recuperar todos los registros que cumplan con sus criterios de búsqueda especificados.
4. Desplácese por los registros, deteniéndose en el registro que desea eliminar.
5. Elimine el registro realizando una de las siguientes acciones:
--Seleccione Record>Delete para borrar el registro y marcarlo para borrarlo.
--Haga clic en Delete Record () para borrar el registro y marcarlo para suprimirlo.
--Presione las teclas de función apropiadas.

______________________________________________________________________________________
Hacer los cambios permanentes.
Para que las inserciones, actualizaciones o eliminaciones sean permanentes, debe guardarlas (Commit) en la Base de Datos.
Para asentar los cambios en la Base de Datos, realice una de las siguientes acciones:
• Seleccione Action>Save.
• Haga clic en Save en la barra de menú.

Descartando los cambios:
Para descartar inserciones, actualizaciones o eliminaciones, debe limpiar los registros (Rollback) en lugar de guardarlos.
Para ello, realice un Rollback seleccionando Action>Clear all.

Salir de una sesión en ejecución:
Salga de la sesión en ejecución realizando una de las acciones siguientes:
--Seleccione Action>Exit.
--Haga clic en Exit.
--Presione las teclas de función apropiadas.

Nota: De forma predeterminada, no puede salir del formulario mientras tiene actualizaciones, inserciones o eliminaciones no guardadas. Debe guardar o deshacer los cambios antes de salir.

______________________________________________________________________________________
Mostrando Errores.
Si se muestra (en la línea de mensajes) algún error Oracle mientras está utilizando una aplicación Form, puede ver el código SQL subyacente seleccionando Help>Display Error.
Nota: Al seleccionar Help>Display Error sólo se muestran los errores que inician con ORA-, los cuales son errores de Base de Datos.
______________________________________________________________________________________
Fuente: Oracle Forms Developer 10g: Build Internet Applications.