Como cambiar el tipo de las variables de Entrada/Salida en un proceso BPEL

diciembre 24, 2008

Cuando creas un proceso BPEL puedes seleccionar el archivo XSD que contenga la definición de los elementos de entrada y salida. En la realidad pocas veces al momento de crear el proyecto tenemos definidas nuestras entradas y salidas(aunque así debería de ser) o la mayoría de veces los requerimientos cambian y es necesario modificar estas. Hacer esto en jdeveloper no es fácil, no tiene alguna opción para actualizar los artefactos afectados por un cambio en en los elementos XSD de entrada y salida.
Cada proceso BPEL es expuesto como un servicio web a través de su archivo WSDL, así que este archivo es el que necesitamos modificar.

Si no tienes un archivo existente XSD con la definicion de tus elementos de E/S te recomiendo modificar el archivo XSD que te genera el jdeveloper y definirlos ahi en vez de crear un nuevo archivo XSD por cada elemento. De esta forma tendras en un solo archivo la definicion de los elementos. Si en tu proceso utilizas “bastantes” tipos de elementos tal vez si te convenga separarlos en archivos.

Al cambiar las E/S de nuestro proceso podemos hacerlo de 2 formas:

1.- Si no tenemos un archivo XSD que contenga los nuevos elementos, podemos modificar el archivo que se genero cuando creamos el proyecto.
Para hacer esto hay que abrir el archivo XSD que se encuentra en la carpeta Integration Content/Schemas, crear la definicion de los nuevos elementos(lo puedes hacer en la vista diseño arrastrando componentes o en la vista de código) y modificar el archivo WSDL para indicarle al proceso BPEL los nuevos elementos de E/S.
Para cambiar el tipo de los elementos E/S necesitas cambiar los mensajes de entrada y salida en el WSDL de la siguiente forma:

<operation name=”process”>
<input message=”prefix:Message Type”/>
<output message=”prefix:Message Type”/>
</operation>

2.-Si ya tenemos un archivo XSD con los elementos que queremos utilizar, tenemos que agregarlo al proyecto e importar la definición en el arhivo WSDL e indicarle al proceso BPEL los nuevos elementos de E/S en ese mismo archivo.

Para importar un archivo XSD:

<types>
<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”&gt;
<xsd:import namespace=”Namespace of XSD” schemaLocation=”XSD Location”/>
</xsd:schema>
</types>

Asegurate de escribir correctamente el nombre de los nuevos elementos y utilizar el “namespace” correcto, de lo contrario te puede aparecer el error

[Error ORABPEL-10902]: compilation failed [Description]: in “bpel.xml”, XML parsing failed because “undefined part element.

Finalmente valida tu proceso BPEL, compila y haz el “deploy” en el servidor.

Fuentes:
SOA: What, How & Why

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 276 seguidores

%d personas les gusta esto: