En muchos flujos de trabajo de aprobación de la empresa, existe la necesidad de aprobaciones paralelas. Estas aprobaciones a menudo son dinámicas: el número de aprobadores y sus identidades dependen del contexto comercial, lo que hace que sean difíciles de modelar utilizando diseños de flujo de trabajo estático.
Automatización de procesos de compilación de SAPuna solución de bajo código en Plataforma de tecnología empresarial de SAP (SAP BTP), proporciona herramientas para diseñar flujos de trabajo y automatizar procesos comerciales. Sin embargo, la automatización de procesos de compilación de SAP actualmente no es compatible con ramas paralelas verdaderamente dinámicas fuera de la caja.
En esta publicación de blog, lo guiaré a través de una solución de diseño para lograr aprobaciones paralelas dinámicas utilizando un número fijo de ramas correspondientes al número máximo de aprobadores que se pueden esperar en un momento, lógica condicional y entrada estructurada. Esto es particularmente útil cuando el número máximo de aprobadores paralelos se conoce de antemano.
El caso de uso
Supongamos que está construyendo un proceso de aprobación para una solicitud de exención de capital o una solicitud de compra, donde, dependiendo del monto de la solicitud, pueden estar involucrados hasta seis aprobadores. Quieres:
- Aprobaciones que ocurrirán en paralelo
- El número de aprobadores para ser dinámico
- No se debe activar ninguna rama paralela si no hay aprobador en esa posición
- El correo electrónico o la identificación de usuario de cada aprobador se determinará en tiempo de ejecución
Desafíos en la automatización de procesos de construcción de SAP
La automatización de procesos de compilación de SAP actualmente permite pasos paralelos modelando ramas paralelas utilizando el elemento de rama paralela. Sin embargo, hay algunas limitaciones. Uno, la ramificación dinámica no es compatible. No hay un control de bucle incorporado que permita iterarse a través de los usuarios dinámicamente dentro del Visual Workflow Builder. También debe predefinir cuántas ramas paralelas serán posibles.
Descripción general de la solución
Definimos seis ramas paralelas por adelantado en el modelo de proceso. Cada sucursal corresponde a un posible aprobador (por ejemplo, aprobador1, aprobador2 … aprobador6).
Para administrar esto dinámicamente, puede seguir estos pasos:
- Cree seis campos de correo electrónico en el contexto de entrada del proceso (correo electrónico1, correo electrónico2, …, correo electrónico6).
- En cada rama, use un paso de condición para verificar si el campo de correo electrónico correspondiente está poblado.
- Si la condición pasa, la sucursal procede a una tarea de aprobación asignada a ese usuario.
- Si la condición falla, la rama termina inmediatamente (se omite).
Vamos a sumergirnos más en los pasos exactos
Paso 1: Diseñe el contexto de entrada
En este paso, definiremos el contexto de entrada del proceso con seis campos de correo electrónico de aprobador opcional:
{
"approvers": {
"email1": "string",
"email2": "string",
"email3": "string",
"email4": "string",
"email5": "string",
"email6": "string"
}
}
Paso 2: Agregue una rama paralela con seis caminos
En el editor de flujo de trabajo, arrastre el elemento de rama paralela a su proceso. Luego, agregue seis ramas (una para cada aprobador potencial).
Paso 3: Agregue una condición al comienzo de cada rama
En este paso, para cada rama, inserte un paso de condición para verificar si se llena el campo de correo electrónico:
Pseudocode:
Branch 1 – Condition:
${context.approvers.email1} != null && ${context.approvers.email1} !== ""
Branch 2 – Condition:
${context.approvers.email2} != null && ${context.approvers.email2} !== ""
(... and so on until email6).
Paso 4: Agregue un correo electrónico de activación similar a una acción para cada rama válida
A continuación se muestra cómo se vería esto en la automatización de procesos de compilación de SAP.
Paso 5: Espere a que se complete todas las aprobaciones paralelas
Una vez que terminan las ramas paralelas, hay un par de cosas opcionales que puede hacer. Puede agregar respuestas de aprobación, registrar resultados o activar la lógica de escalada si falla alguna aprobación.
Beneficios y limitaciones de este diseño
Esta solución trae alrededor de cinco beneficios clave:
- Admite la ejecución dinámica: el número de aprobadores reales puede variar.
- Es fácil de administrar con control directo basado en la condición.
- Es reutilizable trabajando en diferentes tipos de procesos.
- Es seguro porque previene tareas o errores nulos.
- Es compatible con la automatización de procesos de compilación de SAP mediante el uso solo de componentes estándar de automatización de procesos de compilación SAP.
Sin embargo, hay tres limitaciones a tener en cuenta:
- El número máximo de ramas es fijo.
- Cada rama debe configurarse manualmente.
- No escala bien si el número de aprobadores dinámicos cambia con frecuencia.
Mejoras futuras
En el futuro, podrían implementarse una serie de mejoras. Para comenzar, se podrían permitir que los pasos se instanciaran dinámicamente (ramificación basada en bucle o basada en matrices). Las herramientas de aprobación del proveedor podrían tener una funcionalidad de manejo de aprobación múltiple incorporada. Y se pueden introducir bucles de tareas de script personalizados con características de ASYNC-Await.
Conclusión
Si bien la automatización de procesos de compilación de SAP no admite de manera nativa la ramificación paralela dinámica, con un poco de estructuración inteligente y diseño condicional, aún podemos simular aprobaciones paralelas dinámicas de manera eficiente.
Este enfoque de ejecución dinámica de rama fija ofrece un método escalable y seguro para modelar escenarios de aprobación del mundo real, balanceando entre las capacidades actuales de SAP Process Automation y las necesidades de flujo de trabajo empresarial.
Si está diseñando flujos de trabajo donde el recuento de aprobadores varía por transacción, pero permanece dentro de un rango predecible, este enfoque puede ser una plantilla confiable.
No dude en dejar sus preguntas o compartir su experiencia en los comentarios. Si has enfrentado desafíos de flujo de trabajo similares y los ha resuelto de manera diferente, ¡me encantaría saber de ti!
¡Feliz automatización!
Esta publicación se publicó originalmente en el 7/2025.