Inicio > SOA / BPM / WebCenter > Librerías XQuery sobre Oracle Middleware versión 12c

Librerías XQuery sobre Oracle Middleware versión 12c

Hasta la versión 11g de Oracle Service Bus (OSB) no se podían usar librerías XQuery en nuestras soluciones OSB. Esto hacia que tuviéramos que reescribir nuestras funciones XQuery, una y otra vez, en cada transformación XQuery que desarrolláramos o que tuviéramos que usar funciones XPath personalizadas con su correspondiente desarrollo en Java y reinicio del servidor; tal y como nos explicaba Antonio Molina en este post.

2209436Con la llegada de la versión 12c de Oracle Middleware esto ha cambiado, ya que en esta nueva versión se da soporte a este tipo de librerías. Con ello, podemos disponer de una batería de funciones customizadas en una librería XQuery que podremos usar desde cualquiera de nuestras transformaciones XQuery. Eso sí, estas funciones no pueden ser usadas directamente desde un proceso OSB, sino sólo usadas por transformaciones XQuery.

Generación de una librería XQuery

Para la generación de una librería XQuery, necesitamos que nuestro proyecto de JDeveloper sea un proyecto OSB o SOA. Una vez cumplimos estas premisas, seleccionaremos “XQuery Library” en la galería de componentes a generar (File -> New):

1

Posteriormente se abrirá un formulario para que insertemos las características de nuestra librería. En él debemos inserta el nombre, namespace y definir una función inicial para nuestra librería.
En nuestro ejemplo, generaremos una función que nos indique la edad de una persona a partir de su fecha de cumpleaños.

2

Como podemos ver en la imagen, hemos definido una función “getEdad”, en nuestra librería que tiene como parámetro de entrada “fechaCumpleanos” del tipo date y devolverá un entero con la edad de la persona. Pulsamos “OK” y se abrirá el editor XQuery, donde indicaremos qué ha de hacer la función.
En el editor XQuery, seleccionaremos la pestaña “Source” y escribiremos lo que deseamos que realice la función, quedando el código así:

3

Uso de una librería XQuery

Como he comentado antes, el uso de las librerías XQuery se realiza desde transformaciones XQuery, por lo que el primer paso que debemos llevar a cabo es la generación de esta transformación, pero vamos a generar antes un esquema XSD de ejemplo para hacer la transformación. A continuación, mostramos los elementos del esquema:

4

Una vez generado ese esquema, podemos proceder a generar la transformación que tomará como entrada el elemento entradaEjemplo y generará un mensaje que devolverá en el elemento salidaEjemplo. Para ello, iremos a File -> New y seleccionaremos XQuery File.

5

Cuando pulsemos “OK”, se nos abrirá el Editor de XQuery y deberemos importar nuestra librería para hacer uso de ella. Esto se hace pulsando en el siguiente botón:

6

Esto nos abrirá la siguiente ventana emergente:

7

Seleccionamos la librería a importar y pulsaremos “OK”, y veremos como se muestra en las funciones definidas por el usuario de la pestaña componentes las funciones de la librería.

8

A partir de aquí, modificaremos el Source de la transformación XQuery para devolver un mensaje de saludo con la edad del usuario. Este código quedaría así:

9
Ahora, para verificar que la transformación funciona, haremos una prueba de la misma, haciendo botón derecho en el código y seleccionando Run XQuery:

10

Se abrirá esta ventana emergente, donde indicaremos el xml con los datos de entrada y el xml con los datos de salida. Hemos usado como datos de entrada el siguiente xml:

11

Y éste ha sido el resultado de la prueba:

12

 

Podéis descargar el código de la prueba desde aquí: http://ow.ly/ri103072fA7

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: