Archivo de la etiqueta: Call

Detonar proceso BPEL a traves de un WebService

Hola.

He recibido varios comentarios solicitando lo siguiente; Tenemos un proceso bpel y queremos detonarlo desde una interfaz (Una página web) para poder trabajar con los datos y estos datos sean enviados a la consola de BPEL.

Bajo este escenario y después de mucho tiempo de retomar lo de SOA por cuestiones de Trabajo me dia la taea de hacer un pequeño ejemplo explicando laproblemática mencionada. Espero les sea de ayuda.

Pasos a realizar:

Tener un Esquema XML
Generar un proyecto BPEL y relacionarlo con el Esquema
Publicar el proyecto
Obtener el WebService
Crear pagina jsp para consumir el WebService

Ojo: Los esquemas y el proyecto ya los hemos realizado en entradas anteriores. Verificar «Crear proyecto BPEL» para ponernos al día y continuar.

1. Lo primero que hice fue crear mi Esquema XML

Esquema

Esquema

2. Ahora creo un proyecto BPEL sencillo. Agreo un Assign donde le paso los datos tal cual de mi esquema sin hacer modificaciones

Bpel

Bpel

Assign

Assign

3. Ahora vamosa publicar nuestro proyecto al Bpel Consola.

Deploy

Deploy

4. Entramos a la consola de BPEL y damos click sobre el nombre de nuestro proceso

Consola

5. Ahora bien, aqui vemos el tab «Initiate» o iniciar, alli es donde nos aparecen los recuadros de nuestros parametros qeu colocamos en el Esquema XML

Iniciar

Iniciar

Ahora vamos a obtener nuestro WebService. Damos click en la pestaña: WSDL «WebService Dialog Lenguage». Ahora lo que vemos es una url. Esta url contiene los datos que dimos de alta en nuestro esquema. Podemos copiarla y abrirla en otra ventana del Explorar para verificar.

WSDL

WSDL

Y como vemos lo que tenemos es un webService automáticamente generado al momendo de darle deploy a nuestro proceso. Ahora a partir de este webservice vamos a crear una página jsp para invocar dicho Servicio.

WSDL

WSDL

6. Vamos a crear nuestra pagina en Jdeveloper:

Damos click derecho sobre el nombre de Nuestra aplicación y seleccionamos: New project, luego nos aparece una ventana y seleccionamos: Empty project y en la ventana que nos aparece colocamos el nombre de nuestro proyecto. «Pagina Web» en mi caso.

9 - Proyect

9 - Proyect

: 7. Ahora sobre nuestro nuevo Proyecto damos click derechoy seleccionamos New:Y en la ventana de galeria nos vamos al brazo: Web tier – JSF y en Items seleccionamos  JSF JSP

JSF

JSF

Ahora nos abre una ventana para configurar nuestro jsf, a lo que damos siguiente al paso 1 y en el 2 colocamos un nombre a nuestra pagina «TestWSDL» en mi caso. dejamos jsp y damos click en siguiente

jsp

jsp

En el siguiente seleccionamos Automaticly Expose UI…

UI

UI

Y ahora seleccionamos las libreriasy damos click en finish

Librerias

Librerias

Ahora visualizamos el esglose de nuestro projecto y nos encontramos con una clase java: Es la que guarda todos los objetos que tengamos en nuestro JSP para despuer mandar eventos, un faces config que es donde colcoamos nuestras páginas y las enlazamos y realizamosactividades de seguridad, sesion, etc. y por ultimo nuestra pagina jsp.

8. Ahora lo que vamos a hacer es llamar a nuestro WSDL (Recordamos la URL de nuesra WSDL de la consola de BPEL que copiamos por que la vamos a utilizar en este paso)

Lo primero es crear un proyecto nuevo vacio en nuestra aplicacion (Verpaso 6 por si no recordar) y le ponemos de nombre «WebServiceBPEL». En la ventana de galeria nos vamos al nodo – Business Tier -> Web Services y en los Items buscamos  Web Service Data Control y damos Ok.

wsdc

wsdc

Ahora nos abre la ventana de configuracion para nuestro Wsdl. Lo primero es un nombre: «WSDBpel» luego la url del Web Service y colocamos la Url que aparece en la consola de BPEL. En ese momento si quitamos el foco de ese cuadro (Damos click en cualquier otro lado) hace una prieba de conexion para checar los servicios de ese servicvio y abajo en la parte de Service coloca los servicios que existen  Seleccionamos el «Corto» Que es con el que se invoca el ser vicio por que el «largo» es para cuando se regresa la llamada al servicio (CallBack)

Call

Call

Ahora damos click en siguiente y seleccionamos las operaciones disponibles, que en este caso solo es el inicio y damos click en Finish

Operations

Operations

Si revisamos nuestro proyecto y nuestra paleta de componentes vemos lo siguiente:

Dats

Dats

Ahora si creamos nuestra pagina de la siguiente forma:

Nos poscionamos en nuestra pagina JSp y en la palete de Componentes a la derecha (Ver imagen abajo) y en el combo de Componentes seleccionamos  ADF Faces Core y luego buscamos Panel Page, lo seleccioamos y lo arrastramos a nuestro JSP

PanelPage

PanelPage

Ahora vamos a la pestaña de DataControl y seleccionamos «On result String… ect» y lo arrastramos debajo de donde dice tittle 1 y nos aparece una ventana de opciones a la que seleccionamos Parameters – ADF Parameter Form

Parameters

Parameters

En cuadro que nos aparece damos click en Ok. y este es el resultado:

Jsp Iniciar

Jsp Iniciar

Ahora corremos nuestra pagina y probamos el servicio. Damos click derecho sobre nuestro JSP y seleccionamos «RUN» y esperamos que se ejecute nuestra pagina. Metemos los datos y damos click en iniciar.

Test1

Test1

Error

Error

Ahora vamos a la consola de Bpel y checamos si la instancia se ejecuto correctamente.

CONSOLA

CONSOLA

Correct

Correct

Si todo funciona ahora podemos juagr con nuestra pagina Web. Incluso mandar un msj de alerta al ejecutar nuestro sevicio, o que nos envia a otra pagina donde nos diga que se ha realizado, etc. Se le pueden agregar imagenes y hacer cosas por el estilo.

Espero sea de utilidad.

Continuacion:

Ahora bien. Aparecen en la Pagina unos campos que no tienen que verse en el form.

Campos

Campos

Para poder quitarlos hacemos lo siguient:

Damos doble click en el boton iniciar al mostrarnos el mensaje le damos aceptar.

Mensaje

Mensaje

Nos muestra el backbean de nuestro jsp donde podremos agregar codigo para manipular los datos.

Ahoravamos a agregar un poco de codigo: Mirar la imagen y agregar

Codigo normal

Codigo normal

Se agrega lo siguiente:

Codigo agregado

Codigo agregado

Al colocar el valor «params.put» estamos dicindo que asigne un valor a un elemento. Se nos va a poner en rojo por que hace falta una libraria para cumplir con estas opciones, esto en automático lo marca el jdev, y si damos «alt – enter» la va a agregar el jdev en el momento. Seleccionamos la libreria «java.util»

Libreria agregada

Libreria agregada

Ahora vamos a ponerle un valor de «1» a los valores que nos nos interesan.

Y a los que nos interesan le ponesmo el nombre del Elemento de nuestro esquema tal cual esta escrito. Y le ponemos el valor del Id del Campo en nuestr jsp. Por ejemplo: El primer elemento (en mi caso es «Programa» y en el jsp la caja de texto tiene Id «inputText1» entonces queda:

params.put(«element1», inputText6.getValue());

y asi sucecivamente con los demas elementos. Al terminar corremos nuestra pagina y checamos el resultado.

Resultado

Resultado

Si funciona lo que tenemos que hacer ahora es quitar las cajas de texto en nuestro jsp que no nos funcionan y listo. Tenemos solo los datos que nos interesan.

Pagina

Pagina

Positivo

Positivo

Quitando las cajas que no nos sirven

FINAL

FINAL

Y probamos (Coloque una pagina de resolucion para saber si detona bien el servicio)

Final2

Final2

Final3

Final3

Espero les sirva….