martes, 7 de julio de 2015

Como "burlar" la falta de autorización a una transacción SAP

A veces nos podemos encontrar con la necesidad de ejecutar una transacción a la que no tenemos permisos. Si eres un usuario de negocio, lamentablemente, deberás pedir acceso a quien corresponda dentro de tu compañía y si tienes suerte puede que consigas los permisos necesarios.

Si estamos hablando de usuarios desarrolladores seguramente tengamos privilegios para utilizar nuestro querido "/h"  y haciendo debugging lleguemos a conseguir ejecutar la transacción que necesitamos. Evidentemente, si somo puristas, lo correcto sería solicitar acceso de manera formal.

Lo que os quiero enseñar en este post es otra alternativa, el modulo de funciones ALINK_CALL_TRANSACTION. 

Imaginemos que queremos acceder a la transacción IW31 y nos encontramos con que no tenemos autorización para acceder.


Ejecutaríamos la transacción SE37 e introduciríamos el modulo de funciones ALINK_CALL_TRANSACTION. Tras esto ejecutamos.


Como parámetro de entrama introducimos el código de la transacción a la que no tenemos acceso. Ejecutamos en modo Debugging.


Para conseguir la autorización para ejecutar la transacción no tenemos mas que modificar el valor de la variable sy-subrc tras la ejecución del modulo de funciones AUTHORITY_CHECK_TCODE


Finalizamos la ejecución del modulo de funciones y veremos como podemos acceder a la transacción deseada.

Por ultimo remarcar que el uso de esta opción debe realizarse con cuidado. Es responsabilidad de quien lo ejecuta las posibles consecuencias que puede tener. Siempre lo mas correcto es solicitar de manera formal que nos concedan el acceso.