Está en la página 1de 24

Crear proyecto BPEL oracle SOA 10

Un vistazo rpido a lo que haremos:


1. Crear Aplicacin en Jdeveloper
2. Crear proyecto XML Eschema
3. Crear proyecto Bpel
4 Generar Assign
5 Correr proyecto en el Application Server

1. Crear aplicacin en Bpel


Una vez abierto el Jdeveloper damos click en Applications con el botn derecho
del Mouse y seleccionamos New Application. Nuestra aplicacin tendr 2
proyectos. Uno donde estar el esquema que utilizar el Bpel y otro para el
proyecto de Bpel. Que es un esquema de bpel?? Es conjunto de tipos de datos
que el bpel utiliza como variables de entrada y de salida.

Ok.. Continuemos una vez seleccionado New application nos aparecer una
ventana con las configuraciones para nuestra aplicacion: Nombre: DemoBPEL,
Directorio: El que se desee, y todo lo dems como aparece en la imagen:

2. Crear proyecto Bpel eschema


Ahora por default al crear una aplicacin siempre nos pide un proyecto (en caso
de que se seleccione No template como en la imagen de arriba. Entonces
aprovechamos el proyecto para crear all nuestro esquema y le ponemos como
nombre: BPEL_Esquema. y damos ok.

Ya tenemos el proyecto creado pero tenemos nada dentro del mismo.. por lo que
seleccionamos el proyecot y con el botn derecho del mouse sellecionamos la
opcin New y nos aparece una ventana de opciones seleccionamos el menu
General y lo expandimos y luego la opcin XML y en la ventana Items (del lado
derecho) la opcion XML Eschema

Ahora le damos un nombre a nuestro esquema en mi caso EsquemaBPEL y


checamos donde se va a guardar nuestro esquema que por default es en mismo
directorio donde se crea nuestra aplicacin. Checar bien la direccin por que ms
adelante lo vamos a necesitar.

y nos aparece una ventana de Esquema. En el centro nos aparece por default un
Element que ser el padre de los elemnts que agreguemos. Seleccionamos del
lado derecho de nuestro jdveloper el Component Palett y seleccionamos en el
combo Schema Components (debe aparecer por default) buscamos el component
Sequence y lo arrastramos al centro y lo unimos con nuestro element padre.
Ahora seleccionamos un element y lo arrastramos hacia del sequence que
acabamos de colocar y as con 4 elements ms para obtener lo siguiente:

Ahora que tenemos nuestros elementos al elemento padre lo renombramos dando


cllick sobre el y le ponemos DatosEsquema Ojo: No deben de haber espacios y
acentos en los nombres de los elementos.
Ahora seleccionamos los elementos que anexamos y con el botn derecho del
Mouse seleccionamos la opcin Set type y ponemos los tipos como se muestra
en la imagen:

Por ultimo para nuestro esquema le damos guardar en bpel y listo. Ya podemos
trabajar con nuestro esquema.
Crear proyecto BPEL
Ahora vamos a crear nuestro proyecto bpel. Seleccionamos la aplicacin
DemoBPEL y con el botn derecho damos click en el men desplegado New
project

Ahora seleccionamos el men General y desplegamos y buscamos la opcin


Projects y del lado de Items a la derecha seleccionamos la opcin: Bpel Process
Project y damos click en Ok

Ahora se despliega una ventana donde le pondremos nombre a nuestro proyecto


bpel DemoBPEL y verificamos en que en Template se encuentre seleccionado
Asynchronus BPEL Process y damos click en Next

Ahora nos pide el schema bpel que utilizaremos para nuestro proyecto. Damos
click en la lmpara y buscamos el Esquema que creamos anteriormente y lo
seleccionamos y damos click en open.

Ahora bien seleccionamos el elemento padre de nuestro esquema y le damos click


en ok
y nos hacemos lo mismo con el esquema de salida de nuestro proyecto bepel.

Y como resultado debe de quedar lo siguiente y damos finish

Ahora nos muestra la interfaz de nuestro proyecto bpel donde aparece un Servicio
Client a la izquierda que es el que recibe los datos del esquema que se manden
por Web Service y en el centro un receive que recibe los datos y un callback que
regresa la llamada al client para terminar la Asincronizacion.

El callback client nos muestra una bandera amarilla y esto es porque no le hemos
asignado variables a nuestro proyecto (Podremos recibir datos pero esos datos no
los utilizamos en nuestro proyecto porque no hay operaciones de transaccin de
datos) y lo podemos comprobar dando click en la bandera y nos muestra la
leyenda del motivo del Warning y la posible solucin.

Crear actividad Assign


Para empezar a trabajar con los datos lo primero que haremos ser agregar un
Assign al nuestro proyecto. Un assign es un elemento con el que manipulamos
datos, es decir podremos introducir, manipular y obtener datos de salida y entrada.
Para entender un poco mejor hagamos lo siguiente.
En la derecha de nuestro jdeveloper tenemos una paleta de componentes,
buscamos en el combo la opcion Process Activities y con el Scroll buscamos el
dibujo que tenga la leyenda Assign, una vez encontrado lo seleccionamos y lo
arrastramos debajo del ReceiveInput.

Una vez colocado nos mostrara un warning esto es porque tenemos un Assign
pero no tiene declarados los datos que se incluirn en el. Para esto damos doble
click sobre la figura del Assign.

Una vez abierto el assign lo que crearemos ser un CopyOperation: Esto es para
realizar Operaciones de manejo y asignacin de variables.

Ahora seleccionamos el tipo de variable que queremos iniciar. En nuestro caso va


a ser una variable de tipo Expression (ya que podemos escribir funciones o
variables directamente o seleccionarlas apoyados de un Expression Builder que
es una ventana que nos despliega todas las formas de crear funciones.

Ahora escribimos dentro del cuadro de expresin (dentro de From cuadro) que se
nos presenta el siguiente texto: Ejemplo de un proyecto Bpel y en el cuadro To
seleccionamos en Tipo dVariable y expandimos el nodo de process-variablesInputVariable-Payload-DatosEsquema-Elemento1
Esto significa que al elemento1 del nuestro esquema le estamos asignando el
valor (string) de Ejemplo de un proyecto Bpel y damos Ok

Ahora bien vamos a asignarle variables a cada uno de nuestros elementos: En el


caso del elemento2 repetimos los mismos pasos que para el elemento1 solo que
en vez de escribir en el cuadro que se nos muestra al seleccionar de Tipo
expresin ahora damos click a la imagen de una nota con un lpiz, esto nos
mostrar un expression builder para construir un funcin:

Una vez que aparezca el expression builder haremos una concatenacin (unin)
de Datos, por ejemplo, queremos unir Dato1 con Dato2 haramos lo siguiente:
Concat(Dato1Dato2) as de sencillo, aqu es casi igual, lo primero que haremos
sera irnos de lado inferior derecho de nuestra ventana expression builder y en
Functions darle click al combo de funciones y buscar String functions una vez
dentro de estring functions la segunda funcin que nos aparece en la lista es
Concat le damos doble click y la funcin aparecer dentro de nuestro cuadro
principal de Expresion asi Concat() (Ojo, esta funcin como todas las dems las
podemos escribir pero hay que tener cuidado que no nos falte ninguna palabra)
Ahora nos posicionamos entre los 2 parntesis del concat y dejamos el cursor all
y con el mouse nos vamos al cuadro inferior izquierdo y expandimos las variables
del proceso y el payload y seleccionamos Element1 y le damos doble click o en
la barra que dice Insert in to expression y nuestro concat queda de la siguiente
manera:
Concat(bpws:getVariableData(InputVariable,
payload,
ns1:DatosEsquema/ns1:element1)) ahora bien ponemos el cursor entre los 2
ltimos parntesis y colocamos una coma y espacio para que quede as:
s1:element1), )
Ahora regresamos a nuestras variables expandidas y seleccionamos el elemen2 y
lo metemos a nuestro concat y nuestra funcin queda as:

