on 11-28-2011 5:01 PM
bueno en este caso restringiria todo....te cuento lo que pasa es que a veces se le da autorizacion a algunos usuarios para actualizar datos como el nombre, direccion, telefono,etc, pero lo que realmente necesito es que no modifiquen el limite de credito y limite comprometido.
El sistema trae el log de mensajes de modificacion que no logro entender muy bien como funciona, en que momento queda registrado estas modificaciones?, porque se han encontrado casos donde usuarios no autorizados aparecen actualizando limites de creditos sin tener en autorizaciones permiso sino solo lectura
solo las personas del dpto de contabilidad tienen permisos para crear y actualizar
los vendedores solo lectura y a estos son los que a veces se les activa el permiso para actualizar datos adicionales
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
mira pues inserte el codigo en los transaction y me marcaba un erior cerca de la palabra if, cerre los parentesis pero me siguq marcando un error, lo raro es que me marca el error en otro transaction que si funciona.
Mens 147, Nivel 15, Estado 1, Procedimiento SBO_SP_TransactionNotification, Línea 392
No puede aparecer un agregado en la cláusula WHERE si no es en una subconsulta contenida en una cláusula HAVING o en una lista de selección, y siempre que la columna agregada sea una referencia externa.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
este es el codigo
IF @object_type in ( 2) and @transaction_type in ('U')
BEGIN
declare @user as int
set @user = (select usersign from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 )))
if
(select cardname from ocrd where cardcode=@list_of_cols_val_tab_del )!=(select top 1 cardname from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 ) from acrd where cardcode=@list_of_cols_val_tab_del)) AND @user in (20,21,22)
begin
set @error = 1
set @error_message = 'Acceso denegado para cambio de Razon Social'
end
END
Si, sorry me falto un top 1
intenta asi
IF @object_type in ( 2) and @transaction_type in ('U')
BEGIN
declare @user as int
set @user = (select top 1 (usersign) from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 )))
if
(select cardname from ocrd where cardcode=@list_of_cols_val_tab_del )!=(select top 1 cardname from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 ) from acrd where cardcode=@list_of_cols_val_tab_del)) AND @user in (20,21,22)
begin
set @error = 1
set @error_message = 'Acceso denegado para cambio de Razon Social'
end
END
Lo pusiste mal , te comiste un FROM ACRD
debe ir asi
IF @object_type in ( 2) and @transaction_type in ('U')
BEGIN
declare @user as int
set @user = (select top 1 (usersign) from acrd where cardcode=@list_of_cols_val_tab_del
and loginstanc in (select max (loginstanc-1 )From ACRD where CardCode =@list_of_cols_val_tab_del))
if
(select cardname from ocrd where cardcode=@list_of_cols_val_tab_del )!=(select top 1 cardname from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 )
from acrd where cardcode=@list_of_cols_val_tab_del)) --esta linea te faltaba
AND @user in (20,21,22)
begin
set @error = 1
set @error_message = 'Acceso denegado para cambio de Razon Social'
end
END
a ver asi
IF @object_type in ( 2) and @transaction_type in ('U')
BEGIN
declare @user as int
set @user = (select usersign from ocrd where cardcode=@list_of_cols_val_tab_del)
if
(select cardname from ocrd where cardcode=@list_of_cols_val_tab_del )!=(select top 1 cardname from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 )
from acrd where cardcode=@list_of_cols_val_tab_del)) --esta linea te faltaba
AND @user in (20,21,22)
begin
set @error = 1
set @error_message = 'Acceso denegado para cambio de Razon Social'
end
END
Si eso exactamente es lo que necesito que solamente las personas que tienen autorizacion de crear clientes puedan modificarlos, ningun usuario mas; pero como te decia al hacer pruebas deja que cualquier usuario haga modificaciones sobre el socio de negocios, para este caso ps solamente se esta validando el cardname pero como te digo no me hace el bloqueo....no te pongas bravo jajaja =(
jaja no para nada
entonces creo que con poner esto te sirve
if @object_type in ('13') and @transaction_type in ('A')
BEGIN
if (select usersign from ocrd where cardcode=@list_of_cols_val_tab_del) in (20,21,22)
begin
set @error=1
set @error_message='no puede modificar socio de negocios'
end
END
en el post mencionas este transaction
IF @object_type in ( 2) and @transaction_type in ('U')
BEGIN
if
(select cardname from ocrd where cardcode=@list_of_cols_val_tab_del )!=(select top 1 cardname from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 ) from acrd where cardcode=@list_of_cols_val_tab_del))
begin
set @error = 1
set @error_message = 'Acceso denegado para cambio de Razon Social'
end
END
pero tengo poco conocimiento en transaction...me dices que adicione and usersign in (1,3,4) pero no se donde insertarlo
lo adiono dentro de los select pero me deja crear sean o no sean los usuarios
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Tendria que ir asi (le falta la parte que te comento)
IF @object_type in ( 2) and @transaction_type in ('U')
BEGIN
declare @user as int
set @user = (select usersign from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 )
if
(select cardname from ocrd where cardcode=@list_of_cols_val_tab_del )!=(select top 1 cardname from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 ) from acrd where cardcode=@list_of_cols_val_tab_del)) AND @user in (1,3,5)
begin
set @error = 1
set @error_message = 'Acceso denegado para cambio de Razon Social'
end
END
Esto es para cambio de razon social (cardname)
En ese post viene como incluir el usuario en particular
.... and usersign in (1,3,4) -- suponiendo que esos son los usuarios que quieres bloquear
este numero lo sacas de la tabla ousr
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
103 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.