miércoles, 13 de noviembre de 2013

Configurando JDeveloper con OAF para desarrollo en EBS R12


Saludos mis queridos amigos, ahora les voy a explicar que necesitamos para poder trabajar con JDeveloper con OAF y el EBS R12.
Lo recomendable es tener JDeveloper de Oracle, ahora bien tenemos que saber exactamente con que versión de JDev. Tenemos que trabajar, para ellos iniciamos sesión en el EBS R12, y hacemos click en el enlace “About this Pague

Se nos abrirá una página, nos desplazamos al tab “Technology Components

En esta página vemos todas las tecnologías utilizadas en EBS R2, la que nos interesa es lo que tenemos resaltado con amarillo “OA Framework 12.1.3”, en metalink buscamos la versión de JDev. Que tenga incluida esta compilación de OAF, en este artículo podrán encontrar las diferentes versiones de OAF que existen para las diferentes versiones del EBS:
OA Framework - How to find the correct version of JDeveloper to use with eBusiness Suite 11i or Release 12.x [ID 416708.1]

Si se figan en la imagen el parche “Patch 9879989” es aplicado tanto como para la versión 12.1.3 como para 12.1.3.1, así que este será el que descargaremos para instalarlo en nuestro sistema operativo y generar nuestros concurrentes,nuestras paginas OAF,etc. , notaran que es un archivo  zip, la instalación de JDeveloper consiste solamente en descomprimir el Archivo  en un determinado directorio y configurar unas variables de entorno, esta Versión de JDeveloper nos servirá tanto como generar programas java para utilizarlos como concurrentes como para crear nuevas aplicaciones para el EBS R12(Aplicaciones Web):

Vamos a descomprimir el archivo en la unidad “C” en una carpeta que se llame JDeveloperOAF

Al descomprimir notamos que tenemos tres directorios, debemos crear un acceso directo a “jdevW.exe” el cual se encuentra en la ruta “C:\JDeveloperOAF\jdevbin\jdev\bin”:


Ahora vamos a configurar una variable de entorno llamada “JDEV_USER_HOME”, esta variable se la configura para que JDeveloper sepa donde estarán nuestros proyectos y el archivo que nos servirá para conectarnos a al Base de Datos, esto lo explicare cuando hagamos nuevas páginas en OAF.

Ahora vamos a ejecutar JDeveloper.


Si se fijan al iniciar por primera vez JDeveloper nos pide que migremos archivos de versiones anteriores(esto solo si fuese el caso)

Al terminar de cargar JDeveloper, nos mostrara la pantalla inicial:



Bueno eso es todo amigos en el siguiente articulo explicare como crear nuestra primera aplicación OAF, saludos.

miércoles, 30 de octubre de 2013

Generación Dinámica de Código utilizando “ToolCode”



En la actualidad existen muchas herramientas que nos ayudan a la hora de desarrollar software, en algunos casos estas herramientas son fáciles de usar y en otros son demasiado complejas, también tenemos muchas tecnologías que podemos utilizar para desarrollar software tales como: LinQ,NHibernate,etc.
ToolCode” es una herramienta desarrollada en Java que genera código para C#, este código es utilizado para hacer mantenimiento a tablas alojadas en una B.D. de SQL SERVER 2005 u 2008, la idea Inicial de “ToolCode” era de ser una herramienta que ayudara en el desarrollo de software en lenguajes como: JAVA,C#,VB, actualmente solo podemos generar código para C#.
Funcionamiento
Bueno la idea básica es tener un esquema de Base de Datos listo, conectarnos a él, leer la  información de las tablas, tales como Nombres de tablas, columnas, tipo de datos de las columnas, identificar campos PK y FK, campos que acepten valores nulos, campos auto incrementales, etc, ya con esta informa obtenida “ToolCode”por cada tabla contenida en el motor de Base de Datos genera:
1.       Una clase que representa un registro en la B.D. esta clase tiene como atributos las columnas de la tabla, en sus propiedades se hacen las validaciones de los atributos.
2.        Por Cada tabla genera script de procedimientos almacenados que sirven para:
a.       Insertar: <Nombre Tabla>_insertar
b.      Actualizar: <Nombre Tabla>_actualizar
c.       Eliminar:<Nombre Tabla>_eliminar
d.      La selección de registros es algo que se implementa en la clase mencionada arriba, se la realizo de esta manera ya que cuando seleccionamos información la consulta tiene que poder ser cambiante, claro está referente a la tabla especificada, entre la información que podemos cambiar son: el número de columnas a recuperar de la tabla y la condición where que se aplicara al filtro de los datos.
3.       Por cada tabla genera una clase , la cual es la encargada de invocar a los procedimientos almacenados mencionados arriba, esta clase hace uso de la clase que representa un registro de nuestra tabla, así como una clase central que es la encargada de conectarse al motor y de gestionar los retrocesos en caso de errores, .
4.       Como se mencionó Arriba “ToolCode”genera una clase principal “DBConexion” encargada de conectarse al motor, esta clase es la encargada de abrir la conexión al momento de hacer una determinada transacción en un o muchas tablas, en caso de algún error esta clase realiza el rollback y lanza la excepción hacia afuera para que el gestor de negocios sepa que no se realizó la transacción.
5.       Genera una clase principal “Negocio” que es con la cual puede interactuar el usuario, la cual contiene un listado de todos los métodos que se pueden utilizar para transaccionar sobre nuestra B.D., esta clase utiliza una instancia de la clase “DBConexion” mediante la cual realiza las transacciones, los parámetros que son enviados desde la clase “Negocio” a la clase “Conexión” son objetos que representan registros en nuestras tablas.
6.       Si tenemos Procedimientos almacenados cuyo script no ha sido generado por “ToolCode”, podemos seleccionar estos procedimientos y generar código para poder utilizarlos del objeto “Negocio”, estos procedimientos tiene que ser asignados a una determinada clase.
7.       Imaginemos que queremos insertar información en dos tablas que están relacionadas por un ID “ToolCode” permite realizar esta acción, podemos seleccionar las tablas a utilizar y generamos un único método que inserte información en estas tablas, de igual manera podemos decidir en cuál de las tablas se insertaran múltiples registros.
8.       Si por alguna razón la estructura interna de nuestras tablas o procedimientos ha cambiado, “ToolCode” permite actualizar el código generado para asi mantener la consistencia con nuestra B.D.
9.       ToolCode” permite generar formularios de mantenimientos de datos, para ellos debemos seleccionar la tabla para la cual vamos a necesitar el formulario, entre las acciones que podemos hacer en estos formularios tenemos:
a.       Crear un Nuevo registro en una tabla
b.      Actualizar Un registro de la tabla
c.       Eliminar un registro de la Tabla
d.      Consultar la información contenida en la tabla en base a filtros que podemos especificar.
10.   Por ultimo con todo lo anteriormente generado, podemos generar un proyecto para Visual Studio 2010.
Ha continuación se muestra una imagen que trata de representar lo que genera “ToolCode” para el Programador:

