Contenido
1. Cloud Integration
SAP Cloud Integration favorece la integración de procesos comerciales que comprende diferentes empresas, organizaciones o departamentos dentro de una organización.
SAP Cloud Integration le facilita al usuario la conexión de aplicación locales y en la nube con otras aplicaciones existentes locales y en la nube de SAP ya que este tipo de servicio procesa los mensajes en escenarios en tiempo real que abarcan diferentes empresas, organizaciones o departamentos dentro de una organización.
2. Flujo de Integración
Un flujo de integración es la base de cualquier proyecto de integración de datos ya que contiene funciones de automatización integradas que hacen que este proceso sea tan fácil que los usuarios comerciales no técnicos puedan crear flujos con el soporte de TI mínimo o nulo.
3. Postman
Es una herramienta que se puede utilizar para realizar el testing de una API REST, también permite crear peticiones sobre APIs de forma sencilla que ofrece un conjunto de utilidades adicionales que permite crear y enviar peticiones http a servicios REST mediante una interfaz gráfica. Estas peticiones pueden ser guardadas.
4. Transformation Filter
En SAP Cloud Integration encontramos diferentes elementos de transformación, estos nos permiten realizar operaciones y modificaciones en los mensajes durante su procesamiento.
Uno de estos elementos es el Filter, el cual podemos usar para extraer información de un mensaje entrante.
Este elemento tiene las siguientes pestañas en sus propiedades:
General: Donde especificamos el nombre para el elemento, el valor por defecto es Filter.
Processing: Aquí encontramos dos atributos
· XPath Expression: Especifique la ruta XPath del nodo de mensaje que contiene la información a filtrar.
· Value Type: En el que encontramos una lista desplegable donde seleccionamos el tipo de valor, donde encontramos los siguientes: String, Integer, Boolean, Node, Nodelist.
5. Desarrollo
En este articulo plantearemos un escenario en el que enviaremos un mensaje con información de un inventario de automóviles desde POSTMAN usando el adaptador de HTTPS y filtraremos este mensaje por una marca especifica usando el elemento FILTER.
Requisitos
Hay que tener en cuenta que para poder realizar este ejercicio se debe contar con una cuenta en SAP BTP Cockpit y con la suscripción de Integration Suite, tener un paquete de integración creado en la plataforma de Cloud Integration.
Primero se debe acceder a un navegador e ingresar la siguiente URL, puedes hacerlo desde aquí, para ingresar a nuestra cuenta de SAP BTP Cockpit.
Accedemos a nuestra subcuenta llamada “LOGALI” y luego debemos ingresar a Integration Suite.
Después debemos ingresar a la capabilidad de Cloud Integration, en el menú “Design” y luego “Integrations and APIs”.
Luego seleccionamos nuestro paquete de integración, damos en el botón de edición e ingresamos en la pestaña de “Artifacts” para poder añadir un flujo de integración luego debemos ingresar los datos necesarios para crear el flujo de integración para este caso lo llamaremos “Transformation – Filter”, agregamos una descripción y por último dar clic en el botón “Ok”.
Luego de crear el flujo de integración vamos a diseñar la estructura que tendrá el mismo.
Luego de ingresar a nuestro flujo de integración vamos procedemos a editarlo, el mensaje lo enviaremos desde un cliente externo y para ello usaremos el adaptador HTTPS el cual vamos a conectar al evento de inicio de mensaje, luego vamos a las propiedades y en la pestaña de “Connection” agregamos la dirección con la que se creará nuestro endpoint. Para este caso será “/Dealer”.
Luego vamos a agregar el elemento de la paleta de transformación que usaremos para filtrar el mensaje y extraer los datos que necesitamos.
Si vamos a las propiedades de este elemento encontraremos 2, la pestaña “General” que nos va a permitir cambiar el nombre del elemento y la pestaña “Processing” en donde encontraremos los siguientes atributos:
XPath Expression: Especifique la ruta XPath del nodo de mensaje que contiene la información a filtrar.
Value Type: En el que encontramos una lista desplegable donde seleccionamos el tipo de valor, donde encontramos los siguientes: String, Integer, Boolean, Node, Nodelist.
Para este ejercicio enviaremos petición desde POSTMAN con el contenido del inventario de automóviles en el mensaje de la petición.
<Dealer>
<Car>
<Id>1156</Id>
<Brand>Renault</Brand>
<Model>Captur</Model>
<Year>2021</Year>
<Color>Black</Color>
</Car>
<Car>
<Id>9983</Id>
<Brand>Toyota</Brand>
<Model>Yaris</Model>
<Year>2019</Year>
<Color>Black</Color>
</Car>
</Dealer>
Puedes descargar el XML aquí.
Queremos obtener los automóviles de la marca Renault por lo que indicamos el siguiente parámetro en el XPath Expression que contiene la ruta hasta la raíz que queremos filtrar y capturamos con el parámetro “text()” el texto de esta.
/Dealer/Car[./Brand/text()=’Renault’]
Value Type: Nodelist
Guardamos e implementamos nuestro flujo de integración.
Luego de implementarlo vamos al monitor y entramos a “Manage Integration Content”, seleccionamos nuestro flujo de integración y en la pestaña de Endpoints copiamos la url que nos ha generado.
Vamos a POSTMAN quien hará las veces de cliente y crearemos una nueva solicitud con la petición GET y pegamos el EndPoint generado en nuestro flujo de integración.
Vamos a la pestaña de “Authorization”, en el tipo le indicamos Basic Auth e ingresamos el usuario y contraseña.
Nota: El usuario y contraseña de conexión lo encontramos en nuestra subcuenta, instancias y suscripciones, buscamos la instancia de Servicio de Integración y abrimos la Key, allí vamos a encontrar el clientId que será nuestro usuario y el clientsecret que será la contraseña.
Luego en la pestaña “Body”, seleccionamos “raw” y vamos a copiar el inventario de automóviles para realizar una petición, damos al botón enviar “Send”. Y vemos que obtenemos como estado “200 Ok” lo que nos indica que se ha procesad correctamente, además vemos en el body de la respuesta el archivo xml con los automóviles de la marca filtrada.
Ahora vamos a capturar el valor a filtrar de manera dinámica y enviamos el resultado de la petición mediante el adaptador Mail.
Lo primero que haremos será agregar la cabecera que tendrá el valor a consultar. Esto lo haremos en las propiedades de nuestro flujo de integración en la pestaña configuración en tiempo de ejecución (Runtime Configuration).
Nota: para ver las propiedades de nuestro flujo de integración damos clic fuera del proceso de integración.
Ahora modificamos el XPacth de nuestro elemento Filter, pero para reciba el valor enviado en la cabecera de la petición.
XPath Expression:
/Dealer/Car[(Brand le function:simple(‘${header.brand}’)) and (Brand ge function:simple(‘${header.brand}’))]
Value Type: Nodelist
Guardamos nuestro flujo de integración y lo implementamos.
Regresamos a POSTMAN y en la pestaña header, agregamos la cabecera y el valor que va tener en la petición, en este caso vamos a filtrar por la marca Toyota y damos enviar. Key: brand, Value: Toyota
Vemos que tenemos como respuesta código 200 y el mensaje de la misma.
En este artículo proporcionamos una explicación general de cómo usar el elemento de transformación Filter para extraer información de un mensaje durante el procesamiento del mismo. Dirigido a todas las personas que quieran aprender más sobre las herramientas SAP Cloud Integration y como se integran las diferentes herramientas de SAP. Podrás encontrar más datos como estos en los cursos y blogs desarrollados por Logali Group.