SOA Suite – Como usar el DataBase Adapter

DataBase AdapterEn post pasados ya he hablado de que es una聽Composici贸n SOA聽y de los聽Componentes聽que ofrece Oracle SOA Suite sin embargo es esta ocasi贸n nos enfocaremos al DataBase Adapter para crear una composici贸n la cual se conecte a una base de datos y guarde los datos de un registro de usuario.

En este punto asumimos que ya sabes como crear un proyecto SOA, configurar un聽Data Source聽y un聽Connection Pool聽desde la consola de WebLogic.

 

Una vez creado nuestro proyecto SOA lo que sigue es crear un聽Schema聽el cual contenga los tipos de datos que usaremos para el Request y Response de nuestro servicio el cual quedar铆a a s铆.

DataBase Adapter

fig.1: Muestra la estructura del schema necesario para crear el servicio de registro de usuarios.

Ya con el schema procedemos a crear un proceso聽BPEL聽con el schema anterior y configuramos para que quede de la siguiente manera:

DataBase Adapter

Fig.2: Muestra la configuraci贸n del BPEL con el Reques y Response del Schema anterior.

El paso siguiente es crear la tabla de USUARIOS en nuestra base de datos la cual deber谩 estar accesible con el usuario que usaremos en el registro del DataSource.

DataBase Adapter

En este punto tendremos la Composici贸n SOA de la siguiente manera:

DataBase Adapter

Fig.3: Estado de la Composici贸n despu茅s de crear el proceso BPEL.

Lo que sigue a continuaci贸n es crear un DataBase Adapter para lo cual arrastramos el DataBase Adaper de la paleta a la secci贸n de External References聽y nos saldr谩聽el Wizzard y presionamos siguiente en la primera pantalla llev谩ndonos a la siguiente pantalla:DataBase Adapter

En esta pantalla solo podremos el nombre que le daremos al Adaptador dentro de Composite por lo que ponemos un nombre que lo identifique r谩pidamente y presionamos Next聽para continuar.

聽La siguiente tendremos que definir la forma en que nos vamos a conectar a la base de datos para lo cual vamos a requerir dos conexiones distintas, la primera(Arriba) es una conexi贸n diracta con la base de datos que se utilizara exclusivamente en tiempo de desarrolla, ya que sera necesaria para introspectar la base de datos y crear los Schemas necesarios para hacer la comunicaci贸n. En caso de no tener ninguna disponible tendremos que crear una nueva con el bot贸n verde de +.

Una vez configurada nuestra conexi贸n tendremos que configurar la segunda(Abajo) esta es exclusiva para tiempo de ejecuci贸n y tendremos que poner el nombre del JNDI de un Connection Pool (Como crear un Connection Pool) registrado en WebLogic y presionamos Next para continuar.DataBase Adapter

En la siguiente pantalla tendremos que especificar el tipo de operaciones que realizaremos, En este caso como solo haremos Insert y Select seleccionamos las opciones siguientes y presionamos Next.DataBase Adapter

聽La siguiente pantalla es para seleccionar las tablas con las que estaremos trabajando por lo que el bot贸n de Import Tables聽y seleccionamos la tabla de usuarios para continuar.

DataBase Adapter

La siguiente pantalla es para realizar las asociaciones pero como no tenemos solo presionamos Next.

El wizzard nos dirigir谩 a la pantalla para seleccionar los campo con lo cuales podremos interactuar por lo que seleccionamos todos y continuamos.DataBase Adapter

聽En el siguiente paso configuramos el Query del Select de la siguiente manera pues buscaremos al Usuario por medio de su nombre de usuario o correo.

DataBase AdapterFinalmente presionamos Next en las dos siguientes pantalla para finalizar y tendremos el DBAdapter en nuestra composici贸n.

El siguiente paso sera asociar el DBAdapter al BPEL como se muestra en la siguiente imagen:DataBase Adapter

En este punto la composici贸n SOA ya esta lista pero faltara programar el BPEL para que realice las operaciones necesaria para registrar al usuario.

En este caso la l贸gica del BPEL sera la siguiente, Cuando llega una solicitud validara que el nombre de usuario no exista consultando la tabla por medio del nombre de usuario, si no existe registrara al usuario y regresara el c贸digo ‘000’ y la leyenda ‘Registro Exitoso’, en caso de que el usuario ya exista regresaremos el error ‘111’ y la leyenda ‘Usuario existente’ y finalizara.

DESARROLLO DEL BPEL

Primero que nada abrimos el BPEL dando doble click sobre el, esto nos llevara al editor y veremos lo siguiente en pantalla:

DataBase AdapterSi prestamos atenci贸n en la imagen veremos en rojo el DBAdapter que configuramos hace un momento como un PartnerLink lo cual indica que todo va bien hasta ahorita.

El siguiente paso sera crear una actividad Invoke de la siguiente manera:

DataBase AdapterEn esta pantalla tendremos que definir primero que nada el nombre de la actividad en en el campo聽Name, despu茅s seleccionar el PartnerLink que deseamos invocar y tener cuidad de seleccionar la Operaci贸n de Select, Otro paso importante es crear la variables Input y Output de la parte de abajo y ponerles el nombre QueryUserInputVariable y聽QueryUserOutputVariable para finalizar.

Seguido creamos un actividad Assign para asignar los valores de entrada(InputVariable) a la variable de entrada del servicio (QueryUserInputVariable) para lo cual aremos la siguiente asignaci贸n:DataBase Adapter

El BPEL nos quedara de la siguiente manera:DataBase AdapterEn este momento la variable QueryUserOutputVariable contendr谩 los resultados de la invocaci贸n del servicio por lo que tendremos que validar si encontr贸 resultados mediante una actividad IF debajo del la actividad Invoke y la configuraremos de la siguiente manera:DataBase AdapterEn este IF contamos los nodos del resultado, si es mayor que cero entonces quiere decir que el usuario ya existe y tendremos聽que regresar el error. Por lo cual agregamos una actividad Assign y un Reply quedando el IF de la siguiente manera:DataBase Adapter

La actividad ErrorAssign lo configuramos de la siguiente manera:DataBase Adapter

La actividad ErrorReply聽la configuramos de la siguiente manera:

DataBase AdapterCon esto lograremos que el BPEL regrese el error al detectar que ya existe el usuario.

El siguiente paso sera crear otra actividad Invoke para el mismo PartnerLink pero esta vez para la operaci贸n de Insert y definiremos las variables de entrada(InsertUsuarioInputVariable).

DataBase Adapter

Creamos una actividad Assign para asignar los valores de la聽variable聽InsertUsuarioInputVariable聽para que quede de la siguiente manera:DataBase Adapter

Finalmente con un assign modificamos la variable OutputVariable para regresar el c贸digo 000 y la leyenda Registro Exitoso.

y el BPEL quedara de la siguiente manera:

DataBase Adapter

Solo nos queda deployar y probar el servicio.

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *