Está en la página 1de 68

Migrando a Web con

Developer10g
Rubn Artavia C.
OCP 9i Forms Developer
OCA Oracle Application Server 10g
Trango Consultores TC S.A.
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Caractersticas de Oracle Forms
RAD
Programacin PL/SQL
Producto con muchos aos
Una base instalada muy grande
Fcil de pasar a Web, segn lo programado
Ciclo de Vida de Forms
Nace en 1985 v1.0 carcter
En 1990 v3.0 muy utilizada
Entre 1993 y 1995 v4.0-v4.5 ambiente grfico
Para 1997 v4.5 D1.4w primera versin Web
En 1999 v6.0 solo Developer, incluye PJC
En el 2000 v6i compatible con 6.0, java
importer, versin en el iAS 9i Release 1
En 2002 v9i iDS, Java, XML, iAS 9i Release 2
En 2005 v10g integracin con EM, SSO
Forms v11g 2009 con WebLogic 11g
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Forms 10g
Integracin con el Application Server Control
Soporte para Java 1.4
Pre inicializacin de runtimes
Restriccin de parmetros en el URL
Mejoras en la integracin con el SSO
Simplificacin de la instalacin para solo
Forms y Reports
Integracin con Java
Mejoras en la herramienta de desarrollo
Integracin con el EM
Monitoreo y administracin de procesos
CPU, memoria, direccin IP, tiempo conexin, etc
Diagnsticos durante la ejecucin
Trace por usuario
Configuracin
formsweb.cfg
formstrace.cfg
Ambiente
default.env
Runtime Pre-Inicializado
Caractersticas para aplicaciones
empresariales
Pre-inicializacin de runtime por aplicacin
Pre-inicializacin de runtime cuando sube el OAS
Nuevos parmetros en el formsweb.cgf para
la utilizacin de esta nueva caracterstica
Restriccin de Parmetros
Capacidad de definir los parmetros que
sern restringidos en el URL de la ejecucin
Impedir que el usuario final modifique
parmetros de la aplicacin
Evitar ataques que generen el problema de
denegacin del servicio
Integracin con SSO
Manejo de espiracin de password de la base
de datos
Se actualiza el RAD (Resource Access Descriptor)
Manejo apropiado de falta del RAD
Se muestra pgina HTML para solicitar la
informacin
Nueva Opcin de
Instalacin
Opcin de instalar solo los servicios de Forms
y Reports
Viene con un servidor HTTP y J2EE
No usa infraestructura
Viene en un CD por aparte
Integracin con JAVA
Java del lado del servidor
Java Importer genera PL/SQL para invocar las
clases Java
Java en el cliente
Pluggable Java Components (PJC)
Java Beans built-ins del paquete Fbean
JAVA Importer
Crea una interface PL/SQL para las clases
Java
Verificacin interna de la clase
Genera cdigo para:
Mtodo pblico Get y Set de los atributos
Llamar a los mtodos de la clase
Crear nuevas instancias de la clase
Nuevo en el Builder
En diseo se pueden usar las mismas
imgenes que en la ejecucin
Nueva variable de ambiente
UI_ICON_EXTENSION (ICO, GIF, JPG)
UI_ICON siempre se usa para la ruta
La informacin de conexin de la base de
datos no aparece cuando se ejecuta en el
cliente de desarrollo
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Porque Actualizar
En lugar de administrar muchos clientes ...
BD
*.fmx *.pll
*.mmx
Porque Actualizar
... se administra un sitio centralizado
BD
*.fmx *.pll
*.mmx
Browser
(Java applet)
Porque Actualizar
Oracle Forms Services
Construido en una infraestructura Web
Optimizacin del uso de la Red
Manejo de Transacciones
Escalabilidad (Memoria, balanceo de cargas)
Mecanismos de seguridad
Integracin con otras aplicaciones o Web Services
Amplia funcionalidad con los PJC o JavaBeans
Beneficios del Ambiente
Web
Reduccin de costos
Mejora la productividad
Aumenta la accesibilidad
Nuevos mercados
Uso nuevas tecnologas
Por qu seguir con Forms?
Conserva la inversin
Continua aprovechando el cdigo actual
Nuevas caractersticas
Nuevas tecnologas
Menos trfico en la red
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Arquitectura Cliente
Servidor
Archivos compilados
*.fmx
*.mmx
*.plx
Oracle Forms runtime
Arquitectura Cliente
Servidor
Archivos compilados
*.fmx
*.mmx
*.plx
Oracle Forms runtime
Oracle Forms
runtime
Runtime
Application Logic
PL/SQL code
User-interface
Data manager &
PL/SQL engine
Oracle Net
SQL*Net
Arquitectura Servidor de
Aplicaciones
Browser
(Java applet)
Archivos compilados
*.fmx
*.mmx
*.plx
Oracle Forms service
Arquitectura Servidor de
Aplicaciones
Browser
(Java applet)
Archivos compilados
*.fmx
*.mmx
*.plx
Oracle Forms service
User-interface
Java applet
Oracle Forms
runtime
Runtime
Application Logic
PL/SQL code
Data manager &
PL/SQL engine
Oracle Net
SQL*Net
Loading Java Applet
Arquitectura Servidor de
Aplicaciones
Browser
(Java applet)
Archivos compilados
*.fmx
*.mmx
*.plx
Oracle Forms service
User-interface
Java applet
Oracle Forms
runtime
Runtime
Application Logic
PL/SQL code
Data manager &
PL/SQL engine
Oracle Net
SQL*Net
Loading Java Applet
HTTP o HTTPS
Componentes del Form
Services
OC4J
Forms Listener
Servlet
Forms Runtime
process
Firewall en
el cliente
Firewall en
el servidor
DB
HTTP/HTTPS
Formas
*.fmx
Oracle
HTTP
Server
Forms Servlet
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Configuracin de Forms
Services
El instalador de Oracle hace la mayora del
trabajo
Configura el Oracle AS 10g
Configura el Oracle DS 10g
Se pueden incluir cambios para las
aplicaciones
formsweb.cfg parmetros para la ejecucin
default.env variables de ambiente del runtime
registry.dat tipos de letras e conos
Configuracin de Forms
Services
formsweb.cfg
Especifica los parmetros de ejecucin de las
aplicaciones de Forms
Equivalente a las opciones de lnea de
comando de cliente/servidor
Todos los parmetros en Oracle AS Forms
Services Deployment Guide en OTN
Configuracin de Forms
Services
formsweb.cfg
Parmetros de ejecucin
Configurar parmetros en la
seccin default
Las secciones de
aplicaciones sobreescriben el
default
Mltiples ambientes en una
instalacin
formsweb.cfg File

userid=
form=test.fmx
background=
width=640
height=480
[order]
userid=order/order@orcl
form=orders
background=order.jpg
Configuracin de Forms
Services
formsweb.cfg
Parmetros de ejecucin
Configurar parmetros en la
seccin default
Las secciones de
aplicaciones sobreescriben el
default
Mltiples ambientes en una
instalacin
formsweb.cfg File

userid=
form=test.fmx
background=
width=640
height=480
[order]
userid=order/order@orcl
form=orders
background=order.jpg
Configuracin de Forms
Services
default.env
Especifica las variables de ambiente para
ejecucin
Equivalente a las variables de ambiente en
Linux/Unix o a las entradas en el Registry de
Windows
default.env File

ORACLE_HOME=C:\Oracle\Forms10g
FORMS_PATH=D:\Work

Configuracin de Forms
Services
default.env
Variables de ambiente
Cada seccin de aplicacin
puede tener su propio env file
default.env File

ORACLE_HOME=C:\Oracle\Forms10g
FORMS_PATH=D:\Work

formsweb.cfg File

userid=
form=text.fmx
background=
width=640
height=480
envFile=default.env
[order]
userid=order/order@orcl
form=orders
background=order.jpg
Configuracin de Forms
Services
Registry.dat
Especifica la ruta de los conos
Equivalente al UI_ICON en cliente/servidor
Mapeo de Fonts
Registry.dat File

default.icons.iconpath=D:\Word\Icons
default.icons.iconextension=gif

Configuracin de Forms
Services
OC4J
Forms Listener
Servlet
Forms Runtime
process
Firewall en
el cliente
Firewall en
el servidor
DB
HTTP/HTTPS
Formas
*.fmx
Oracle
HTTP
Server
Forms Servlet
formsweb.cfg
myconfig.html
forms.conf web.xml
default.env
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Qu cambio en Forms
Servces?
Cuatro grupos de caractersticas:
Diferente funcionamiento en el Web
No funcionan en el Web
Funcionan en el Web pero impactan el trfico
en la red
Platform-specific
Funcionamiento Diferente
Forms se ejecuta en el servidor, NO en el
cliente!
Built-Ins
HOST
ORA_FFI
READ_IMAGE_FILE
TEXT_IO
TOOL_RES
Java Importer (ORA_JAVA)
User Exits
Funcionamiento Diferente
Soluciones:
A veces la capa intermedia es suficiente
Utilizar Webutil
Java components
JavaBeans
Pluggable Java Components (PJCs)
Caractersticas que no
funcionan
Eventos del mouse generan mucho trfico y
son ignorados:
WHEN-MOUSE-MOVE
WHEN-MOUSE-ENTER
WHEN-MOUSE-LEAVE
Resto de los eventos del mouse funcionan
PJC puede tener eventos del mouse
Utilizacin de la propiedad tooltip en lugar
de hint.pll
Caractersticas que no
funcionan
Funciones especficas de Windows:
VBX Controls
ActiveX (OCX) Controls
OLE Containers
Sound Items
Image Control Palettes
Remplazarlas con JavaBeans o PJCs
Caractersticas que funcionan
pero impactan la red
SYNCHRONIZE Built-In
Roundtrip desde cliente al servidor
Abuso genera trfico innecesario en la red
Timers
Forms Client mantienen los timers
Cada timer resulta en un roundtrip en la red
Ejemplo
1 timer por segundo x 500 usuarios concurrentes
500 rountrips por segundo
Caractersticas que funcionan
pero impactan la red
Alternativas :
Java Beans
Pluggable Java Component (PJC)
Caractersticas que funcionan
pero impactan la red
Tabbed canvases
Problema:
Los datos de todos los
items son bajados al
cliente
Puede resultar en un
largo tiempo de espera
inicial
Caractersticas que funcionan
pero impactan la red
Tabbed canvases
Solucin:
Utilizar canvas
escondidos en cada tab
Inconveniente: posible
demora cuando el
usuario navega el tab
por primera vez
Platform-Specific
Iconos deben tener formato GIF o JPG
Formato ICO y XPM todava usados en el Builder
HOST Built-in
Comandos en Unix y Windows son diferentes:
begin
host(dir > dirlist.txt);
end;
Case Sensitivity
Attached libraries, object groups, etc
Fonts
Mapeo a Java Fonts
WebUtil
Conjunto de componentes de Java y un API
PL/SQL
Objetivo WebUtil:
Ayudar a la migracin de cliente/servidor a Web
Agregar capacidades a las aplicaciones Web
Busca solucionar:
Equivalencia a funcionalidad bsica
cliente/servidor
Funciones de valor agregado para
cliente/servidor (ej. D2KWUtil)
Funciones especficas Web (ej. file transfer)
Equivalencia a C/S en Web
Implementaciones en el lado del cliente de:
TEXT_IO
TOOL_ENV
GET_FILE_NAME
HOST
OLE2
READ / WRITE_IMAGE_FILE
APIs compatibles para realizar operaciones en el
cliente
Simplemente agregar un prefijo (ej. CLIENT_)
Que incluya excepciones / errores
Implementar la funcin en el cliente o en el Servidor
de Aplicaciones
Principios del Webutil
Facilidad de uso
Desarrolladores usan PL/SQL
Utilitarios Java
OLB y PLL
Fcil remplazo de cdigo existente
Agregar Client_
Instalacin automtica de componentes
Extensible
Disponible en OTN
Caractersticas Eliminadas
Propiedades del modo caracter y atributos
lgicos
Builts-ins obsoletos y no soportados
Triggers y LOV estilo V2 de Forms
Opciones en la lnea de comandos
Almacenamiento de mdulos en la base de
datos
Ejecucin de reportes con Run_Product
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Proceso de Actualizacin
Existes tres opciones para actualizar las
formas:
Interactivo, usando el Forms Builder
Batch, usando el Forms Compiler
Programacin/Batch, creando programas en C o
Java que modifican los archivos fuentes
Se puede utilizar el Forms Migration
Assistant (Recomendado por Oracle)
Proceso de Actualizacin
Interactivo
Se abre el archivo en el builder de Forms
Se compila el mdulo
Se salva el mdulo actualizado
Se tiene un feedback inmediato
Requiere de ms tiempo
Proceso de Actualizacin
Batch
Se crea un archivo de comandos del sistema
operativo para invocar el compilador de Forms
El resultado queda en un archivo en disco
Un ejemplo de la lnea de comandos es:
Frmcmp module=arch.fmb userid=scott/tiger@orcl
upgrade=yes batch=yes
Proceso de Actualizacin
Programacin / Batch
Se utilizan los APIs que tiene Forms para crear
programas que modifiquen los archivos fuentes
Generalmente estn escritos en Java
Reservado usuarios avanzados
Plan de Trabajo
Respaldar las formas
Hacer una actualizacin piloto
Seleccionar 5 formas representativas
Incluir archivos relacionados (pll, olb, mmb)
Actualizar a Web con el Oracle10g DS
Estimar el tiempo total de trabajo
No permitir nuevas modificaciones
Actualizar la aplicacin completa
Ponerla en produccin con el Application
Server
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Acceso a Datos
Ms tipos de fuentes de datos para generar el
reporte
Bases de datos Oracle
XLM
JDBC
Archivos de Texto
Cursores REF de PL/SQL
Express
Oracle OLAP
Nuevos Formatos
Generacin de archivos en formatos como:
Postscript
PDF
HTML y HTMLCCS
Texto y delimitado
XML
Archivo de definicin del reporte
.rep y .rdf, versiones anteriores
.jsp
.html
.xml
Caractersticas Elimandas
No utiliza Oracle Graphics, tiene un asistente
propio
Programas ejecutables innecesarios fueron
eliminados
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Proceso de Actualizacin
Qu pasos son necesarios para actualizar los
reportes que tengo a la versin 10g?
Bsicamente ninguno, nicamente es ejecutar el
archivo .rdf sin hacerle cambios
Por otro lado, existen excepciones donde ser
necesario abrir el archivo en el builder y
recompilar
La recomendacin es usar un archivo de
comandos para recompilar todos los reportes
La llamada de reportes en forms se debe hacer
con el built-in Run_Report_Object
AGENDA
Descripcin de Oracle Forms
Nuevas caractersticas de Oracle Forms 10g
Justificacin del cambio
Descripcin de la arquitectura
Configuracin del Oracle Forms Services
Cambios en Oracle Forms
Migracin de Formas
Cambios en Oracle Reports
Migracin de Reportes
Integracin de Forms y Reports
Integracin de Forms y
Reports
En la forma crear un objeto tipo Report
Asignar los valores que sern usados, como el
nombre del archivo, servidor de reports, etc.
Los valores de los campos pueden ser
modificados en tiempo de ejecucin
Sustituir las llamadas a reports con el built-in
Run_Product por el built-in Run_Report_Object
La lista de parmetros se puede seguir
utilizando
Ejemplo de Cdigo en
Forms
DECLARE
-- variables de entorno
report_id Report_Object;
report_job_id VARCHAR2(200);
rep_status VARCHAR2(200);
JOB_NUMBER number;
server_name VARCHAR2(200) := 'rep_server10g';
p_lista PARAMETER_LIST;
BEGIN
report_id:= FIND_REPORT_OBJECT('SALIDA');
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESFORMAT,'PDF');
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER, server_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,'ENVID="En"');
-- Se crear y llena la lista como siempre
report_job_id := RUN_REPORT_OBJECT(report_id, p_lista);
rep_status:=REPORT_OBJECT_STATUS(report_job_id);
JOB_NUMBER := length(server_name) + 2;
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP
rep_status := report_object_status(report_job_id);
END LOOP;
IF rep_status='FINISHED' THEN
WEB.SHOW_DOCUMENT
('http://<servidor>:<Puerto>/reports/rwservlet/getjobid' ||
substr(report_job_id,JOB_NUMBER)||'?server='||server_name,'_BLANK');
ELSE
message('REPORTE FALLO CON STATUS: '||rep_status);
END IF;
END;
Muchas Gracias

También podría gustarte