migacion forms apex

79
Migración de Oracle Forms a APEX Daniel Bozzolo [email protected] APEX TOUR 2012 5,7 y 8 de Noviembre de 2012

Upload: daniel-bozzolo

Post on 18-Feb-2017

228 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Migacion forms   apex

Migración de Oracle Forms a APEX

Daniel Bozzolo [email protected]

APEX TOUR 2012

5,7 y 8 de Noviembre de 2012

Page 2: Migacion forms   apex

Agenda • Entendiendo el Proyecto

• Entendiendo la Funcionalidad

• Preparación de la Conversión

• Creación del Proyecto de Conversión de Forms

• Generación de la Aplicación

• Revisando y adecuando la Aplicación

• Reportes – Generación de PDF

Page 3: Migacion forms   apex

Entendiendo el Proyecto

Page 4: Migacion forms   apex

Entendiendo el Proyecto

• Razones para la conversión – Funcionales

• Para comprender por qué hacemos este proyecto de conversión, tendremos que investigar los problemas, dificultades o restricciones no deseadas que los usuarios están teniendo con la aplicación actual.

• De esta forma, seremos capaces de comprender cómo la nueva aplicación debe funcionar después de la conversión, cómo debe lucir, y que es lo que tiene que hacer.

Page 5: Migacion forms   apex

Entendiendo el Proyecto

• Debemos hacernos una serie de preguntas – La aplicación convertida debe ser accedida desde

fuera de la empresa?

– Debe ser integrada con otras aplicaciones web?

– Debe ser utilizada por nuevos usuarios?

– Se necesita alguna funcionalidad que forms no provee?

Page 6: Migacion forms   apex

Entendiendo el Proyecto

• Otra de las razones funcionales para la conversión es el layout, y esta podría ser una de las más importantes. Esto es porque cuando usamos APEX, podemos usar el diseño gráfico que la empresa utiliza para su sitio web o sitio de intranet e integrarlo completamente a la aplicación.

Page 7: Migacion forms   apex

Entendiendo el Proyecto

• Razones para la conversión – Técnicas

• La conversión es realizada para recortar costos operativos?

• Se quiere modernizar el ambiente y look and feel?

• Se quiere tener aplicaciones completamente basadas en browsers?

Page 8: Migacion forms   apex

Entendiendo la Funcionalidad

• Debemos conocer que hace la aplicación y por qué

• Debemos conocer un diseño funcional que ha sido escrito durante la creación de la aplicación.

• Debemos utilizarla para saber que es lo que hace.

• Debemos tener una mirada más profunda en la aplicación y en el proceso de negocio.

Page 9: Migacion forms   apex

Entendiendo la Funcionalidad

• Se debe utilizar la aplicación con un usuario experto que permita la comprensión de ésta.

• Se deben aprender los procesos del negocio, como los usuarios trabajan, los roles que cumplen y por que hace uso el usuario de la aplicación durante su trabajo

Page 10: Migacion forms   apex

Entendiendo la Funcionalidad

• La interacción del usuario en la aplicación original es esencial para la construcción de la nueva aplicación

• Diferencias grandes entre Forms y APEX – En Forms los usuarios están acostumbrados a interactuar

con los datos en forma muy rápida, incluso la validación es al instante

– En APEX para lograrlo se debe utilizar JAVASCRIPT y AJAX(Dynamic Actions , plug-ins)

• Conocer los diferentes roles y procesos de negocio y que roles deben ser asociados a que procesos

Page 11: Migacion forms   apex

Entendiendo la Funcionalidad

• Componentes de un proyecto en Developer Suite – Forms

– Reports

– Menues

– Libraries (pll, objects)

• Hacer lista de los componentes

• Conocer la funcionalidad de éstos

Page 12: Migacion forms   apex

Entendiendo la Funcionalidad

• Arquitectura – Debemos conocer la arquitectura de la aplicación

– Donde está la lógica? • En el forms mismo

• En la BD

– No es lo mismo convertir un form que tiene muchísimo plsql en sus bibliotecas o en sus triggers que aquel que llama store procedures.

– Es bueno conocer lo que hace cada parte de la aplicación, para eso utilizamos Forms y Reports Builder.

Page 13: Migacion forms   apex

Entendiendo la Funcionalidad

• Alguna lógica será difícil de convertir y deberá ser reescrita en el proyecto de convesión

• También habrá partes no convertibles, por ejemplo algunas pantallas de form, las cuales deberemos hacer nosotros mismos.

• A estas partes se les hará un seguimiento durante el proyecto

• La mayoría de esas partes serán las Canvases, Windows, Visual Attributes y otras componentes de Forms que no estarán en la conversión porque APEX no las puede usar

• Cuando encontramos estos elementos debemos ajustar el look and feel en el propio APEX

Page 14: Migacion forms   apex

Preparación de la Conversión

• Debemos estar seguros que no existen más desarrollos en algún otro componente que los que seleccionamos para la conversión

• Colocar todos los últimos fuentes en un directorio seguro

Page 15: Migacion forms   apex

Preparación de la Conversión

• Necesitamos los siguientes archivos para la conversión

» Forms Modules: extensión FMB

» Object Libraries: extensión OLB

» Forms Menus: extensión MMB

» PL/SQL Libraries: extensión PLL

» Report Files: extensiones RDF, REX, o JSP

Page 16: Migacion forms   apex

Preparación de la Conversión

• Creación de archivos XML – Requiere de tres componentes del Developer

Suite • Forms Builder

• Reports Builder

• Forms2xml – frmf2xml [option] file [file]

– Si hay imágenes en los módulos creará las imágenes en archivos TIF

Page 17: Migacion forms   apex

Preparación de la Conversión

• Creación de archivos XML (Forms2xml) – Los archivos XML serán creados y almacenados en

el mismo directorio desde el cual llamamos el comando

– Los nombres asociados serán » formname.fmb formname_fmb.xml

» libraryname.olb libraryname_olb.xml

» menuname.mmb menuname_mmb.xml

Page 18: Migacion forms   apex

Preparación de la Conversión

• Conversión de Archivos de Reportes

Page 19: Migacion forms   apex

Preparación de la Conversión

• Conversión de PLSQL Libraries – Se realiza con el rwconverter

Page 20: Migacion forms   apex

Preparación de la Conversión

• Conversión de PLSQL Libraries – Se realiza con el rwconverter

Page 21: Migacion forms   apex

Preparación de la Conversión

Page 22: Migacion forms   apex

Preparación de la Conversión EL FORMS XML POR DENTRO

Page 23: Migacion forms   apex

Preparación de la Conversión EL FORMS XML POR DENTRO

Page 24: Migacion forms   apex

Preparación de la Conversión EL MENU XML POR DENTRO

Page 25: Migacion forms   apex

Preparación de la Conversión

EL REPORT XML POR DENTRO

Page 26: Migacion forms   apex

Preparación de la Conversión

EL PLD POR DENTRO

Page 27: Migacion forms   apex

Preparación de la Conversión

El siguiente paso es crear el schema y migrar toda la información a el nuevo schema asociado a APEX

• Export de Oracle

• Export de herramientas de terceros

• Generación de scripts y ejecución desde sqlplus, herramientas de 3eros o desde el mismo APEX

Page 28: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

Page 29: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

• Definición de la Aplicación

Page 30: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

•Creación del Proyecto

Page 31: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

•Creación del Proyecto

Seleccionamos el primer módulo

Page 32: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

•Creación del Proyecto

Levantamos el resto de los módulos

Page 33: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

• Creación del Proyecto

Una vez cargados los módulos

Page 34: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

• Aplicabilidad, indica cuando un objeto será o no parte de nuestro proyecto

Page 35: Migacion forms   apex

Creación del Proyecto de Conversión de Forms

• Aplicabilidad, indica cuando un objeto será o no parte de nuestro proyecto

Page 36: Migacion forms   apex

• Theme

Creación del Proyecto de Conversión de Forms

Page 37: Migacion forms   apex

• En la página del proyecto veremos los diferentes componentes y su estado de completitud • Los componentes más importantes serán resaltados y veremos la posibilidad de hacerles cambios • Las anotaciones serán utilizadas para setear el estatus de completitud y la asignación a desarrolladores. Son utilizadas para darnos una idea de las tareas pendientes.

Planificando el Proyecto

Page 38: Migacion forms   apex

Planificando el Proyecto

La página de proyecto

Dentro de orders ….

Page 39: Migacion forms   apex

Planificando el Proyecto

Orders

Page 40: Migacion forms   apex

Planificando el Proyecto Orders

Page 41: Migacion forms   apex

Planificando el Proyecto Orders

Page 42: Migacion forms   apex

Planificando el Proyecto

Triggers

• Son quizá la parte más compleja de la conversión • Debemos utilizar mucho tiempo investigandolos • La lógica del trigger puede ser incorporada a APEX como una computation,validation o proceso plsql en la fase de posgeneración • El post-query puede ser incorporado como parte de la generación del Enhanced Query

Page 43: Migacion forms   apex

Planificando el Proyecto

Triggers

Page 44: Migacion forms   apex

Planificando el Proyecto

Para examinar el Trigger debemos editarlo

Page 45: Migacion forms   apex

Planificando el Proyecto LOVS, serán convertidas en forma automática

Page 46: Migacion forms   apex

Planificando el Proyecto Alerts, pueden ser almacenadas como mensajes de texto En la Shared Component

Page 47: Migacion forms   apex

Planificando el Proyecto Anotaciones de las componentes

Es una de las más importantes piezas de control

Page 48: Migacion forms   apex

Planificando el Proyecto

• La página del proyecto nos ayuda diciendo acerca de la cantidad de componentes y

la realización de las diferentes partes. • La pantalla de detalles de Forms nos dice qué hacer con ciertos componentes dándonos consejos en los detalles de implementación. • La pantalla de detalles nos dice cuántas partes de los componentes hay y cuál es su situación. • Los detalles de los componentes nos da en los resúmenes de todos los componentes que tenemos en un Módulo. • En la pantalla de detalles de los componentes específicos, podemos echar un vistazo al fuente y hacer los cambios en la anotación de este componente. • Las anotaciones nos da algunas herramientas para el control de la página. Podemos hacer o deshacer la aplicabilidad de un componente y asignar un componente a alguien en nuestro equipo.

Page 49: Migacion forms   apex

Obteniendo la Lógica Correcta

Data Blocks

• Los bloques de construcción de nuestras páginas APEX son los bloques y, por supuesto, los reportes • Los bloques que se generan son los basados en tablas • La forma en que los bloques se generarán se determina por APEX en función del contenido, el número de elementos en el bloque, y, lo más importante, el número de registros que aparecen.

Page 50: Migacion forms   apex

Obteniendo la Lógica Correcta

Block Items

Page 51: Migacion forms   apex

Obteniendo la Lógica Correcta

Block Items

Page 52: Migacion forms   apex

Obteniendo la Lógica Correcta

Original vs Enhanced Query

Page 53: Migacion forms   apex

Obteniendo la Lógica Correcta

Triggers, la mayoría necesita ser implementados En la pos-generación

Page 54: Migacion forms   apex

Obteniendo la Lógica Correcta

Triggers, otros en la pre-generación

Page 55: Migacion forms   apex
Page 56: Migacion forms   apex
Page 57: Migacion forms   apex
Page 58: Migacion forms   apex
Page 59: Migacion forms   apex
Page 60: Migacion forms   apex
Page 61: Migacion forms   apex
Page 62: Migacion forms   apex
Page 63: Migacion forms   apex
Page 64: Migacion forms   apex
Page 65: Migacion forms   apex
Page 66: Migacion forms   apex
Page 67: Migacion forms   apex
Page 68: Migacion forms   apex
Page 69: Migacion forms   apex

Revisando y Adecuando la Aplicación Validaciones

Page 70: Migacion forms   apex

Revisando y Adecuando la Aplicación Validaciones

Page 71: Migacion forms   apex

Revisando y Adecuando la Aplicación Validaciones

Page 72: Migacion forms   apex

FORMS y APEX

Oracle Forms Oracle APEX Alerts Text messages en la Shared Components y/o Validaciones a nivel de la Aplicación o la Página. Blocks Blocks serán generados como Regiones en APEX. Canvases Son ignoradas en APEX durante la conversión. Editors Editor HTML. Lists of Values El record group asociado será incluído en la conversión. Una lista de Valores puede ser desarrollada después de la generación Program Units Program Units deben ser implementados luego de la generación como elementos PL/SQL. Triggers En APEX no se conoce este elemento. Sin embargo hay algunas cosas que pueden implementarse tales como Post- Query Triggers

Page 73: Migacion forms   apex

Reportes

• Estandar

• Interactivos

• Generación de planillas

• Impresión de PDF, RTF, XLS…

Page 74: Migacion forms   apex

Impresión PDF

• APEX requiere un print server externo

• EL motor de APEX genera los datos del reporte en XML y un template en XSL-FO o RTF

Page 75: Migacion forms   apex

Soluciones

• Apache FOP – Solo PDF (herramienta de diseño de

templates WYSIWYG FO-Designer) • Apache Cocoon (Carl Backstrom)

– Agrega RTF • Apache Cocoon (Robert Stefanov)

– Agrega XML, XLS y HTML • Oracle BI Publisher

– Diseño en MS Word

Page 76: Migacion forms   apex

Soluciones • Soluciones basadas en URL

– Oracle Reports – Crystal Reports – Jasper Reports

• Integración con Jasper Reports (Dietmar Aust) (Diseñando con iReports) – URL – Utilizando la BD como proxy (via UTL_HTTP)

solución más segura – Generando un blob

Page 77: Migacion forms   apex

Preguntas????

Page 78: Migacion forms   apex

Referencias

• Oracle Application Express Forms Converter

A migration guide using the APEX conversion utility

Douwe Pieter van den Bos