
En este blog, me gustaría mostrarle cómo puede cargar fácilmente desde cualquier sistema de origen a SAP Signavio Process Intelligence utilizando SAP Cloud Integration.
SAP Cloud Integration ofrece una amplia gama de conectores para SAP local y en la nube, así como soluciones que no son de SAP, y podemos aprovechar estos datos en SAP Signavio Process Intelligence para comenzar nuestro viaje de minería de procesos y obtener información detallada sobre nuestros procesos.
En mi escenario, configuro un programador que recupera los datos de una API de SAP S/4HANA Cloud en un intervalo específico. Si desea utilizar otra API u opción de conectividad que está disponible en SAP Cloud Integration, hágalo, el escenario también funcionará.
Iniciemos sesión en nuestro sistema S/4HANA Cloud y activemos la API.
En este escenario estoy aprovechando el API de lectura de proyectos comerciales.
Vamos a la aplicación “mantener usuario de comunicación” para crear un nuevo usuario técnico que maneje la autenticación básica para la API
Crear usuario de comunicación
Luego creamos un sistema de comunicación en la aplicación «mantener sistema de comunicación» y le asignamos nuestro usuario de comunicación. Aquí puede mantener cualquier nombre de host, ya que solo nos interesa leer datos de S/4HANA Cloud.
Crear sistema de comunicación.
Ahora activamos la API respectiva. Para eso vamos a la app “mantener arreglo de comunicación” y creamos el arreglo SAP_COM_0054. Una vez que guardamos el arreglo, nuestra API está lista para ser utilizada. También podemos ver la URL de nuestra API.
Crear arreglo de comunicación
Iniciamos sesión en Signavio y en la esquina superior derecha accedemos al producto Process Intelligence.
Acceda a la inteligencia de procesos
Una vez que accedemos a Process Intelligence podemos hacer clic en la esquina superior derecha en “Administrar datos”.
Administrar datos
Luego vemos nuestras canalizaciones de datos de proceso. En el lado izquierdo, haga clic en «Conexiones».
Conexiones
Aquí creamos una nueva conexión.
Crear nueva conexión
En «Otro», seleccionamos Ingestion API y le damos un nombre a la conexión.
Una vez que guardamos la conexión, obtenemos el punto final de la URL y un token para llamar a la API.
Punto final y token
Todas las API que queremos usar están listas.
Ahora iniciamos sesión en Cloud Integration y creamos un flujo de integración que se ve así:
Flujo de integración completo
Repasemos cada elemento aquí.
El flujo de integración comienza con un evento de temporizador, que programamos para que se ejecute cada hora entre un intervalo de tiempo específico.
Evento de temporizador
En el siguiente paso, agregamos una respuesta de solicitud ya que estamos llamando a una API de OData síncrona.
En el canal OData, insertamos la URL que recibimos del acuerdo de comunicación y el nombre de la credencial del usuario de comunicación en S/4HANA Cloud. Tenga en cuenta que el nombre de la credencial debe mantenerse en la pestaña de seguimiento en «Materiales de seguridad».
Punto final y usuario técnico
En la pestaña de procesamiento del canal OData, también seleccionamos los campos que queremos recuperar de la API.
En mi escenario, seleccioné los siguientes campos con fines de demostración.
Seleccionar campos en la API de OData
Ahora que hemos recuperado los datos en formato XML, los convertimos a CSV, ya que este es el formato que espera la API de ingestión. Para ello utilizamos el módulo conversor de XML a CSV.
Seleccionamos el separador de campo para que sea una coma e incluimos los nombres de campo como encabezados.
Conversor de XML a CSV
En el siguiente paso, creé un modificador de contenido y configuré el encabezado del mensaje «Aceptar» en «aplicación/json».
Encabezado del mensaje Aceptar
También configuro las propiedades requeridas por la API
Clave primaria: utilizo el campo obligatorio ProjectID
Esquema: Proporcioné el esquema a los campos que quiero extraer.
{"type":"record","name":"Projects","fields":[{"name":"ProfitCenter","type":["null","string"]},{"name":"CostCenter","type":["null","string"]},{"name":"ProjectName","type":["null","string"]},{"name":"Customer","type":["null","string"]},{"name":"ProjectID","type":["null","string"]},{"name":"ProjManagerId","type":["null","string"]}]}
Tipo de contenido: multiparte/datos de formulario; límite=cpi
El límite separa los diferentes valores en la carga útil más adelante.
Simbólico: “Portador
Aquí insertamos el token que recibimos al activar la API de ingesta en Process Intelligence.
Propiedades del mensaje
En el siguiente paso, creé un modificador de contenido adicional e inserté el tipo de contenido de la propiedad y el token en el encabezado. La razón por la que no lo hice directamente es que encontré algunos problemas cuando el encabezado del mensaje tenía un espacio en blanco en el medio, lo que sí tenía el mío. Si alguien conoce una mejor manera de manejar esto, ¡hágamelo saber!
Agregar propiedades al encabezado
Ahora agregué un script maravilloso para superar los problemas de final de línea mencionados en este Blog.
Mi guión maravilloso se ve así:
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
//Body
map = message.getProperties();
schema = map.get("schema");
primarykeys = map.get("primarykeys");
//Body
def body = message.getBody(String);
body = body.replaceAll("\n", "\r\n");
body = """--cpi\r\nContent-Disposition: form-data; name="schema"\r\n\r\n\r\n""" + schema + """\r\n--cpi\r\n""" + """Content-Disposition: form-data; name="files"; filename="S4.csv"\r\nContent-Type: text/csv\r\n\r\n\r\n""" + body +"""--cpi\r\nContent-Disposition: form-data; name="primaryKeys"\r\n\r\n""" + primarykeys + """\r\n--cpi--"""
message.setBody(body);
return message;
}
En el paso final, debemos configurar un canal http para la API de ingesta en Process Intelligence.
Como ya proporcionamos la autorización directamente en el encabezado del mensaje con el modificador de contenido, seleccionamos sin autorización aquí y solo insertamos la URL del punto final.
API de ingestión de llamadas
Una vez que ejecute el flujo de integración con éxito, puede iniciar sesión en Process Intelligence donde configuró la API de ingesta y hacer clic en «Datos de origen vinculados». Ahí puedes ver todos los campos que han sido replicados desde Cloud Integration hasta Process Intelligence
Datos de origen vinculados
También puede ver que configuramos ProjectID como nuestra clave principal con este indicador:
Campos de datos y clave principal
Y eso resume los pasos de configuración para configurar su primer escenario simple para cargar datos en Signavio Process Intelligence usando Cloud Integration.
Sin embargo, ¡esto es solo el comienzo! Invertiremos más en unir Cloud Integration y Signavio Process Intelligence para escenarios de integración basados en API.
Si tiene algún requisito específico para cargar datos en Signavio Process Intelligence donde está evaluando diferentes opciones de conectividad, no dude en comunicarse conmigo 🙂
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073