jueves, mayo 14, 2009

Objetos de autorización (AUTHORITY-CHECK OBJECT)

Los objetos de autorización disponibles se encuentran en las transacciones SU20 y SU21. Mediante la primera podremos buscar por campo/elemento de datos los objetos disponibles. Por ejemplo, podemos buscar qué objetos de autorización existen asociados al campo división (GSBER). Al hacer doble clic sobre el resultado de la búsqueda accederemos a la pantalla de "Ámbito de autorización" donde se detalla, en la sección inferior, los objetos de utilización que utilizan el criterio seleccionado. Para el caso del campo División, nos puede ser útil los objetos de autorización que se encuentran en la clase de objeto FI.

La transacción SU21 ofrece más detalle sobre los objetos de autorización. Si quisiéramos conocer la composición del objeto F_BKPF_GSB, el cual se encuentra en la clase FI, deberemos buscar por el nombre del objeto mediante el icono de los prismáticos y hacer doble clic sobre el mismo. El objeto F_BKPF_GSB está compuesto de la siguiente manera:

F_BKPF_GSB

Tras conocer la composición del objeto, podremos hacer uso del mismo del siguiente modo:



Donde p_gsber es el campo que contiene la división sobre la que se quiere comprobar si el usuario tiene permiso. También se puede hacer uso del identificador ACTVT para determinar el tipo de actividad que se quiere comprobar. Las atividades permitidas del objeto se pueden visualizar en la parte inferior de la ventana de descripción del objeto en la transacción SU21.

3 comentarios:

Sal dijo...

Tykall,
¿ Existe una forma obtener todas las actividades autorizadas para un usuario sobre todas las divisiones ? Algo como esto :
AUTHORITY-CHECK OBJECT 'F_BKPF_BSG' FOR USER 'MYSAPUSER' ID 'GSBER' FIELD '*' ID ACTV FIELD '*'

Y obtener un listado como este, con las divisiones y ACTVTs (01-crear, 02-modificar, 03-visualizar, etc.) en cada una :
DIVISION ACTVT
DIV1 01
DIV1 02
DIV1 03
DIV2 01
DIV3 02
DIV4 03
...

Saludos !

tykall dijo...

Hola Sal,

disculpa la demora en contestar, pero últimamente no dispongo de mucho tiempo para mantener al día el blog. Lo cierto es que no estoy familiarizado con el caso en particular que preguntas pero lo que sí podría ayudarte sería grabar una traza SQL mediante la transacción ST05, en un modo paralelo, mientras accedes al perfil de un determinado usuario para así poder ver si se accede a alguna tabla o tablas que te proporcionen esa información... No obstante, habría que averiguar si existiera alguna función estándar que se ajuste a tus necesidades.

Un saludo.

Gerardo dijo...

un comentario 10 años despues