(COntinuacion del proyecto BPEL es necesario haber echo realizado esa estapa si no se ha echo dar click en el siguiente link)
Crear proyecto Oracle BPEL SOA (Esquemas y variables)
Lo primero que vamos a hacer es seleccionar en el lado derecho de nuestro Jdeveloper la paleta de componentes las opción de servicios.
Ahora buscaremos el componente Partner Link lo seleccionamos y lo arastramos hacia el contenedor visual del diagrama bpel. Como es un servicio el unico lugar donde podemos colocarlo es en la banda del lado derecho o izquierdo pero no en el centro donde solo van las actividades.
Una vez que soltamos el PartnerLink donde corresponde nos aparece una ventana de propiedades del mismo y damos click en la figura numero 3 (Seleccionar servicio o adaptador) dentro de WSL Settings
La figura uno es para crear un adaptador wsdl a traves de un XML o WSDL, la segunda figura es para buscar un servicio que se encuentre en nuestro proyecto o en la consola de Bpel (mas adelante veremos un ejemplo para trabajar con diferentes proyectos conectados) y la tercera es para escoger un tipo de servicio externo a nuestro proyecto y la ultima figura para refrescar el partner link.
Ahora nos aparece el Wizard de adpatadores y nos muestra la lisra del tipo de adaptador que utilizaremos. Seleccionamos el primero (File adapter) y damos click en next.
Ahora escribimos el nmbre del servicio: “EscribirArchivo” (Service Name)
Y ahora escogemos el tipo de opración que vamos a realizar, en esta ocasión “Write file” y en automático se llena la caja de texto en Operation Name con la leyenda “Write” damos click en siguiente
Ahora en la configuracion de archivo vamos a seleccionar la ubicación dondequeremos que el archivo se genere (se escriba) Va a ser un directorio físico y amos click en Browse
A continuación muestro mi directorio donde yo coloco mi archivo y checo que esté vacio en mi caso la carpeta Temp en raiz C
Y ahora si al dar Browse nos muestra el wizard para seleccionar directorio fisico
Y ahora buscamos el directorio Temp y lo seleccionamos
Ahora definimos el nombre de conversión del archivo. En mi caso Doc_ “y aqui pongo un numero secuencial para que no se repita” y la extension del archivo “.txt” y damos click en next
Ahora en la opcion 4 seleccionamos el Schema que queresmos que el archivo escriba en este caso damos click en Browse para seleccionar el esquema con el cual estamos trabajando.
Yaahora buscamos nuestro ESQUEMA XSD y seleccionamos el elemento con el cual estamos trabajando (en nuestro caso: DatosEsquema)
Y ahora que tenemos configrado nuestro mensaje damos click en next y luego en finish
Nos debe quedar nuestra configuración del Partner Link de la siguientes manera.
Damos click en Ok y ahora bien… ya tenemos el servicio en nuestro proyecto pero ahora tenemos que hacer que nuestro flujo de bpel se conecte cuando lo necesitemos… para esto en nuestra paleta de componentes (derecha jdeveloper) seleccionamos en el combo “Process Activities” y seleccionamos un Invoke y lo arrastramos hacia nuestro flujo central debajo del Assign que tenemos
Ahora damos doble click sobre el Invoke que acabamos e agregar para configurarlo (Notar que nos muestra un warning ya que no hay variables asignadas para ese invoke). En el wizar de configuración del invoke vamos a elegir nuestro partner link dando click en la lampara Browse.
En esta ventana nos muestra todos los Servicios o PartnerLinks que tengamos en nuestro proyecto en este caso solo tenemos el PartnerLink “EscribisArchivo” que acabamos de hacer y el “Client” que es el que hace la invocacion de un cliente a nuestro proyecto Bpel. Seleccionamos Escribir Archivo y damos click en Ok
Ahora que ya invocamos nuestro PartnerLink debemos pasarle datos a traves de una variable para lo cual damos click en Create Variable y por default nos da un nombre checamos que la variable se de tipo global y damos click en Ok
Ahora damos click en ok para finalizar la configuracion de nuestro Invoke
Ahora bien.. ya tenemos nuestro Invoke apuntando a nuestro partner Link pero aun nos aparece el Warning. Esto se debe a que el Invoke tiene una variable (la que creamos en la configracion del mismo) y no le hemos especificado que datos le vamos a pasar a esa variable y hay que especificarlo.
Para eso vamos a desirle al assign que le pase los parametros a la variable del Invoke.
Damos doble click en el Assign y damos click en Create Copy Operation
Y ahora bien.. como nuestro partner link le dijimos que va a escribis un esquema completo lo que vamos a hacer es pasarle al invoke los datos completos del Esquema a su variable:
Damos click en Ok y ahora bien validamos nuestro proyecto dando click en la flechita verde en la parte superior de nuestro diagrama y debe desaparecer el warning.
Ahora vamos a subir nuestro proyecto a la consola Bpel para poder verlo funcionar…
Damos click con el boton derecho del Mouse sobre el nombre de nuestro proyecto (DemoBPEL) y luego en Deploy – SPCMV1(Mi servidor) – To default domain (Mi dominio en bpel)
Verificamos que el resultado del deploy haya sido Succes (Ver capitulo Crear proyecto BPEL para ver las imagenes del Succes) y vamos a la consola de Bpel y damos click en nuestro proyecto para echarlo a andar…
Ahora bien escribimos “ejemplo” en el elment2 y damos click en publicar Mensaje
Y ahora checamos el flujo de nuestro proceso
Damos click en el assign para ver los datos que se deben de mostrar en el archivo y los cuales le pasamos a nuestro invoke:
Ahora vamos a nuestro directorio fisico “C:\Temp” y checamos que el archivo aparece… lo abrimos y comparamos con los datos del Assign y listo… hemos escrito un archivo a traves de un servicio.
Ahora bien… esto es para escribir un archivo.. e echo un proyecto que cuando en Temp cae un nuevo documento el bpel lo lee y con esto detona otro proyecto. Esto es con Type ReadFile (nosotros usamos WriteFile y asi podemos jugar con nuestro bpel…
El proximo ejercicio para continuar con nuestro proyecto es el de insertar datos en una base de datos…





























1 respuesta hasta el momento ↓
Jorge // 28 Julio 2008 a 7:37 am
Cuando subiras el ejercicio de insertar en una base de datos? es muy interesante gracias..