✒️ABAP Los chequeos de autorización
ABAP Los chequeos de autorización
Los authority checks son objetos de SAP que nos permiten proteger los datos críticos del sistema de los accesos sin autorización. la sentencia Authority check valida si el usuario tiene autorización para acceder a los datos. Estos permisos son asignados por el administrador del sistema SAP.
Para ello nos ubicamos en la transacción SU21 que es la que nos permite administrar los objetos de autorización. Los objetos de autorización se encuentran agrupados por clases para crear una clase basta con presionar el botón derecho del mouse y seleccionar la opción "create object class" luego de creada la clase presionando el botón derecho del mouse y seleccionando la opción "create Authorization Object" creamos el objeto de autorización. Veamos la clase estándar BC_C y particularmente el objeto S_CARRID aquí vemos la configuración del objeto de autorización tiene asignado el campo CARRID que es el código de la línea aérea y el campo de actividad que nos permite identificar la acción a realizar si clicquemos en las actividades permitidas vemos que esta permitido crear, cambiar y visualizar los datos. Ahora veamos el Authorization fields CARRID (Environment/Authoriz firlds #) que forma parte del objeto de autorización S_CARRID. Para ello en la transacción SU20 vamos a buscar el campo CARRID (Utilities/find/CARRID) seleccionamos y visualizamos el campo y vemos que pertenece a la ayuda de búsqueda (Or DTEL Search Help ) S_CARRIER_ID si ejecutamos el Authorization field (ejecutamos la ayuda de búsqueda) no encontraremos valores debido a que la ayuda de búsqueda se alimenta de la tabla SCARD que no tiene datos cargados.
Ahora vamos a hacer una referencia de utilización para hallar el programa de prueba en donde se utiliza el objeto de autorización S-CARRID (en S_CARRID damos clic en la hoja de la izquierda luego clic en referencia de utilización (botón de un cuadrito con tres flechas a la derecha, en la siguiente pantalla ponemos ejecutar (paloma verde)).
Este programa tiene una pantalla de selección donde se ingresa un código de compañía aérea luego se valida si el usuario que ejecuta tiene autorización para visualizar los datos de esta compañía aérea, en caso negativo se emite un mensaje de error y se termina el procesamiento en caso positivo se permite el acceso a los datos. Vamos a poner un break point en ATHORITY-CHECK OBJECT y ejecutamos el programa, aquí ingresamos un código cualquiera de compañía aérea (AAA) y ejecutamos ejecutamos la sentencia ATHORITY-CHECK y vemos que el SY-SUBRC es cero por lo que indica que tenemos permiso de visualización de los datos, si ejecutamos de nuevo el programa y cambiamos por debugger el valor de SY-SUBRC para simular no tener autorización visualizamos en pantalla el mensaje de error que se produce por no tener autorización al dato.
Existen tres módulos de funciones que nos permiten ejecutar una transacción saltando los chequeos de autorizaciones que posee la transacción, estos módulos de funciones son los siguientes:
- Las llamadas a la función TRANSACTION_CALL_VIA_RFC pasándola en el parámetro TCODE la transacción ejecutada
- El otro módulo de funciones es la llamada a la función C160_TRANSACTION_CALL pasándole en el parámetro I_TCODE la transacción ejecutada.
- La llamada a la función RS_HDSYI_CALL_TC_VARIANT con TCODE igual a la transacción ejecutada y además hay que desmarcar el flag de Authority check
 
 
 
Sobre el autor
Publicación académica de Felipe Estepa Quintero, en su ámbito de estudios para la Carrera Consultor ABAP.
Felipe Estepa Quintero
Profesión: Tecnologo en Gestion Logistica - Colombia - Legajo: QH16V
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Felipe Estepa