cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta sobre validación en tabla OITB

Former Member
0 Kudos

Buenas a todos,

En esta oportunidad le escribo para solicitarles ayuda con el siguiente caso. En el tabla OITB (Grupos de Artículos) he creado un campo de usuario (llamado Familia) al cual le he asigando una busqueda formateada que permite asignar al campo el valor del máximo+1.

Por ejemplo:

Grupo Accesorios, Familia=100; cuando cree un nuevo grupo el valor del campo Familia debe ser 101.

Necesito hacer una validación que, al crear un nuevo grupo, no permita que el valor del campo sea mayor al máximo+1 que es el que le corresponde. Esto debido a que el usuario, por error, podría cambiar el valor que devuelve la busqueda. De igual forma cuando ocurra esa condición que muestre el mensaje indicando que código debe colocar en ese campo.

Esta es la validación que he planteado: Sabiendo que U_NTXC_ItmsGrpCod es un campo de usuario que hace visible el codigo interno del grupo, U_NTXC_ItmsGrpCodI es el campo Familia el cual deseo validar

Con esta validación detiene la creación de grupo, pero no me permite crearlo aún cuando le asigno el valor correcto al campo U_NTXC_ItmsGrpCodI.

IF (@object_type = '52' AND @transaction_type = 'A')

SET @CONS = (SELECT MAX(T0.U_NTXC_ItmsGrpCodI) FROM OITB T0 WHERE T0.U_NTXC_ItmsGrpCod = @list_of_cols_val_tab_del)

SET @CONS1 = (SELECT MAX(T0.U_NTXC_ItmsGrpCodI)+1 FROM OITB T0 WHERE T0.U_NTXC_ItmsGrpCodI = @CONS)

BEGIN

IF NOT EXISTS (SELECT T0.U_NTXC_ItmsGrpCodI FROM OITB T0 WHERE (@CONS > @CONS1 ) AND T0.U_NTXC_ItmsGrpCodI = @list_of_cols_val_tab_del)

BEGIN

SET @error = -52

SET @error_message = 'El codigo de familia debe ser:' + ' ' + CAST((@CONS) AS VARCHAR)

END

END

Esperando por su gran ayuda,

Muy agardecida de antemano

Saludos,

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola..

Una consulta...., si tu búsqueda formateada trae el dato correcto, no sería necesario validar el que lo puedan cambiar. Bastaría con que ese campo lo manejes como un campo visible pero "no activo"

Esto lo gestionas en Herramientas --> Herramientas Personalización --> Parametrizaciones

Si quieres que los usuarios no puedan entrar a esta pantalla (para que cambien esta opción), entonces puedes además crear una Autorización adicional, esto en Gestión --> Inicialización Sistema --> Autorizaciones --> Creador de Autorización Adicional.

Allí en ID Formulario, colocas el ID 38, que corresponde al formulario de Parametrizaciones

Espero te sea de ayuda

Saludos Cordiales,

Former Member
0 Kudos

Gracias por responder, me es de gran ayuda tu aporte.

Si, la búsqueda formateada trae el valor correcto. Tomaré en cuenta lo que me recomiendas. Sabía lo de Herramientas --> Herramientas Personalización --> Parametrizaciones, pero no sabía como restringir el acceso a estas, así que de nuevo gracias. Con lo que me has sugerido puedo cerrar el caso.

Saludos,

Answers (0)