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
2. Ahora creo un proyecto BPEL sencillo. Agreo un Assign donde le paso los datos tal cual de mi esquema sin hacer modificaciones
3. Ahora vamosa publicar nuestro proyecto al Bpel Consola.
4. Entramos a la consola de BPEL y damos click sobre el nombre de nuestro proceso
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
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.
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.
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.
: 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
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
En el siguiente seleccionamos Automaticly Expose UI…
Y ahora seleccionamos las libreriasy damos click en finish
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.
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)
Ahora damos click en siguiente y seleccionamos las operaciones disponibles, que en este caso solo es el inicio y damos click en Finish
Si revisamos nuestro proyecto y nuestra paleta de componentes vemos lo siguiente:
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
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
En cuadro que nos aparece damos click en Ok. y este es el resultado:
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.
Ahora vamos a la consola de Bpel y checamos si la instancia se ejecuto correctamente.
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.
Para poder quitarlos hacemos lo siguient:
Damos doble click en el boton iniciar al mostrarnos el mensaje le damos aceptar.
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
Se agrega lo siguiente:
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»
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.
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.
Quitando las cajas que no nos sirven
Y probamos (Coloque una pagina de resolucion para saber si detona bien el servicio)
Espero les sirva….
































