Bloqueo de campo usuario por TN

Hola amigos una molestia tengo que bloquear un campo de usuario que cuando el campo este vació o tenga el valor 5 no se pueda crear el documento pero he realizado de varias formas y no he logrado hacer que me bloquee la creación del documento, cuando realizo la prueba me bloquea cualquier valor, adjunto el código que he creado para que me indiquen cual es mi error

IF @object_type = '24' AND @transaction_type IN ('A')
BEGIN 
IF EXISTS (SELECT COUNT(1)  FROM RCT2 WHERE DocEntry = @list_of_cols_val_tab_del AND ISNULL(U_tcobro,'')='' )
BEGIN 
SET @error = 70011
SET @error_message = 'Favor de colocar el tipo de cobro correcto'
END
END

este es otro que probé pero no me funciono tampoco

IF @object_type = '24' AND @transaction_type IN ('A')
DECLARE @TCOBRO NVARCHAR(2)
BEGIN 
SET @TCOBRO = (SELECT COUNT(1)  FROM RCT2 WHERE DocEntry = @list_of_cols_val_tab_del AND ISNULL(U_tcobro,'')=''  AND U_tcobro = 5 )
IF @TCOBRO = 1
BEGIN 
SET @error = 70011
SET @error_message = 'Favor de colocar el tipo de cobro correcto'
END
END

Agradesco su tiempo
Saludos

Prueba con el siguiente query, que lamentablemente no tengo un ambiente con que probarlo ya que yo uso HANA, pero te corregí un par de cosas que creo que te van a dejar mas orientado:

IF @object_type = '24' AND @transaction_type IN ('A') THEN DocEntry = @list_of_cols_val_tab_del
DECLARE @TCOBRO INT
BEGIN 
SET @TCOBRO = (SELECT COUNT(*) FROM RCT2 WHERE U_tcobro = '' OR U_tcobro IS NULL OR U_tcobro = '5')
IF @TCOBRO > 0
BEGIN 
SET @error = 70011
SET @error_message = 'Favor de colocar el tipo de cobro correcto'
END
END

Prueba y me cuentas si te da un error.

2 Me gusta

Hola @Sergio3098 te agradezco el tiempo y tu ayuda, te comento que si me bloquea cuando el campo esta vacío o tiene el tipo de cobro 5 mas cuando lo cambio a 1 me sigue realizando el bloqueo para crear el pago recibido.

Alguna otra forma de realizarlo.

Agradezco cualquier ayuda.
Saludos

Hola creo que les falto agregar, que valide el documento que tienes y no todos los documentos que hay para ello.

IF @object_type = '24' AND @transaction_type IN ('A') THEN DocEntry = @list_of_cols_val_tab_del
DECLARE @TCOBRO INT
BEGIN 
SET @TCOBRO = (SELECT COUNT(*) FROM RCT2 WHERE U_tcobro = '' OR U_tcobro IS NULL OR U_tcobro = '5' and DocEntry =  @list_of_cols_val_tab_del)
IF @TCOBRO > 0
BEGIN 
SET @error = 70011
SET @error_message = 'Favor de colocar el tipo de cobro correcto'
END
1 me gusta

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.