Migacion forms apex

Post on 18-Feb-2017

228 views 1 download

Transcript of Migacion forms apex

Migración de Oracle Forms a APEX

Daniel Bozzolo Daniel.bozzolo@logos.com.uy

APEX TOUR 2012

5,7 y 8 de Noviembre de 2012

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

Entendiendo el Proyecto

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.

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?

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.

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?

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.

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

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

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

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.

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

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

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

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

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

Preparación de la Conversión

• Conversión de Archivos de Reportes

Preparación de la Conversión

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

Preparación de la Conversión

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

Preparación de la Conversión

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

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

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

Preparación de la Conversión

EL REPORT XML POR DENTRO

Preparación de la Conversión

EL PLD POR DENTRO

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

Creación del Proyecto de Conversión de Forms

Creación del Proyecto de Conversión de Forms

• Definición de la Aplicación

Creación del Proyecto de Conversión de Forms

•Creación del Proyecto

Creación del Proyecto de Conversión de Forms

•Creación del Proyecto

Seleccionamos el primer módulo

Creación del Proyecto de Conversión de Forms

•Creación del Proyecto

Levantamos el resto de los módulos

Creación del Proyecto de Conversión de Forms

• Creación del Proyecto

Una vez cargados los módulos

Creación del Proyecto de Conversión de Forms

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

Creación del Proyecto de Conversión de Forms

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

• Theme

Creación del Proyecto de Conversión de Forms

• 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

Planificando el Proyecto

La página de proyecto

Dentro de orders ….

Planificando el Proyecto

Orders

Planificando el Proyecto Orders

Planificando el Proyecto Orders

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

Planificando el Proyecto

Triggers

Planificando el Proyecto

Para examinar el Trigger debemos editarlo

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

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

Planificando el Proyecto Anotaciones de las componentes

Es una de las más importantes piezas de control

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.

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.

Obteniendo la Lógica Correcta

Block Items

Obteniendo la Lógica Correcta

Block Items

Obteniendo la Lógica Correcta

Original vs Enhanced Query

Obteniendo la Lógica Correcta

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

Obteniendo la Lógica Correcta

Triggers, otros en la pre-generación

Revisando y Adecuando la Aplicación Validaciones

Revisando y Adecuando la Aplicación Validaciones

Revisando y Adecuando la Aplicación Validaciones

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

Reportes

• Estandar

• Interactivos

• Generación de planillas

• Impresión de PDF, RTF, XLS…

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

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

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

Preguntas????

Referencias

• Oracle Application Express Forms Converter

A migration guide using the APEX conversion utility

Douwe Pieter van den Bos