Control TRX con roles

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • mmandrille
    Junior Member
    • nov
    • 3

    #1

    Control TRX con roles

    Estimados,

    Estoy con un problema especifico y agradecería su respuesta, he realizado muchos desarrollos pero nunca me han pedido utilizar controles de seguridad especificos.

    En este caso me piden que agregue control en base a un conjunto de roles como ser:
    ZR:FS:X:PORTAL:PE:01 Portal: Auservicios del Empleado
    ZR:FS:X:PORTAL:PE:02 Portal: Aplicaciones WebDynpros Portal Autoservicios
    ZR:FS:X:PORTAL:PE:03 Portal: Autoservicios del Empleado

    Existe alguna forma de configurar que para ingresar a la TRX deba poseer un listado de roles de manera sencilla?
    Con esto me refiero a atacar directamente los roles y no usar authority checks para las tareas que quiera realizar luego
    Desde ya muchas gracias por su tiempo!
    Editado por última vez por mmandrille; 03/11/2014, 17:53:42. Razón: Lo logre solucionar
  • mmandrille
    Junior Member
    • nov
    • 3

    #2
    Estimados, he encontrado una solucion, no tan STANDARD como esperaba pero util.

    Lo que he realizado es crear una tabla que contenga los roles necesarios para el programa (Tambien se podria hacer una tabla general que ademas del campo ROL, tenga el de TRX y con una simple modificacion seria mas reutilizable).
    Lo he realizado sin FieldSymbols y sin optimizar pues para mi caso, solo requiere unos 5 roles por cada intento de acceso, es absolutamente indiferente al desempeño.

    Luego genere esta rutina:

    Código:
    Form control_roles.
      data: lt_roles_asignados type STANDARD TABLE OF ZPETMRS_009_ROL,
            lt_roles_requeridos type STANDARD TABLE OF ZPETMRS_009_ROL,
            ls_roles_requeridos like line of lt_roles_requeridos.
      "Obtenemos todos los roles que requiere la trx
      select mandt AGR_NAME
        into CORRESPONDING FIELDS OF TABLE lt_roles_requeridos
        from ZPETMRS_009_ROL.
      "Controlamos uno por uno que los roles esten asignados a este usuario
      "Obtenemos todos los roles asignados a este usuario
      select agr_name
        into CORRESPONDING FIELDS OF TABLE lt_roles_asignados
        from AGR_USERS
        where uname eq sy-uname.
      "Recorremos los roles requeridos para ver si los tiene
      loop at lt_roles_requeridos into ls_roles_requeridos.
        read table lt_roles_asignados TRANSPORTING NO FIELDS WITH KEY agr_name = ls_roles_requeridos-agr_name.
        if sy-subrc is not initial.
           MESSAGE e398(00) with 'El usuario' sy-uname 'No posee el rol:' ls_roles_requeridos-agr_name.
        endif.
      endloop.
    endform.
    Espero pueda llegar a servirles si se le presta un problema similar.

    Comentario

    • sconoredhot
      Senior Member
      • feb
      • 341

      #3
      hola

      perfecto, gracias!
      Sebas

      Desarrollador ABAP.

      Comentario

      Trabajando...