Rastrear autorizaciones en vistas ABAP CDS

Rastrear autorizaciones en vistas ABAP CDS

En ocasiones deseamos conocer los objetos de autorización que tienen asignadas nuestras vistas CDS. Este dato se vuelve relevante cuando ejecutamos una vista que no devuelve datos y tampoco nos muestra algún mensaje que nos comunique que no podemos visualizar la información por falta de autorizaciones sobre la vista. Por lo tanto, necesitaremos rastrear las autorizaciones del CDS.

Tenemos la siguiente vista básica que obtiene datos de la tabla “scarr”.

DDL:

Esta vista tiene asociado un control de acceso que hace uso del objeto de autorización “s_carrid” el cual filtra por el campo “carrid” y por la actividad “03” que pertenece a la visualización de los datos.

DCL:

Desde la transacción SU21 podemos consultar los objetos de autorización.

Si ejecutamos la vista nos damos cuenta de que se devuelven los datos de acuerdo a los filtros que tenemos asignados en el control de acceso.

Creamos una nueva clase de autorización “ZTS”.

Ahora creamos el objeto de autorización llamado “ZS_CARRID”.

Informamos los campos de autorización e indicamos las actividades permitidas.

Ejecutamos la transacción “SU56” para obtener los roles y perfiles que el usuario posee en ese momento, notamos que tiene asignado el objeto de autorización “S_CARRID” pero no tiene el “ZS_CARRID” que hemos creado en el paso anterior.

Modificamos el DCL con el objeto de autorización “ZS_CARRID”, el usuario al no tener asociado este objeto de autorización, la consulta a la vista no debería devolver datos.

Realizamos la ejecución de la vista y efectivamente no muestra datos.

Rastreo por ST01 (Authorization Trace)

Nos dirigimos a la transacción ST01 y activamos el “Authorization Check”.

Ejecutamos nuevamente la vista CDS y observamos que no obtenemos datos, detenemos el “Trace” y analizamos los resultados.

Observamos el error de autorización, si hacemos doble clic en el registro podemos obtener detalles del error de autorización.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *