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.