Y listo tenemos nuestro concat creado y damos click en aceptar y ahora ya hemos
creado nuestra variable pero hay que decirle a donde va a llegar y en nuestra
ventana To seleccionamos el element2: Eso significa que el valor que

escribamos en el element2 se va a unir con el element1 y va a ser el nuevo valor


de element2: Por ejemplo: Element1 = Ejemplo de un proyecto Bpel Element2 =
muy facil despus que se asigne la variable element2 quedara: Ejemplo de un
proyecto Bpel muy facil

Ahora vamos a asignarle un valor al element3, como nuestro element3 es de tipo


DateTime vamos a repetir los pasos que hicimos para el elment2 creando un
nuevo cop operation y seleccionamos de las funciones del Expresion builder la
que se llame Date functions y damos doble click en current date-time y damos
Ok

y luego asignamos esa variable current DateTime a la variable Input Element3


como lo hemos hecho con los elemen1 y 2 y creamos un nuevo copyOperation
donde escribimos number(1) y lo asignamos a nuestro element4 que es de tipo
integer (numrico)

y ahora creamos el ultimo Copy operation para el element5 que es tipo bolean por
que escribimos: true solamente y lo asignamos:

y si todo est bien nuestro assign debe de haber quedado as:

Ahora por ultimo le vamos a decir a nuestro assign que todas las variables que
declaramos de entrada las ponga en la salida de mismo. Esto porque la variables
las pusimos en el InputVariable para que adquieran ese valor pero no le hemos
dicho que tengan una salida. Esto lo hacemos dando click en Create
CopyOperation y seleccionamos el conjunto de variables hacia el mismo conjunto
de variables de salida: Si no hacemos esto el CallbackCliente (el cuadrado azul al
final) seguira con la bandera amarilla de warning.

