jueves, 14 de marzo de 2013

Hacer un campo editable solo para un rol(objetos de autorizacineos, roles)

Necesitamos que un campo de una transaccion sea editable solo para un determinado grupo de usuarios, o sea para un rol. Por lo tanto vamos a tener que crear un objeto de autorización, llamarlo desde nuestro programa y crear un rol con el objeto de autorización y añadir los usuarios que queramos al rol.

Transacciones relacionadas: SU21, SU24, SE38, PFCG.

1 - Lo primero es crear un objeto de autorización para el campo que queremos aplicar el chequeo de usuario. En este caso he usado la clase ya creada ZZZZ, y he creado un nuevo objeto de autorización llamado YFECA.


2 .Creamos el objeto de autorizacion ZYFECA, que es el campo al cual le queremos aplicar el chequeo de usuario.



3. Y en el campo ACTVT, le decimos que tipos de permisos le queremos dar al objeto de autorización.

 



4. Guardamos los cambios.
 
5. Ahora vamos a la transaccion SU24 para relacionar nuestro programa Z a la autorización
que creamos. Indicamos el nombre de nuestra transacción Z y presionamos ejecutar.




Al ejecutar nos saldrá la siguiente pantalla.


Una vez en esta vista de la SU24, puslamos en modificar y la pantalla nos cambiará a la siguiente:


Desde aquí añadimos el objeto de autorizacion creado anteriormente el ZYFECA, y actualizamos los valores propuestos para la autorización del cuadro secundario. Y pulsamos en Grabar

10. Nos queda agregar la autorización en el programa Z. En nuestro caso queremos ver que el
usuario tenga permiso de visualizacion y modificación del campo Fechas de Cancelación, YFECA.

En el PBO de la pantalla metemos el chequeo del campo, si fuera una pantalla con select-options, meteríamos el chequeo en el evento AT-SELECTION-SCREEN.

* INI Modif H.R 14/03/2013
* chequeo para que el campo fecha de cancelación sea editable soblo
* por un grupo de usuario que tienen autorización.
      IF screen-name = 'S_AVAL-YFECA'.
        AUTHORITY-CHECK OBJECT 'ZYFECA'
        ID 'YFECA' FIELD s_aval-yfeca.
        IF sy-subrc IS INITIAL.
          screen-input = '1'.
        ENDIF.
        IF sy-subrc <> 0.
          MESSAGE e001 WITH s_aval-yfeca. "No tiene autorización para la sociedad &.
        ENDIF.
      ENDIF.
* FIN Modif H.R

11. Ahora bien, cuando queramos ejecutar el programa, nos va a dar error ya que nosotros mismos no tenemos autorización para acceder al mismo (salvo que tengamos perfil SAP_ALL). Por lo tanto debemos crearnos un perfil. Vamos a la transacción PFCG, ponemos el nombre de un nuevo rol y ponemos el botón “Nuevo Rol Simple”:



12. Pulsamos en "Crear Rol Simple".




13. Al crear el nuevo rol, debemos incluir una descripción. La agregamos y vamos a la lengüeta
Autorizaciones” y allí presionamos el botón verde que dice proponer perfil: nos va a crear
un nuevo perfil. Presionamos entonces el botón "Modificar datos de autorización".



14. Pulsamos Modificar datos de autorización. Si nos pide seleccionar modelo, le ponemos que no y si nos dice guardar el rol le ponemos que si. Aparecerá la siguiente pantalla, en donde apretaremos en “Agregar manualmente”:


15 . Indicamos el Objeto de autorización y pulsamos OK.

16.Ahora debemos indicar en nuestro perfil que accesos va a tener el mismo sobre el objeto de
autorización.




17 . Vemos que todo el arbol queda en verde. Apretamos el botón de GENERAR y volvemos a la
pantalla anterior, en donde tenemos que ir a la lengüeta de usuarios para agregarnos y agregar al usuario que va a poder modificar la fecha de entrada unicamente.



Agregamos nuestro usuario y presionamos el botón COMPARAR USUARIOS y luego
Ajuste completo” para ajustar los datos y así se actualiza el maestro de usuarios con los
cambios. Finalmente presionamos guardar y volvemos a ejecutar el programa Z.



Finalmente pulsamos sobre el botón de Comparar Usuario. Si no habido problemas nos aparecerá el botón en Verde, lo cual quiere decir que ya está el usuario incluido en el rol.

Para ver los resultados del ejemplo vemos como un campo que antes era no editable según, el estado del documento, ahora la Fecha de Cancelación ya está editable.


No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.