
Imaginemos un caso de uso típico: su automatización debe obtener varios archivos de facturas de alguna fuente (carpeta de archivos, Outlook, Gmail, FTP, etc.). La automatización recorrerá su colección de archivos, extraerá datos de esas facturas usando DOX y luego analizará si todo está bien. La automatización puede publicar algunas de las facturas, pero ¿qué sucede si falta la orden de compra, si su autenticación de tres factores encontró problemas, si el nivel de confianza del reconocimiento es bajo para algunos elementos o si necesita una aprobación de varios pasos para un monto total mayor?
Puede haber muchos flujos de trabajo diferentes que deberá activar en función de las diferentes condiciones que se encuentran en sus facturas.
Esta publicación de blog le mostrará cómo hacerlo: llame a SAP Build Process Automation [SBPA] Proceso de negocio (artefacto de flujo de trabajo) de una automatización (artefacto RPA).
Figura 1: Ejemplo de proceso (haga clic para ampliar)
Este fue solo un ejemplo de caso de uso, pero hay muchas situaciones y escenarios más complejos en los que necesitará automatizar algo y, en función de las condiciones detectadas, desencadenar un flujo de trabajo diferente para cada condición.
Figura 2: Ejemplo de automatización (haga clic para ampliar)
Se supone que todos sus procesos se crean y se implementan en SAP Build Process Automation y cada proceso se activa mediante una llamada a la API. (Para saber cómo crear un flujo de trabajo de proceso con disparador de API, marque esto Blog.)
Figura 3: ejemplo de activación de la API del proceso (haga clic para ampliar)
En la mayoría de los casos, su flujo de trabajo será parte del mismo proyecto que su automatización, pero tenga en cuenta que puede llamar a cualquier flujo de trabajo de SBPA que sea parte de otro proyecto o incluso implementado en otro inquilino (siempre que haya necesitado credenciales de seguridad).
Al monitorear parte de la SBPA, verifique los detalles de su API de proceso implementada. Es importante conocer la estructura de carga útil de JSON esperada para este proceso en particular (rectángulo rojo). Es importante conocer los nombres exactos de los campos, así como el tipo de valores (en este ejemplo, 2 entradas de cadena, una numérica y otra booleana). En esta pantalla encontrarás URL y ID de definición valores que necesitaremos más adelante (rectángulo amarillo).
En su proyecto, cree un nuevo tipo de datos personalizado llamado «Contexto». Es importante que los nombres y tipos sean exactamente los mismos que en la definición de API.
Ahora cree un tipo de datos personalizado adicional llamado «Activador de API de WF» que contendrá todos los datos necesarios (específicos del proyecto/inquilino) para ejecutar una llamada de API.
Defina 2 nuevas variables en su proyecto de autómata. Primero es del tipo «Activador de API de WF» y cambia el nombre de la salida a miAPI.
Para los valores de entrada, seleccione datos personalizados y agregue los valores necesarios. Antes de ver dónde encontrar valores para api_url y definición_id. Para encontrar otros valores, deberá ir a su Cockpit BTP y hacer clic en la clave de servicio de su instancia SBPA y copiar los valores de la ventana emergente:
Valores para Identificación del cliente, cliente_secreto y token_url se puede encontrar aquí:
Tenga en cuenta que URL de la clave de servicio DEBE agregarse «/autorización/token” por lo que el valor de token_url debería verse así «https://yourtenant.authentication.eu10.hana.ondemand.com/autorización/token“.
Ahora agregue los valores que desee para la variable de contexto y cámbiele el nombre a miContexto:
Antes de llamar al servicio web, debe preparar el objeto JSON con todos los datos necesarios. Hay un paquete en la Tienda llamado «Mejores prácticas de servicios web». Te animo a que revises esos ejemplos (así como otros paquetes de la tienda porque son geniales para aprender e inspirarte).
Sin embargo, los ejemplos en este paquete no cubren los casos en los que necesita autenticarse usando oAuth 2 (primero necesitamos obtener el token y luego ejecutar la llamada POST con la carga útil), por lo que ahora agregará un script personalizado a su proyecto y definirá 2 entradas (miAPI de tipo de datos personalizado Desencadenador de API de WF y miContexto de tipo Cualquier) y la salida denominada opciones de tipo Cualquier.
Haga clic en «editar script» para agregar código y definir entradas y salidas.
Copie y pegue este código:
async function fetchToken() {
const data_cred="client_id="+myAPI.oAuth.client_id+
"&grant_type=client_credentials"+
"&client_secret="+myAPI.oAuth.client_secret;
const options = {
method: 'POST',
url: myAPI.oAuth.token_url,
body:data_cred,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
resolveBodyOnly:true
};
try {
const response = await irpa_core.request.call(options);
const token = JSON.parse(response);
var at=token.access_token;
return at;
} catch (error) {
irpa_core.core.log(error);
}
}
let token = await fetchToken();
// ------------------------------
let input = {
"definitionId":myAPI.definition_id,
"context":myContext
};
let auth = "Bearer " + token;
let output = {
method: 'POST',
url: myAPI.api_url,
headers: {
'Content-Type': 'application/json',
'Authorization':auth
},
responseType: 'json', // parse the body of the result to get a JSON object
resolveBodyOnly: true, // get only the body of the response
json: input
};
return output;
Ahora solo necesita agregar la acción estándar «Llamar al servicio web» y usar el objeto JSON de salida del script personalizado como entrada para este paso. Defina también el nombre del objeto de salida (en este ejemplo, «api_output»):
Opcionalmente agregue la acción «Registrar mensaje» para mostrar el objeto JSON api_salida en la consola y ejecuta tu automatización.
Tras una ejecución exitosa, puede encontrar que el objeto de respuesta JSON contiene (entre otros datos) la ID de su proceso iniciado:
Si va a la sección de monitoreo de SAP Build Process Automation, puede encontrar que su proceso se está ejecutando:
En mi próxima publicación de blog, le mostraré cómo puede convertir esto fácilmente en una solución genérica que puede agregar en todos sus proyectos en los que necesita llamar a la API de flujo de trabajo desde una automatización.
Para mantenerse al día con todas las cosas nuevas y emocionantes relacionadas con SBPA, consulte:
Disfrute construyendo con SAP Build. 🙂
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