Herramientas de usuario

Herramientas del sitio


usu:edicion:proteger_un_campo

Protección de campo

Es posible proteger un campo para que uno o varios usuarios no puedan cambiar su contenido.

La protección se aplica tanto en las fichas donde aparece el campo, como en las rejillas.

Proteger un campo:

  1. Situarse en el campo a proteger.
  2. Seleccionar Edición/Protección de campo. Se abre una rejilla donde podemos meter los datos relevantes.
Campo Descripción
Usuario Poner el código del usuario para el que se quiere proteger el campo. También se puede poner el usuario PUBLIC que afecta a todos los usuarios que no tengan un registro para si mismo (ver abajo).
Escritura Poner 'N' para impedir los cambios sobre el campo.
Lectura Sin usar.
Condición Este campo se puede editar con F6, terminando la edición con la tecla Intro. Aquí se puede poner una condición que tiene que cumplir el registro actual para que esté activo la protección. Se explica más detallado abajo.

El usuario PUBLIC

Con el usuario PUBLIC se puede denegar la escritura de un campo a todos los usuarios. Luego se puede definir por separado los usuarios que sí deberían poder modificar el campo. El ejemplo a continuación prohibe la escritura de un campo a todos los usuarios menos a SMART.

Usuario Escritura Lectura Condición
PUBLIC N N
SMART N S

Condiciones

En algunos casos, es necesario poner una condición para refinar los registros a los que el usuario no debería tener acceso.

Un ejemplo son todos los campos de las fichas basadas en la tabla de los terceros, por ejemplo clientes, proveedores, bancos, empleados.
Si queremos proteger el campo Forma de pago solo para los proveedores, tenemos que poner lo siguiente en el campo Condición:

TIPO = 'PR'

Otras condiciones permitidas son

TIPO in ('CL', 'PR')
TIPO = 'CL' or TIPO = 'PR'

Cambio masivo (obsoleto)

Para hacer un cambio masivo para proteger un campo para varios usuarios de golpe, se puede adaptar la siguiente instrucción y ejecutarla en la base de datos. Esto siempre se debería hacer como usuario SYSDBA y después de hablarlo con el servicio técnico de Smart.

insert into Z_CAMPOS_PROTEGIDOS (NOMBRE_TABLA, NOMBRE_CAMPO, USUARIO, LECTURA, ESCRITURA, CONDICION)
select 'TERCERO', 'COD_FORMA_PAGO', a.CODIGO, 'N', 'N', 'TIPO = ''PR'''
from USUARIO a
left join Z_CAMPOS_PROTEGIDOS b on a.CODIGO = b.USUARIO and b.NOMBRE_TABLA = 'TERCERO' and b.NOMBRE_CAMPO = 'COD_FORMA_PAGO'
where b.NOMBRE_TABLA is null
and a.CODIGO not in ('SYSDBA', 'Poner aquí los códigos de usuarios que deben de tener acceso');
usu/edicion/proteger_un_campo.txt · Última modificación: 2016/06/17 17:26 por stefan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki