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.
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.
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
* 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.