Con esta herramienta estamos garantizando un ahorro de tiempo entre un 60 a un 80% para el desarrollo de un proyecto.
Bueno basta de palabras, vamos a ver un pequeño ejemplo:
Consideremos el siguiente diagrama de B.D.





Este es un ejemplo sencillo, simplemente vamos a capturar los datos de una persona al igual que sus números telefónicos, en el diagrama se está representando que una persona puede tener “1” o “Muchos” números de teléfonos,  así como el país de donde proviene “Nacionalidad”, bueno aclarar que este artículo no trata de diseños de base de datos ni de diagrama de clases así que por ende puede que este modelo no sea del todo exacto ni que tampoco sea la única forma de representar lo que estos tratando de representar.
Buena con nuestra base de datos ya creada junto con nuestras tablas vamos a iniciar “ToolCode

La pantalla inicial es la siguiente:

En esta pantalla podemos ver:
1.       El Menú Principal: En este menú se encuentran los siguientes sub-menus:
a.       Menú Archivo: Desde el menú Archivo podemos abrir un proyecto, guardarlo cerrar un proyecto y salir de la aplicación.

b.      Menú Proyecto: Desde el menú proyecto podemos Generar el código fuente de nuestra aplicación, Podemos seleccionar las tablas para las cuales vamos a generar los formularios desde los cuales se hará el mantenimiento de los datos, también podemos actualizar un determinado formulario ”Propiedades Formulario”, podemos relacionar un procedimiento almacenado de nuestra base de datos con una clase específica “Relacionar Procedimiento”, podemos crear un nuevo método a parir utilizando las clases ya existentes esta opción es útil cuando queremos hacer un registro en un maestro detalle “Crear Nuevo Método”, Configurar el tipo de Proyecto a generar “En este caso solo está disponible Aplicación de Escritorio”

c.       Menú Configuración: En esta opción podemos configurar todos los templates que utiliza “ToolCode” para la generación del código fuente así como de los script para generar los procedimientos almacenados.

d.      Base de Datos: Con este menú podemos seleccionar las tablas para las cuales vamos a generar el código fuente, así también busca nuevos procedimientos almacenados creados en la Base de Datos.

2.       El Inspector de Proyecto: Esta paleta nos permite visualizar la estructura con la cual será creada nuestra solución en Visual Studio, así como también podemos visualizar las tablas y procedimientos almacenados seleccionados para el proyecto.

3.       La paleta de Métodos y Propiedades: Esta paleta nos permite ver los métodos, atributos y propiedades perteneciente a una clase determinada, así como también podemos observar las propiedades de un objeto de la B.D.


Bueno ahora luego de esta breve explicación de las opciones del “ToolCode”, ahora vamos a crear un nuevo proyecto, para ello nos vamos a archivo ” Abrir Proyecto”:

Podrán notar que esta resaltado con rojo el tipo de B.D. a la que nos vamos a conectar así como el lenguaje de programación y el IDE, le damos click en el botón guardar, nos van a salir las siguientes pantallas le damos click en siguiente y luego en finalizar.

