Crear proyecto BPEL oracle SOA 10

Un vistazo rápido a lo que haremos:

1. Crear Aplicacion en Jdeveloper

2. Crear proyecto XML Eschema

3. Crear proyecto Bpel

4 Generar Assign

5 Correr proyecto en el Application Server

—————————————–

1. Crear aplicacion en Bpel

Una vez abierto el Jdeveloper damos click en Applications con el boton derecho del Mouse y seleccionamos “New Application”. Nuestra aplicacion tendra 2 proyectos. Uno donde estara 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.

New application

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 demas como aparece en la imagen:

Application

2. Crear proyecto Bpel eschema

Ahora por default al crear una aplicación siempre nos pide un proyecto (en caso de que se seleccione “No template” como en la imagen de aariba. Entonces aprovechamos el proyecto para crear alli nuestro esquema y le ponemos como nombre: BPEL_Esquema. y damos ok.

Proyecto

Ya tenemos el proyecto creado pero tenemos nada dentro del mismo.. por lo que seleccionamos el proyecot y con el botón derecho del mouse sellecionamos la opción “New”New1

y nos aparece una ventana de opciones seleccionamos el menu “General” y lo expandimos y luego la opción XML y en la ventana Items (del lado derecho) la opcion XML Eschema

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 aplicacion. Checar bien la direccion por que mas adelante lo vamos a necesitar.

Esquemabpel

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. Ahor seleccionamos un “element” y lo arrastramos hacia del sequence que acabamos de colocar y así con 4 elements mas para obtener lo siguiente:

esquema bpel

Ahora que tenemos nuestros elementos al elemento padre lo renombramos dando cllick sobre el y le ponemos “DatosEsquema” Ojo: No deben da haber espacions y acentos ne los nombres de los elementos.

Ahora seleccionamos los elementos que anexamos y con el voton derecho del Mouse seleccionamos la opcion “Set type” y ponemos los tipos como se muestra en la imagen:

Set type element

Type element

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 aplicacion DemoBPEL y con el boton derecho damos click en el menu desplegado “New project”

Broject Bpel

Ahora seleccionamos el menu “General” y desplegamos y bucamos la opcion “Projects” y del lado de Items a la derecha seleccionamos la opcion: “Bpel Process Project” y damos click en Ok

Bpel Project Select

Abora se despliega una ventana deonde le pondremos nombre a nuestro projecto bpel “DemoBPEL” y verificamos en que en Template se encuentre seleccionado “Asynchronus BPEL Process” y damos click en Next

Asyncrohnus Bpel

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

Select Squema

Ahora bien seleccionamosel 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.

Schema

Y como resultado debe de quedar lo siguiente y damos finish

Finish esquema

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.

Bpel esqueleto

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

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 arastramos debajo del ReceiveInput.

Assing

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

Warning assign

Una vez abierto el assign lo que crearemos será un CopyOperation: Esto es para realizar Operaciones de manejoy asignación de variables.

Copy operation

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 sseleccionarlas apoyados de un “Expression Builder” que es una ventana que nos despliega todas las formas de crear funciones.

Expression variable

Ahora escribimos dentro del cuadro de expresion (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-variables-InputVariable-Payload-DatosEsquema-Elemento1

Esto siginifica que al elemento1 del nuestro esquema le estamos asignando el valor (string) de “Ejemplo de un proyecto Bpel” y damos Ok

Asignacion de variables

Ahoara 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 espression ahora damos click a la imagen de una nota con un lapiz, esto nos mostrará un expression builder para construir un función:

Expression builder

Una vez que aparezca el expression builder haremos una concatenacion (union) de Datos, por ejemplo, queremos unis Dato1 con Dato2 hariamos lo siguiente: Concat(Dato1Dato2) asi de sencillo, aqui 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 funcion que nos aparece en la lista es “Concat” le damos doble click y la funcion aparecera dentro de nuestro cuadro principal de Expresion asi “Concat()” (Ojo, esta funcion como todas las demas las podemos escribir pero hay qeu tener cuidado que no nos falte ninguna palabra) Ahora nos posiciamos entre los 2 parentesis del concat y dejamos el cursos alli y con el mouse nos vamos al cuadro inferior izquierdo y expandimos las variables del proceso y el payload y seleccionamo “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 cursos entre los 2 ultimos parentesis 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 funcion queda así:

concat

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” despues que se asigne la variable element2 quedaria: “Ejemplo de un proyecto Bpel muy facil”

Function

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 selecciamos de las funciones del Expresion builder la que se llame “Date functions” y damos doble click en current date-time y damos Ok

DateTime

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 (numerico)

Integer

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

boolean

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

CopyOperation

Ahora por ultimo le vamos a desir a nuestro assign que todas las variables que declaramos de entrada las ponga en la salida de mismo. Esto por que la variables las pusimos en el InputVariable par 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) seguiria con la bandera amarilla de warning.

Variables

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

Flow process

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 esta levantado y ya existe la conexcion 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 boton derecho del Mouse

Proyecto Bpel

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

Deploy

Y nuestro Jdeveloper empieza a realirar operaciones de “Empaquetado” para enviar nuestro proyecto al Bpel y mientras nos muestra informacion 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 esta bien al final de la compilacion del Proyecto nos debe mostrar un msj en color verde diciendo la construccion fue exitosa:

Build

Buil Succesful

y ahora vamos a ver funcionando nuestro proceso para eso nos vamos a nuestro Oracle Bpel Control entrando a la siguiente direccion:

http://miservidor:mipuerto

en mi caso: http://spcmv1:7777

y nos muestra la pagina de administracion del Soa Suite y del lado izquierdo nos muestra los componentes del mismo y dentro de ellos el Bpel Control y le damos click

Bpel Control

y ahora colocamos el usuario y contraseña administrador de bpel que en mi caso es oc4jadmin/welcome1

Bpel acces

y entramos al control del Bpel donde tenemos nuestros proyectos y las instancias de los proyectos.

Y si todo esta bien nuestro proyecto debe encontrase en panel de Control en la lista del lado izquierdo y le damos click:

Panel de control

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 msj para detonar nuestr proceso:

Datos Proyecto

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 opcion “reintentar de nuevo”

Flow

y si le das click nos muesra el flujo de nuestro proceso en donde se encuentra en ese momento… y como nuestro proceso solo tiene un assign y termina el flujo estara completo:

Flow complete

Ahora bien damos click en el assign y mostrara los pasos que dio y los datos que fue introduciendo. Si bajamos con el Scroll nos damos cuenta que como fuimos creando el CopyOperation asi 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:

Check Assign

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

chekc

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

Element2

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

Assign check

y checamos el ultimo copy operation… y listo.. tenemos nuestra primera parte del Demo donde pudiimos assignar variables y famirializarnos con el BPEL

Los siguientes capitulos para seguir en orden son:

Crear un Archivo Plano con bpel

Hacer un Insert en la Base de Datos

23 Respuestas a Crear proyecto BPEL oracle SOA 10

  1. Pingback: Escribir un archivo con BPEL SOA suite « Abenzoar’s WebWorld…

  2. La verdad que me sirvio muchisimo estos dos tutoriales.. muchas gracias.. si tenes mas info sobre BPEL se agradece!!

  3. Muy bueno todo lo de BPEL, si tenes mas info o donde puedo leer los siguientes capitulos, o si me podés enviar info a mi mail te estaría muy agradecido . jorgezarate@gmail.com

    Muchas gracias y felicitaciones por la web

    Nos vemos, Jorge!

  4. Johanna Guiracocha

    Hola como estás??? Te saluda alguien de Guayaquil-Ecuador… Primero para felicitarte por esta ayuda… Tenemos asignado un proyecto de graduación ORACLE BPM y hemos trabajado en las herramientas BPA SUITE, JDEVELOPER, BPEL e instalado SOA SUITE… Leí este tutorial y me pareció muy interesante y super completo.. Seguí todo al pie de la letra y hasta ahi pudimos presentarle al jurado de nuestro proyecto un avance… Pero para poder terminar nuestro proyecto nos piden que hagamos la interfaz final del usuario, es decir hacer el web service pero basándonos en los modelos de procesos que tenemos asignado y con los que hemos trabajado hasta ahora… Por favor si sabe como hacer un web service en jdeveloper pero desde el proceso bpel diseñado, ayudeme con algun manual o tutorial que conozca xq estamos contra el tiempo tenemos solo dos semanas…

    Igual gracias porque me sirvió de mucho su tutorial… Y esperando su respuesta lo más pronto posible… Bye y nuevamente gracias

  5. Abenzoar Enrique Uicab Cuara

    Hola Johanna.

    Según lo que entiendo quieres hacer es detonar tu proceso a través de un Web Service, para lo cual necesitas un interfaz (Pagina web) para enviarle los parámetros al bpel en vez de hacerlo por la consola de bpel. Si esto es correcto dame chance en estos días publico un ejemplo para poder ayudarte. Es algo muy sencillo.

    Saludos

  6. Pingback: Detonar proceso BPEL a traves de un WebService « Abenzoar’s WebWorld…

  7. SALUDOS TU PAGINA ES FABULOSA, MIRA ESTOY EMPEZANDO EN ESTO DE BPEL + WORFLOWS PARA MI TESIS , LO HAS TRABAJADO EN NETBEANS 6.1 AGRADECERIA TODA TU AYUDA SOY D VZLA GRACIAS

  8. Muy buen material para quienes estamos comensando con bpel, pero yo tengo problemas para hacer una comparacion con un dato incertado por el usuario y un dato existente en una tabla.

  9. Abenzoar Enrique Uicab Cuara

    Hola Alex.
    No entiendo muy bien que es lo que quieres hacer? Cómo haces la comparación o como deseas hacerla? Y por que tienes problemas??
    Saludos

  10. Que tal respecto a la duda que tenia pues ya no importa.
    Ahora lo que necesito hacer es
    1.-Capturar datos(cliente) y guardarlos en una tabla
    2.-Enviar una notificacion(x persona)
    3.-Esta persona revisa los datos y sigue capturando mas datos q se guardaran en otra tabla, exel y word.

    Mi duda es
    ¿como guardo dichos datos en las tablas?
    ¿necesito web services?

    Voy a seguir chaecndo tus pag a ver que sale :D

    tus paginas son de exelente ayuda gracias
    saludos!

  11. Abenzoar Enrique Uicab Cuara

    Hola Alex
    Checa mi blog de WebServices y utiliza mi blog
    http://abenzoar.wordpress.com/2008/09/05/detonar-proceso-bpel-a-traves-de-un-webservice/
    para ingresar datos en una base de datos… Con eso tienes para realizar lo que necesitas..
    Espero te sirva Saludos

  12. Hola Enrique como estas?

    Tengo una duda ojala q me puedas ayudar.
    Lo q necesito es iniciar un proceso bpel cuando se ejecute un trigger en la base de datos ¿se puede? ¿tienes informacion q me pueda ser util?
    Saludos Gracias

  13. Está muy bién explicado. Pero tengo una pregunta acerca de un problema que nos está sucediendo. Aveces pasa que el Bpel deja de recibir y enviar los eventos, solo hasta reiniciarlo detecta que hay nuevos eventos. Usted me podría brindar información acerca de lo que está pasando? Grácias.

  14. Hola…
    Primero vamos a revisar que equipo tienes.. si me puedes dar las características de tu equipo.. y que otras aplicaciones y servicios tienes corriendo en esa máquina. Saludos.
    Me pasó una vez algo similar cuando saturé mi equipo y no respondía muy bién.. esperemos sea un caso similar….

  15. Hola!
    He visto que pilotas de esto un montón, mi enhorabuena.
    Podías facilitar libros, tutoriales, información de BPA, BPEL….

    Gracias por adelantado!!!!!

  16. Hola…
    Debo felicitar por tu buen material acerca de SOA. Mi problema consiste en que al momento de compilar mi proyecto, tengo errores. Los errores son de conexion y java, pero lo de conexion lo pruebo y me salen que esta success!, pero no entiendo el porquè no puedo compilar. De verdad que necesito su ayuda para poder corregir esto. Me gustaria que me pudieras contestar lo antes posible.
    Saludos.

  17. Que versión del Jdev y de servidor de aplicaciones estas usando… si puedes mándame el log del error que te envía para analizar lo que puede estar ocurriendo.

  18. Saludos.

    Excelentes posts, una pregunta tengo necesidad de tener algunas herramientas de desarrollo sobre oracle, que sistema operativo me recomiendas (windows) para hacer la instalacion de un maquina virtual con este.

    Gracias por la respuesta.

  19. Hola, disculpa el atraso de la respuesta pero he estado restringido de tiempo. Te recomiendo por facilidad Windows, un xp es suficiente para correr en una máquina virtual. Salu2
    En un productivo deberías hecharle un vistazo a una isntalación en un red hat, igual no es muy complicado, pero tardarías tal vés un poco más.

  20. Saludos:

    Gracias por la respuesta, yo tengo un maquina con windows 7 ultimate, he instalado el windows xp mode y sobre este he comenzado a instalar la base de datos 10 g, jdeveloper y soa suite, ahora solo tengo algunos problemas con la configuracion, pero bueno lo ire resolviendo poco a poco.

    Gracias.

  21. Buenas tardes, tenemos un inconveniente de como utilizar el simbolo gateway en bpa, no podemos asignarle cuando se vaya por el si o por el no, gracias por l ayuda y tu tutorial esta chevere

  22. Hola muy bueno tu tutorial si tienes mas informacion t agradeceria me la enviaras a mi correo. Muchas gracias.

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s