jueves, 4 de julio de 2013

Creando Programas Concurrentes en EBS R12(Concurrente con java)


Saludos mis queridos amigos, ahora vamos a ver como se crean concurrentes en el EBS R12 utilizando java, en esta ocasión la aplicación que realizaremos comprimirá dos archivos y creara un archivo zip, para ello utilizaremos algunas librerías de java.
Para poder crear concurrentes utilizando código java debemos tener en nuestras maquinas un IDE de desarrollo, 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 amarrillo “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, notaran que es un archivo  zip 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 bien esta versión de JDeveloper no proporciona las librerías que necesitamos para crear concurrentes en java para el EBS R12.
Antes de empezar a construir nuestro código Java en JDeveloper, es necesario crear algunas librerías adicionales que son específicas para el desarrollo de concurrentes, para ingresamos a nuestro servidor desde el “PUTTY” y nos dirigimos al directorio $JAVA_TOP


Vamos a crear un archivo zip de la carpeta “oracle” con el siguiente comando:



Ahora vamos a verificar que el archivo “conclib.zip” se haya creado correctamente en el servidor


Copiamos este archivo en una carpeta de nuestra maquina local:


Como último paso solo queda descomprimir el archivo rar en el mismo directorio:


Ahora vamos a ejecutar JDeveloper y crear nuestro primer concurrente (asumo que saben java y JDeveloper, pero si en todo caso necesitan algún tutorial de java con JDeveloper me avisan y con gusto hare un artículo explicando cómo programar en java con 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:


Ahora vamos a crear un proyecto que le vamos a llamar Concurrentes, hacemos click en el icono nuevo:


En “General “seleccionamos “Applocations”, y en el panel de la derecha seleccionamos “Application”, luego hacemos click en Aceptar


Prestemos atención en la siguiente pantalla, el cuadro marcado con rojo es el nombre de nuestra aplicación java, el cuadro marcado con azul es la estructura de paquetes, tenemos que seguir el standart de Oracle por eso es que como verán la estructura está dada por “Oracle.apps.xdemo.cp”, donde xdemo es el nombre de nuestra aplicación de customizaciones, le damos click en aceptar


En esta pantalla nos pedirá el nombre de nuestro proyecto, le damos click en Aceptar


Ahora notaran que en la paleta “Applications Navigator” se ha creado un árbol con nuestra aplicación y nuestro proyecto:


Ahora vamos a crear una nueva clase, para ello hacemos click derecho sobre nuestro proyecto y seleccionamos “New”

Seleccionamos “Simple Files” y en el panel derecho “Java Class”, le damos click en Aceptar


Nuestra clase se va a llamar “ZipDocs”, tenemos que tomar mucha atención y verificar que el paquete en el cual estará alojada nuestra clase es “Oracle.apps.xdemo.cp” el cual en la imagen esta resaltado con verde:


Ahora le damos click en Aceptar y el ide abrirá de forma automática la clase creada, deberá quedar de la siguiente forma:


Ahora procedemos a importar la librería que creamos en el servidor y que copiamos a nuestra máquina, para ello hacemos click derecho sobre nuestro proyecto,Propiedades


En la pantalla seleccionamos “Libraries” y hacemos click en “Add Jar/Directory”


Seleccionamos nuestra librería y le damos click en “Select”(debemos seleccionar la carpeta descomprimida)


Con esto notaremos que en el panel de la derecha nuestra librería aparece seleccionada, ahora hacemos click en Aceptar.


Ahora vamos a importar todas las clases de los paquetes útil y  request tal y como se observa en la imagen, además de implementar la interface “JavaConcurrentProgram” la cual tiene un solo método llamado “runProgram(CpContext cpContext)”,el código finalde nuestra clase debe quedar de la siguiente forma:


Compilamos nuestro código:


Ahora procedemos a copiar nuestra clase compilada en el servidor, para ello vamos a crear los directorios xdemo y dentro de xdemo crearemos cp, con los siguientes comandos:


Verificamos que estén creados los directorios:


Aquí vamos a copiar nuestra clase junto con su archivo fuente para tenerlo todo en su solo lugar, para ello en nuestras maquinas nos vamos al directorio:


Ahora con WINCSP copiamos el archivo al servidor:


Bien ahora solo nos queda crear el concurrente en el EBS R12, pues manos a la obra:
1.- Creando el ejecutable
Para ello nos dirigimos a “System Administrator/Program/Executable”:


Debemos poner atención al campo “Execute File Path” debemos notar que en este campo se pone la dirección donde se encuentra nuestra clase “ZipDocs”, deben fijarse que la dirección está separada por puntos, que vendría hacer la manera como se hace referencia en java a un determinado paquete.

2.- Creando el Programa Concurrente
Ahora procedemos a crear el programa concurrente, para ello nos dirigimos a “System Administrator/Program/Define”:


Los parámetros que vamos adicionar son los siguientes:

Seq
Parameter
Description
Value Set
Token
Pront
10
Archivo A
Primer Archivo
100 Characters
ARCHIVO_A
Archivo A
20
Archivo B
Segundo Archivo
100 Characters
ARCHIVO_B
Archivo B
30
Nombre Archivo ZIP
Archivo ZIP
100 Characters
SALIDA
Nombre Archivo ZIP

Hay que tomar en cuenta que el “token” de cada parámetro lleva el nombre de los valores que recuperamos en nuestro programa concurrente java.



3.- Agregar ejecutable a Grupo de Solicitudes

Una vez creado el ejecutable solo queda agregarlo a un grupo de solicitudes, para nos dirigimos a “System Administrator/Security/Responsability/Request” :


4.- Ejecutar el Concurrente

Ahora procederemos a ejecutar el concurrente, para ello entramos en la responsabilidad “XDEMO CUSTOMIZACIONES


Vamos a comprimir los archivos file1.txt y file2.txt que están en la carpeta “tmp” del servidor:


Ahora procedemos a ejecutar el concurrente:


Como podrán ver los dos archivos se comprimirán en uno solo llamado “demo.zip”, presionamos el botón “OK” y verificamos la ejecución del concurrente:


Como se puede observar en la imagen el concurrente termino de forma satisfactoria, verificaremos si el archivo se creó en el servidor:


Hasta aquí hemos terminado con la aplicación, como podrán ver es un ejemplo bastante básico, con java se pueden hacer muy buenos concurrentes además que atreves de la clase “CpContext” se puede acceder a mucha información concerniente al entorno de ejecución, entre algunas podemos mencionar:

-          Valores FND GLOBALES
-          Conexión JDBC
-          Valores  de Perfil
-          Y muchos Otros

Es recomendable utilizar el método “getJDBCConnection()” para obtener la conexión al motor Oracle, asi como la utilización de los métodos “commit()” y “rollback()”  para confirmar o deshacer las transacciones, no se olviden siempre de liberar las transacciones con el método “releaseJDBCConnection()” todos estos métodos mencionados los podemos encontrar en la clase “CpContext”.

Algunos articulos que les podrian ser de utilidad serian los siguientes:

How To Create a Java Concurrent Program? [ID 827563.1]
Java Concurrent Program Runs Forever Due To Javacache.Log Locking [ID 1335232.1]

Bueno eso es todo amigos, espero que les haya gustado el artículo, espero sus comentarios.

No hay comentarios:

Publicar un comentario

File sharing system in PHP free code (Veno File Manager v4.2.7)

  File sharing system in PHP free code (Veno File Manager v4.2.7) Download: veno-file-manager-v427 File sharing system in PHP free code ===...