Después de haber echo click en l botón finalizar “ToolCode” hará una inspección de la base de datos buscando las tablas y los procedimientos almacenados contenidos en la B.D. al terminar la inspección nos mostrara la siguiente ventana en la cual nos pide seleccionar las tablas con las que trabajaremos en el proyecto.

Seleccionamos todas las tablas y le damos click en aceptar, ahora “ToolCode” se dispondrá a generar el código fuente para nuestras tablas seleccionadas.
El proyecto quedara de la siguiente forma:

En el inspector de Proyecto, podemos ver todas las clases que “ToolCode” genero para nuestras tablas, así como también podemos ver las tablas seleccionadas para nuestro proyecto, podemos notar que en este momento no tenemos procedimientos almacenados en nuestra B.D., para crearlos hacemos doble click sobre el nodo “Procedimientos” contenido en el proyecto “Demo” y se nos abrirá una paleta en el centro, en el cual podremos ver el script correspondiente a los proc. Almacenados que “ToolCode” nos sugiere que creemos para que nuestra aplicación pueda funcionar correctamente.

Vamos a revisar que tiene la clase “OPersona”, para hacemos doble click sobre el nodo correspondiente a esta clase:

Podrán observar que los atributos de esta clase son los que lleva la tabla “Persona”, esta clase como lo explique anteriormente no contiene ningún método con el cual se pueda registrar información en la B.D. el objeto tipo principal de esta es de contener información, la cual posterior mente será registrada en la tabla “Persona” utilizando la clase “DPersona”.
Hacemos click sobre el nodo correspondiente a la clase “DPersona”:

Podrán observar  los atributos y métodos de esta clase, hay que prestar mayor énfasis en que esta clase es la encargada de registrar información sobre la tabla “Persona” pero para poder hacer debe hacer uso de la clase “OPersona”.
Vamos a examinar ahora la clase “DBConexion” podrán observar que en ella se encuentran todos los métodos utilizados para interactuar con el motor de B.D. la principal funcionalidad de esta clase es la de gestionar las transacciones sobre el motor así como de i formar de algún error al ejecutar los mismos.

Ahora vamos a inspeccionar la clase “Negocio”, esta clase es el mascara para todos los métodos utilizados para interactuar con el motor, el usuario no debe preocuparse por la conexión ya que esta clase crea una instancia de la clase “DBConexion”  la cual es utilizada para administrar las transacciones, el usuario solo debe preocuparse de invocar al método correcto y de enviar la información adecuada al mismo.

Vamos a configurar nuestro proyecto para poder generar formularios, nos vamos a “Proyecto->Propiedades Proyecto” nos mostrara la siguiente ventana, nos vamos a la paleta presentación y la dejamos tal y cual como se encuentra en la imagen

Luego le damos click en guardar.
Bueno ahora vamos a generar los formularios para las tablas “Nacionalidad, Persona”, para ello seleccionamos el menú “Presentacion->Generar ABM’s”

Seleccionamos las tablas y luego le damos click en aceptar.

Nos aparecer el siguiente formulario, seleccionamos el objeto “FrmPersona”, luego el atributo “id_nacionalidad”, luego cambiamos el estilo a “COMBOBOX” y por ultimo seleccionamos el objeto que servirá como DataSource del combo

Hacemos click en aceptar, guardamos y luego nuevamente en aceptar.

Ahora nuestro proyecto quedara de la siguiente forma:

Ahora vamos a generar el código fuente para este proyecto, no olvidar que el código se generar en la carpeta:

La cual actualmente está vacía:

Seleccionamos el menú: “Proyecto->Generar Proyecto”

Se nos desplegara una ventana con un progres le damos click en aceptar y el proyecto empezará a generarse:

Cuando finalice la pantalla quedara de la siguiente forma:

Ahora verificamos nuestra carpeta:

Notamos que nos generó un proyecto para visual Studio, procedemos abrirlo, y le damos click en Generar.

Ahora hacemos doble click sobre el formulario “FrmPersona”

Este es el estilo de formularios que se generan con “ToolCode”.

Ahora vamos agregar un nuevo proyecto a la solución, vamos hacer referencia al proyecto “Demo”, en este proyecto vamos a crear un formulario con dos botones “Nacionalidad” y Persona.

El código fuente que contendrán los eventos click  de estos botones será el siguiente:

Ahora creamos los procedimientos almacenados:

No olvidar que el script de los proc. Están en :

Ahora ejecutamos la aplicación, e ingresamos al formulario nacionalidad:

Creamos unos cuantos registros y luego ingresamos al formulario “Persona”

En este formulario también procedemos a crear registros.
Bueno amigo eso es todo, comentarles que actualmente estoy por terminar de desarrollar “ToolCode” actualmente genera todo lo anteriormente expuesto.


En otro artículo explicare de forma más detalla el código fuente generado.

El enlace para descargar el codigo de ejemplo es el siguiente:
https://sourceforge.net/projects/toolcode/https://sourceforge.net/projects/toolcode/


Saludos.

Instalacion de EAS - WIN10X64

Instalación en Windows (Version en PDF : Click ) La instalación la realizaremos sobre Windows 10 X64, pero los pasos son los mismo...