PDA

Ver la Versión Completa : Objetos de autorizacion


jlholguins
28/01/09, 19:57:21
Hola a todos buenas tardes, les cuento el siguiente caso para ver quien puede ayudarme, he creado una dynpro con unos botones que me sirve como menu para una serie de transacciones que se deben ejecutar por unos usuarios, se han creado unos perfiles a los cuales se les ha dado acceso a al transaccion principal que es la asociada con el menu y a algunas de las transacciones asignadas a cada boton de la dynpro, el incoveniente que se tiene es que a pesar de que a los perfiles creados solo se le han asignado algunas de las transacciones estos tienen acceso a todas si ingresan por la transaccion principal, pero si quieren acceder a una de las transacciones que no tienen permiso desde la linea de comando les aparece el mensaje que no tienen permiso para ejecutar dicha transacción, lo que he podio averiguar es que eso tiene que ver con los objetos de autorizacion, a alguien le ha sucedido algo similar o alguien puede ayudarme a solucionar dicho incoveniente.
Les agradezco cualquier colaboracion que puedan prestarme al respecto.

jlholguins
28/01/09, 20:10:39
este es el codigo del modulo pai de la dynpro.
when 'BACK' or 'CANCEL' or 'EXIT'.
set screen 0.
when 'CRVI'. "Crea Visitas
call transaction 'ZSD046'.
when 'CREM'. "Crea Embudo
call transaction 'ZSD047'.
when 'CRCL'. " Crea clientes potenciales
call transaction 'ZSD043'.
when 'INVI'. "Indicador de Visitas
call transaction 'ZSD039'.
when 'REEM'. "Reporte Embudo de ventas
call transaction 'ZSD048'.
when 'REAG'. " Reporte Agenda de vendedor
call transaction 'ZSD049'.
when 'RERO'. " Reporte de Rodamientos
call transaction 'ZSD050'.
when 'CRTE'. " Crea tipo de embudo
call transaction 'ZSD045'.
when 'CRCI'. " Crea cita sin visita
call transaction 'ZSD052'.
when 'REVI'. " Reporte de visitas realizadas
call transaction 'ZSD051'.
when 'SEVI'.
call transaction 'ZSD053'. "Seguimiento a visitas
when 'RESE'.
call transaction 'ZSD054'. "Reporte seguimiento a visitas

Garces
28/01/09, 21:50:44
Lo que debes hacer antes de hacer el call transaction es ejecutar la sgte función:


CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
TCODE = v_tcod
EXCEPTIONS
OK = 1
NOT_OK = 2
OTHERS = 3.
IF sy-subrc NE 1.
MESSAGE s172(00) WITH v_tcod.
ELSE.
CALL TRANSACTION v_tcod.
ENDIF.


En el código, 'v_tcod' es el código de la transacción y la función te devuelve en la variable 'sy-subrc' el valor '1' si es que el usuario tiene acceso o '2' si no lo tiene ('3' aparece cuando hubo algún error durante la ejecución').

jlholguins
29/01/09, 12:08:08
Miguel muchas gracias por tu colaboración esa era la solucion