
PFCGMASSVAL en SAP: lo que realmente aporta (y lo que no)
22 de enero de 2026
S_SPO_DEV en SAP: qué es, riesgos de seguridad y buenas prácticas de control
19 de febrero de 2026Buenas prácticas en ABAP: cómo controlar autorizaciones con AUTHORITY-CHECK antes de CALL TRANSACTION
Escrito por
León Barreto Herrera
Jefe de programación · Febrero 2026
El uso de CALL TRANSACTION es habitual en desarrollos ABAP cuando se requiere ejecutar una transacción desde un programa Z, ya sea de forma visible para el usuario (MODE 'E'/'A') o en background (MODE 'N'). Sin embargo, es frecuente encontrar implementaciones donde esta llamada se realiza sin validar previamente las autorizaciones del usuario. Esto puede generar riesgos de seguridad, errores innecesarios y comportamientos no deseados.
En este artículo se presenta una buena práctica fundamental al trabajar con CALL TRANSACTION: validar explícitamente las autorizaciones del usuario mediante AUTHORITY-CHECK antes de realizar la llamada.
Problema habitual
Omitir la verificación previa de autorizaciones puede provocar que un usuario:
Ejecute transacciones para las que no tiene permisos asignados.
Genere riesgos de seguridad o inconsistencias funcionales.
Provoque errores de autorización o incluso dumps.
Visualice pantallas que no corresponden a su rol o que interrumpan el flujo del proceso.
En entornos productivos, este tipo de situaciones puede tener un impacto significativo, especialmente en operaciones sensibles (por ejemplo, modificaciones de datos maestros o documentos comerciales).
Buena práctica: incluir AUTHORITY-CHECK antes de CALL TRANSACTION
Para evitar estos escenarios, es recomendable realizar un control explícito de autorización.
El siguiente ejemplo muestra cómo validar si el usuario tiene permisos para ejecutar la transacción VA02 (modificación de pedidos de venta):
Este enfoque permite:
- Controlar el comportamiento directamente desde el código.
- Evitar interrupciones innecesarias.
- Mejorar la trazabilidad y el manejo de errores.
- Facilitar el mantenimiento y auditoría.
Alternativa complementaria: configuración mediante SE97
La transacción SE97 permite ajustar el manejo de autorizaciones en llamadas indirectas a transacciones, como las realizadas mediante CALL TRANSACTION o SET PARAMETER ID + CALL TRANSACTION.
Desde SE97 es posible indicar si el sistema debe ejecutar automáticamente el AUTHORITY-CHECK para cada transacción llamada de forma indirecta.
Sin embargo, esta opción no sustituye el control programático. La configuración puede variar entre entornos o quedar obsoleta si se transportan objetos, especialmente en el caso de transacciones Z no registradas adecuadamente.
Por ello, SE97 debe considerarse un complemento, no un reemplazo de la validación en código.
Recomendaciones finales
Para garantizar un comportamiento seguro y trazable:
Implementa AUTHORITY-CHECK en el código antes de cada CALL TRANSACTION.
Ajusta la configuración en SE97 para mantener coherencia entre transacciones estándar y personalizadas.
Malesuada famesDocumenta las dependencias de seguridad en la especificación técnica.
Revisa las necesidades con el equipo de seguridad SAP para asegurar una asignación óptima y controlada de permisos.
Conclusión
Un buen desarrollador ABAP no solo garantiza la funcionalidad, sino que también vela por la seguridad, mantención y auditabilidad del sistema. Validar autorizaciones antes de ejecutar transacciones es una práctica sencilla, pero clave para mejorar la robustez de los desarrollos y prevenir incidentes en productivo.
Haz tu código más seguro y profesional: controla las autorizaciones de manera explícita.




