Estimados, un cordial saludo para todos.
Quiero pedirle alguna ayuda, necesito controlar por TN que solo algunos usuarios puedan crear productos.
He intentado de varias formas, pero no lo he logrado:
IF @object_type = ‘4’ AND @transaction_type = ‘A’
BEGIN
DECLARE @Usuario INT
SELECT @Usuario = UserSign
FROM OITM
WHERE ItemCode = @list_of_cols_val_tab_del
IF @Usuario NOT IN (1, 44, 100, 154, 228)
BEGIN
SET @error = 1001
SET @error_message = 'NO ESTAS AUTORIZADO PARA CREAR PRODUCTOS'
END
END
END
Esta es una de las query que he probado.
si alguien tiene alguna validación que les haya funcionado, favor me pueden guiar o compartir.
1 me gusta
cambiaria esta parte:
SELECT @Usuario = UserSign
FROM OITM
WHERE ItemCode = @list_of_cols_val_tab_del
por esta otra forma:
@Usuario = SELECT UserSign
FROM OITM
WHERE ItemCode = @list_of_cols_val_tab_del
aun que la otra opción es crear un formulario de UI para esos usuarios y eliminarles el botón de crear, aun que no se si con eso también se les borre el de buscar.
prueba la primera observación y avísanos como te va.
1 me gusta
Este funciona:
/*Validacion de Creacion de Articulo*/
If :object_type = '4' AND (:transaction_type ='A')
THEN
SELECT (
SELECT T0."UserSign"
FROM "BDATOS"."OITM" T0
WHERE
T0."ItemCode" = list_of_cols_val_tab_del and
T0."UserSign" NOT IN (10,11)
)
INTO CodArt FROM dummy ;
IF :CodArt IS NOT NULL THEN
error := 1352 ;
error_message :='Error (SP): No Tiene Permisos Para Crear Artículos';
end IF;
end IF;
Saludos.
2 Me gusta
¿Es necesario que sea por TN?
Porque también le pueden quitar el permiso en las autorizaciones generales
1 me gusta
Así es @Cassales , pero al quitarlo ahí tampoco le permitiría actualizar. Entiendo que lo que quieren bloquear es que no los cree, pero que si puedan modificar los ya creados. Bueno así entendí yo… 
Creo que es como dice usted, además es lo que menciona el consultante: bloquear la creación de artículos a través del TN.
Lo comenté porque recordé algo que ha venido enfatizando SidV, el por qué de las cosas, porque de hacerlo así, el TN no impediría la edición, y no tiene porque hacerlo porque así lo pidió el consultante, a menos que se haga una parecida cambiando el transaction_type =‘A’ por un transaction_type =‘U’.
En mis experiencias, la edición era un dolor de cabeza porque el usuario digamos que “sin intención”, al querer buscar algún artículo, en ocasiones editaba los creados. Ahora imagine usted con intención, al ver que no pueden crear sin saber por qué, pero sí pueden editar… ¡cielos!
Un gusto coincidir con usted @gameover
¡Bendiciones!
2 Me gusta
Voy a revisar el cambio en la validación que me propones y te comento.
La idea es aplicar la validación por el TN ya que solo quiero que no creen, pero sí que puedan actualizar.
Por esto descarto las autorizaciones generales y el UI.