<< Clic para mostrar Tabla de Contenidos >> Elemento Web service |
Introducción
La invocación de servicios de un sistema externo se configura de una manera fácil en Bizagi a través del Conector de servicios web (WS Connector).
El Conector de servicios web de Bizagi soporta funcionalidad estándar SOAP y de servicios REST, y presenta características de mapeo gráfico que permite que las entradas y salidas se manejen sin la necesidad de programación.
Incluso, se puede sobrescribir el comportamiento del mapeo gráfico de manera que se usen en cambio archivos de transformación XSL personalizados.
Para mayor información, consulte Invocar servicios externos desde Bizagi.
En escenarios más sofisticados donde la configuración de un servicio web de tipo SOAP no es posible mediante el Conector de servicios web, sea por el mapeo gráfico o con transformaciones, usted podrá optar por:
1. Apoyarse en la funcionalidad de Librería de componentes que le permite desarrollar su propio cliente que consuma el servicio web (opción preferida).
Para mayor información, consulte la Librería de componentes.
2. Invocar un servicio web desde una regla de negocio de Bizagi, por medio del elemento de Servicio web que se presenta visualmente (deprecado, disponible principalmente por compatibilidad hacia atrás).
De todas maneras, en este caso también es más recomendado por mantenibilidad y mejores prácticas, hacer uso de la Librería de componentes.
Nótese que si aún desea utilizar el elemento de Servicio web (Web service) en este escenario y si las entradas y salidas involucradas usan elementos XML de tipo complejo (no datos primarios como enteros o booleanos), entonces usted podrá apoyarse en los métodos del API de Bizagi en reglas que facilita el manejo de información en Bizagi y en XMLs.
Para mayor información sobre este API, consulte XML Helper para interfaces.
¿Cuándo son estas otras alternativas válidas?
Los escenarios sofisticados en los que el uso del Conector de servicios web no suele ser viable son:
•Cuando los servicios web se han construido con estándares no soportados por el Conector de servicios web.
Recuerde que este Conector soporta un amplio conjunto de estándares que incluyen SOAP 1.1 y 1.2, WSDL 1.0 y otros aspectos considerables de extensiones como por ejemplo WS-Security.
En estos casos, se recomienda utilizar la Librería de componentes (por encima del elemento de Servicio web de las reglas), dado que el Conector de servicios web soporta más estándares que los soportados por el elemento de Servicio web.
•Cuando usted necesita invocar un servicio X veces, mientras se itera por elementos de una colección.
Esto implica cuando el servicio web para invocar no recibe un arreglo de ítems sino que recibe información de solo un ítem (y por ende se debe invocar múltiples veces).
Independientemente de estas alternativas, el elemento Web service dentro de las reglas de negocio mantiene restricciones de uso, algunas de las cuales involucran el soporte únicamente a SOAP 1.1 y de manera limitada, tales como el no soporte al elemento xs:choice (https://www.w3schools.com/xml/el_choice.asp). Por lo anterior, siempre será recomendable usar el Conector de servicios web a su vez.
Usando el elemento Web service
Para llamar un servicio web desde una regla de negocio debe incluir el elemento Servicio Web y configure la invocación.
Ejemplo
En el siguiente ejemplo, un servicio web tiene un método que recibe y retorna tipos de datos simples (por ejemplo enteros, strings, Booleanos, etc.):
Vamos a utilizar el proceso de Solicitud de Vacaciones. Este proceso invoca el servicio web SOAP al principio del proceso para verificar (consultar) el número de días de vacaciones disponibles del empleado que hace la solicitud.
El servicio web retornará un número para esta solicitud (entero).
Mientras se invoca la regla de negocio, es posible manipular la respuesta antes de actualizar el modelo de datos.
Siga los siguientes pasos para realizar la configuración del ejemplo:
1. Cree una nueva regla de negocio para invocar el Servicio Web.
En el paso cuatro del asistente, Reglas de negocio, seleccione la opción Acciones de la actividad (Eventos).
2. Dé clic en la actividad donde se va ha incluir la expresión. Cree o modifique la regla.
Luego de definir el Nombre, Nombre Visual y la Descripción, cree una variable para la invocación (guarda la respuesta del servicio) dando clic derecho sobre el botón verde Inicio y seleccionando la opción Declaración de variables.
3. Dé clic en Adicionar para crear una nueva variable y seleccione entero, como tipo de variable (int).
Asígnele un Nombre y dé clic en Ok.
Observe que puede asignar un valor inicial por defecto. Dé clic en Ok.
4. Dé clic derecho sobre la línea vertical de la regla y seleccione Adicionar Servicio Web.
5. Dé clic derecho sobre el elemento Servicio web y seleccione sus Propiedades: Esto lanzará un asistente que lo guiará a través de la configuración de la invocación del Servicio web.
6. Ingrese el URL de la ubicación del servicio Web.
El primer paso en el asistente es ubicar el servicio Web.
En nuestro ejemplo vamos a ingresar: http://www.bizagi.com/ESB/ESBServices.asmx
Usted puede utilizar UDDI para la resolución de la ubicación.
Dé clic en Siguiente.
7. Seleccione el método Web de los métodos proporcionados por el servicio Web. Dé clic en Siguiente.
8. Defina los valores de los parámetros de entrada.
Note que Bizagi, de forma automática, detecta si el método escogido espera parámetros de entrada y también el tipo de estos datos.
En la siguiente ventana, seleccione el parámetro para definir su valor y dé clic en el botón establecer valores.
En el ejemplo, el método recibe como parámetro de entregada un único parámetro de tipo String.
Usted puede incluir el valor para el parámetro o puede escoger una variable antes creada.
En el ejemplo se va a utilizar una expresión XPath para asignar el valor, dado que se necesita el solicitante de la solicitud (la información del caso puede ser encontrada de forma directa).
Dé clic en Ok y luego en Siguiente.
9. Seleccione la variable en la cual se va a guarda el resultado de la respuesta.
En el ejemplo, la variable se llama tempResponse, la cual fue creada en el paso 3.
Dé clic en Siguiente para terminar la configuración.
10. Incluya cualquier manipulación adicional del resultado.
Vamos a continuar modificando la regla, lo cual indica que cualquier otra manipulación se realiza directamente sobre la variable tempResponse la cual está guardando el resultado del servicio web.
Por ejemplo, podemos optar por incluir un elemento de expresión interno para sumar, restar o redondear la información.
Haga doble clic sobre la expresión para realizar cambios.
11. Finalmente, asigne la información calculada al modelo de datos.
Para realizar esto, vamos a incluir un elemento de asignación.
Dé clic derecho sobre el elemento Asignación y seleccione sus Propiedades.
12. Asigne la variable a un atributo del modelo de datos.
En el ejemplo, vamos a asignar el valor final de TempResponse al atributo DaysAvailable del modelo de datos:
Note que el atributo pertenece a la entidad VacationRequest.
Para asignar tempResponse, seleccionamos la opción Expresión y escribimos directamente el nombre de las variables.
Dé clic en Ok para guardar la regla de negocio.
Last Updated 1/25/2023 12:06:13 PM