Oracle BPEL
posee adaptadores para leer y procesar archivos de una manera rapida, sencilla
y con una gran funcionalidad totalmente personalizable. En este ejemplo
estaremos escaneando el directorio "/home/oracle/example" cada 30 segundos, y tomando únicamente
aquellos archivos que ya tengan 5 segundos como mínimo de haber sido creados, se tomaran solo los archivos con extension ".txt".
Para iniciar
debemos crear una nueva "Application" en JDeveloper, y un nuevo
proyecto de tipo "SOA Project".
Luego seleccionamos con doble
clic el elemento "composite.xml" que se encuentra a la izquierda
para poder empezar a crear nuestros componentes.
Arrastramos un "File
Adapter" hacia la seccion del "Composite" y nos aparecerá la
pantalla de bienvenida del adaptador.
Dar cilck en el boton
"Next"
Ingresamos el nombre del
FileAdapter.
Seleccionamos la
opcion "Define from operation and schema (specified later)".
Ingresamos el
filesystem que queremos estar escaneando,
en este ejemplo es "/home/oracle/example". La opcion
"Process files recursively" indica que si se deben procesar recursivamente
todos los archivos aunque esten dentro de carpetas. Seleccionamos la opcion
"Archive processed files" e indicamos un directorio en el cual se
guardaran los archivos que ya hayan sido procesados. Seleccionamos la opcion
"Delete files after successful retrieval" para que despues de procesar
los archivos los borre del filesystem origen.
En el campo
"Include Files with Name Pattern" escribir "*.txt" para que únicamente tome los archivos con esa extension y los demas archivos los ignore.
En
el campo "Polling Frequency" escribir "30 segundos" para
que a cada 30 segundos este escaneando el filesystem en busca de nuevos
archivos. En el campo "Minimum File Age" establecerlo a "5
segundos".
Clic en el
boton "Define Schema for Native Format".
En la
pantalla de Bienvenida dar clic en "Next".
Seleccionar la opcion "Create New" y luego seleccionar la opcion "Delimited".
Seleccionar la opcion "Create New" y luego seleccionar la opcion "Delimited".
Elegir un
archivo de ejemplo del cual el Wizard automaticamente extraerá el
"XSD".
El archivo de
ejemplo que estamos utilizando es el
siguiente:
Seleccionar
la opcion "File contains only one record" y dar clic en el boton
"Next".
Ingresar
en el campo "Enter a name for element that will represent record" el
nombre del elemento "raiz", en este ejemplo utilizaremos el nombre
"Persona". Dar clic en el boton "Next".
Dejar los
valores default: "Delimited by comma". Dar clic en el boton
"Next".
Ingresar el nombre de
cada uno de los campos que estan en el archivo de texto, en este ejemplo
utilizaremos los siguientes nombres: "ID", "Nombre",
"Edad", "Pais".
Se puede ver el archivo XSD generado por el wizard en base a todos los datos que ya le hemos proporcionado incluyendo el archivo de ejemplo. Dar clic en el boton "Next". Luego dar clic en el boton "Finish".
Regresamos
nuevamente al wizard del FileAdapter y luego dar clic en el boton
"Next". Luego dar clic en el boton "Finish".
Ahora
debemos agregar un componente de tipo "BPEL process". Fijarse bien
que el proceso bpel que estamos creando tenga el "Template"
establecido a "Define Service Later". Establecer un nombre y luego
dar clic en el boton "OK".
Unir mediante un "wire" el ReadFile (FileAdapter) con
nuestro ReadFileProcess (BPEL Process).
Dar doble clic en el
elemento ReadFileProcess (BPEL Process) y una vez adentro agregar un elemento
"Receive", luego un elemento "Email". Alambrar el "Receive" al
"ReadFile" tal como se muestra en la imagen.
Despues
de alambrar el "Receive" al "FileAdapter" nos aparecera una
ventana en la cual hay que dar clic en la cruz verde (dentro del cuadro rojo),
esto generara automaticamente una nueva variable. Cambiar el nombre si se desea. Dar clic en el
boton "OK".
Damos doble clic en
el elemento "Email" y lo configuramos. En nuestro ejemplo en el campo
"Body" especificamos que enviara los datos de las
"personas" recibidas desde el archivo de texto. Luego dar clic en el boton "OK".
En el archivo XML del
BPEL Process, buscar el tag "createInstance" y poner el valor a
"yes", de lo contrario nuestra instancia de BPEL no se autocreará.
Finalmente
realizar "Deploy" de nuestra aplicacion BPEL.
Testear el proceso: Para poder testear nuestro proceso situaremos el
archivo "archivo.txt" en el filesystem
"/home/oracle/example", esperaremos "30 segundos" para que
pueda ser escaneado y finalmente llegará un correo a mi cuenta con los datos de
la persona que estoy enviando.
RESULTADO:
No hay comentarios:
Publicar un comentario