on 12-23-2009 9:11 PM
Estimados
deseo bloquear que algunos usuarios hagan SN de tipo Cliente y Proveedor, no así con Lead, estos últimos sería los únicos que puedan crear.
He quitado la autorización total en tipo de socios Cliente y Proveedores, sin embargo, el usuario sigue creando SN de este tipo.
¿Hay alguna forma de bloquear esta creación de SN y que solo puede hacer Leads?
Gracias por colaboració
Hola chicos
He aplicado las dos opciones que me enviaron, sin embargo, no se si estoy haciendo algo mal porque he aplicado el código en el Transaction Notification y a pesar de ello los usuarios siguen haciendo SN de tipo cliente y proveedor.
Lo que he notado es que consultar estos tipos de SN no pueden.
Debo aplicar algo adicional que estoy olvidando?
gracias
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola....
Efectivamente, volviendo a leer el post original, veo que el requerimiento es que no se puedan crear Clientes y Proveedores. Malentendí el objetivo.....
El codigo sería...
IF (@object_type = '2') and (@transaction_type='U' or @transaction_type='A')
begin
declare @tipsn char
declare @user int
set @tipsn = (select T0.CardType from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
if (@tipsn = 'C' or @tipsn = 'S' and @user = '2')
begin
SET @error = 1
SET @error_message = 'Solo puede crear leads'
end
end
, donde 'C' corresponde a Cliente (Customer) y 'S' corresponde a Proveedor (Supplier)
y en lugar de @user = '2', puedes definir......@user = 'X' or @user = 'Y' or @user = 'Z'...
y X, Y y Z serían reemplazados por los usuarios que corresponda (código de usuario correspondiente a un número, el manager por ejemplo, es el '1')
Espero te sea de ayuda
Saludos Cordiales,
Hola....
Efectivamente, volviendo a leer el post original, veo que el requerimiento es que no se puedan crear Clientes y Proveedores. Malentendí el objetivo.....
El codigo sería...
IF (@object_type = '2') and (@transaction_type='U' or @transaction_type='A')
begin
declare @tipsn char
declare @user int
set @tipsn = (select T0.CardType from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
if (@tipsn = 'C' or @tipsn = 'S' and @user = '2')
begin
SET @error = 1
SET @error_message = 'Solo puede crear leads'
end
end
, donde 'C' corresponde a Cliente (Customer) y 'S' corresponde a Proveedor (Supplier)
y en lugar de @user = '2', puedes definir......@user = 'X' or @user = 'Y' or @user = 'Z'...
y X, Y y Z serían reemplazados por los usuarios que corresponda (código de usuario correspondiente a un número, el manager por ejemplo, es el '1')
Espero te sea de ayuda
Saludos Cordiales,
HOla acabo de probar este codigo
if @Object_type = '2 'and @transaction_type='A'
begin
declare @usuario as nvarchar (8)
set @usuario=(select b.user_code
from ocrd a join ousr b on a.usersign=b.userid where a.cardtype in ('S','C') and a.cardcode=@list_of_cols_val_tab_del)
if (@usuario in ('sistemas'))
begin
set @error=3
set @error_message= ('El usuario "' + (select @usuario) + '" solo puede crear Leads')
end
end
funciona como requieres y el mensaje que muestra es
"El usuario sistemas solo puede crear leads"
Cambia el usuario 'sistemas' por los que quieras restringir
Estimado Paul
aplique el código, sin embargo, al hacer un Lead me ha dado el mensaje "Solo puede crear Leads" sin permitirme grabarlo
esperaba que me bloqueara la creación de Clientes y Proveedores, no así Leads, pero el resultado es que me bloquea los tres tipos
gracias por tu ayuda
Saludos Cordiales
Hola...
Eso si que esta extraño, pues como verás en el último código que te envié se explica cuales son las variables sobre las que se aplica la validación (Clientes o Proveedores).
Tal vez, pueda ser que tengas algun otro código dentro del SQL que esté validando aún al LEAD. Si es el caso, omite el código con comentarios /* */ , o en su defecto borralo del Transaction SQL.
Creo que con eso, no deberías tener problemas en que funcione correctamente
Saludos Cordiales,
Hola...
Eso si que esta extraño, pues como verás en el último código que te envié se explica cuales son las variables sobre las que se aplica la validación (Clientes o Proveedores).
Tal vez, pueda ser que tengas algun otro código dentro del SQL que esté validando aún al LEAD. Si es el caso, omite el código con comentarios /* */ , o en su defecto borralo del Transaction SQL.
Creo que con eso, no deberías tener problemas en que funcione correctamente
Saludos Cordiales,
el código utilizado
revisaré si hubiera algo adicional
IF (@object_type = '2') and (@transaction_type='U' or @transaction_type='A')
begin
declare @tipsn char
declare @user int
set @tipsn = (select T0.CardType from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
if (@tipsn = 'C' or @tipsn = 'S' and @user = '5' or @user = '30' or @user = '31' )
begin
SET @error = 1
SET @error_message = 'Solo puede crear leads'
end
end
Modifica tus condiciones a esto a ver que tal
IF (@object_type = '2') and (@transaction_type='U' or @transaction_type='A')
begin
declare @tipsn char
declare @user int
set @tipsn = (select T0.CardType from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
if @tipsn in( 'C' , 'S') and @user in ( '5','30','31' )
begin
SET @error = 1
SET @error_message = 'Solo puede crear leads'
end
end
Modifica tus condiciones a esto a ver que tal
IF (@object_type = '2') and (@transaction_type='U' or @transaction_type='A')
begin
declare @tipsn char
declare @user int
set @tipsn = (select T0.CardType from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
if @tipsn in( 'C' , 'S') and @user in ( '5','30','31' )
begin
SET @error = 1
SET @error_message = 'Solo puede crear leads'
end
end
YO ESTOY UTILIZANDO EL CODIGO QUE POSTEASTE, PERO MODIFICADO DE LA SIG. MANERA:
IF (@object_type = '2') and (@transaction_type='U' or @transaction_type='A')
begin
declare @user int
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
if @user in ( '1' )
begin
SET @error = 1
SET @error_message = 'USUARIO NO TIENE PERMISO DE REALIZAR ESTA ACCION'
end
end
PERO NO ME FUNCIONA, LO QUE NECESITO ES QUE ME DE EL NO. DE USUARIO QUE ESTA HACIENDO LA ACTUALIZACION O CREACION DE UN NUEVO SOCIO DE NEGOCIOS, Y LO QUE GUARDA EN @user
YO ESTOY UTILIZANDO EL CODIGO QUE POSTEASTE PARA IMPEDIR QUE MODIFIQUEN LOS DATOS DE SOCIOS DE NEGOCIOS LOS USUARIOS QUE SE ENCUENTREN EN EL IF DE @USER, TU SCRIPT LO MODIFIQUE DE LA SIG. MANERA:
IF (@object_type = '2') and (@transaction_type='U')
begin
declare @user int
-- LA SIG. LINEA ME GUARDA EN @user EL USERSIGN QUE YA TIENE EL SN A MODIFICAR
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
-- EL ERROR ESTA EN EL SIG. IF, YA QUE COMPARA EL USERSIGN QUE TIENE EL SN CON LOS QUE SE ENCUENTRAN DENTRO DEL PARENTESIS, POR DECIR SI EL SN CON CARDCODE=20 TIENE YA ASIGNADO EL USERSIGN='7', ESE ES EL VALOR QUE SE GUARDA EN @USER, CUANDO DEBERIA GUARDAR EL USUARIO QUE ESTA INTENTANDO CREAR ESTA MODIFICACION.
if @user in ( '1' )
begin
SET @error = 1
SET @error_message = 'USUARIO NO TIENE PERMISO DE REALIZAR ESTA ACCION'
end
end
PERO NO ME FUNCIONA, LO QUE NECESITO ES QUE ME DE EL NO. DE USUARIO QUE ESTA HACIENDO LA ACTUALIZACION O CREACION DE UN NUEVO SOCIO DE NEGOCIOS, Y LO QUE GUARDA EN @user ES EL usersign QUE SE ENCUENTRA ACTUALMENTE EN EL SOCIO DE NEGOCIOS DONDE QUEREMOS MODIFICAR.
que no con las autorizaciones pueden dejar autorizacion total para cliente y proveedor sin autorización para que lead solo quede acceso.
dentro de la gesion en las autorizaciones. no veo por que complicarse con un TN si tienes las autorizaciones, a lo mejor entendí algo mal a tu post.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gracias a ambos, Paul y Mauricio
efectivamente han funcionado sus aportes.
Estaba dejando el tipo de dato del usuario a un lado y ese era el error.
Saludos cordiales
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola...
Podrías hacerlo a través de una validación por Transaction Notification en SQL.
Sería más o menos así..
IF (@object_type = '2') and (@transaction_type='U' or @transaction_type='A')
begin
declare @tipsn char
declare @user int
set @tipsn = (select T0.CardType from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
set @user = (select T0.UserSign from OCRD T0 where T0.CardCode = @list_of_cols_val_tab_del)
if @tipsn <> 'L' and @user = '2'
begin
SET @error = 1
SET @error_message = 'Solo puede crear leads'
end
end
Obviamente, puedes modificar respecto de los usuarios sobre los que deseas que se aplique la validación..
Saludos Cordiales,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Podrias ingresar este codigo en tu transactionNotification
if @Object_type = '2 'and @transaction_type='A'
begin
declare @usuario as nvarchar (8)
set @usuario=(select b.user_code
from ocrd a join ousr b on a.usersign=b.userid where a.cardtype in ('S','C') and a.cardcode=@list_of_cols_val_tab_del)
if (@usuario in ('usuariodeSAP'))
begin
set @error=3
set @error_message= ('El usuario "' + (select @usuario) + '" solo puede crear Leads')
end
end
Espero te sirva
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
91 | |
8 | |
7 | |
4 | |
4 | |
3 | |
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.