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
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.
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.
Iniciamos sesión en Signavio y en la esquina superior derecha accedemos al producto Process Intelligence.
Una vez que accedemos a Process Intelligence podemos hacer clic en la esquina superior derecha en “Administrar datos”.
Luego vemos nuestras canalizaciones de datos de proceso. En el lado izquierdo, haga clic en «Conexiones».
Aquí creamos una 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.
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í:
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.
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».
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.
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.
En el siguiente paso, creé un modificador de contenido y configuré el encabezado del mensaje «Aceptar» en «aplicación/json».
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.
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!
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.
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
También puede ver que configuramos ProjectID como nuestra clave principal con este indicador:
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