Damos click en Ok y nuestro flujo de proceso queda as:

y tenemos creado nuestro ejemplo de bpel, ahora bien, tenemos que publicar este
Proyecto para que podamos ejecutarlo, verificar y probarlo.
Para eso tenemos que publicarlo en nuestro Bpel process.
Tenemos que tener en cuenta que ya tenemos instalado SOA y el servicio est
levantado y ya existe la conexin en Jdeveloper, en dado caso que no checarlo en
los siguientes links acordes a este proceso:
Instalacion Oracle SOA Suite
Iniciar Oracle SOA Suite
Crear conexion Jedeveloper-Aplication Server
Y si todo esta echo entonces nos vamos a proyecto DemoBPEL en nuestra
ventana de aplicaciones en Jdeveloper a la izquierda. y le damos click con el
botn derecho del Mouse

Y al darle click click nos presenta el siguiente men del cual seleccionamos:
Deploy-SPCMV1-DeployToDefaulDomain (en mi caso SPCMV1 es el nombre de
mi Conexin).

Y nuestro Jdeveloper empieza a realizar operaciones de Empaquetado para


enviar nuestro proyecto al Bpel y mientras nos muestra informacin de lo que
realiza en el Log de mensajes y en el apache ant descriptor esto en la parte
inferior del jdeveloper y si todo est bien al final de la compilacin del Proyecto nos
debe mostrar un mensaje en color verde diciendo la construccin fue exitosa:

y ahora vamos a ver funcionando nuestro proceso para eso nos vamos a nuestro
Oracle Bpel Control entrando a la siguiente direccin:
http://miservidor:mipuerto
en mi caso: http://spcmv1:7777
y nos muestra la pagina de administracin del Soa Suite y del lado izquierdo nos
muestra los componentes del mismo y dentro de ellos el Bpel Control y le damos
click

y ahora colocamos el usuario y contrasea administrador de bpel que en mi caso


es oc4jadmin/welcome1

y entramos al control del Bpel donde tenemos nuestros proyectos y las instancias
de los proyectos.
Y si todo est bien nuestro proyecto debe encontrase en panel de Control en la
lista del lado izquierdo y le damos click:

Y nos muestra las casillas para los datos de nuestro esquema:


Vemos que nuestros datos son los mismos del esquema que le asignamos al bpel
y damos click en publicar mensajes para detonar nuestro proceso:

y ahora nos muestra un estado de nuestro proyecto y damos click en la imagen


que dice Flow (flujo visual). En caso de que no se muestre y nos diga que se ha
superado el tiempo dar click en la opcin reintentar de nuevo

y si le das click nos muestra el flujo de nuestro proceso en donde se encuentra en


ese momento y como nuestro proceso solo tiene un assign y termina el flujo
estar completo:

Ahora bien damos click en el assign y mostrar los pasos que dio y los datos que
fue introduciendo. Si bajamos con el Scroll nos damos cuenta que como fuimos
creando el CopyOperation as se van colocando los datos y nuestros datos deben
de estar y el element2 debe tener el mismo que el element1 ya que no le
colocamos nada cuando lo detonamos:

Y hasta al final en nuestro ultimo copy operation le decimos que tome todas las
variables y las ponga de salida: por lo que debe ser lo ltimo que nos debe
mostrar

Ahora bien, cerramos los datos del assign y damos click en el tab Panel de
control y detonamos otro demoBPEL pero ahora introducimos un dato en abril
2008 en el element2 y lo detonamos

y checamos el flujo y damos click en el assign para ver los datos y debe
mostrarnos lo siguiente:

y checamos el ultimo copy operation y listo.. Tenemos nuestra primera parte del
Demo donde pudimos assignar variables y famirializarnos con el BPEL

También podría gustarte