Ayuda SP_TransactionNotification Bloquear campo

Hola Compañeros, aquí solicitando nuevamente de su ayuda, ahora soy nueva en esto de SP_TransactionNotification estoy realizando una notificación donde el campo Dirección de Destino del documento de factura cliente si esta vacio no deje avanzar estoy utilizando este código pero no lo ejecuta, que estaré haciendo mal?? :thinking:

--Factura clientes 
IF (@object_type='13') AND (@transaction_type IN ('A','U'))
BEGIN
	declare @direccion as nvarchar (100)
	Select @direccion = '-1000'

	IF @direccion=ISNULL (ShipToCode,'-1000') from OINV where DocEntry=@list_of_cols_val_tab_del

	if @direccion = '-1000'
	BEGIN
	SET @error = 0001
	SET @error_message = 'error errrorrr'

end
end

También utilice este

--Factura Clientes
IF (@object_type='13') AND (@transaction_type IN ('A','U'))
BEGIN
IF (Select Address2 FROM OINV DocEntry=@list_of_cols_val_tab_del) IS Null
BEGIN
	SET @error = 1
	SET @error_message = 'Error'
END
END

Alguna idea, Muchas Gracias :upside_down_face:

Saludos!! :raised_hand_with_fingers_splayed:

Al primer Query cambialo un poco . por el siguiente:

No recuerdo si antes del “@direccion = Select…” debes colocar un SET @dirección = …"

1 me gusta

Hola @LilianaN yo lo hago mas o menos así

declare @direccionDestino nvarchar (100)

if @object_type=‘13’ and @transaction_type IN (‘A’,‘U’)
begin
select @direccionDestino = ShipToCode
from OINV
where DocEntry=@list_of_cols_val_tab_del
if (@direccionDestino is null)
begin
select @error = -12312321
select @error_message = 'Error - Favor de indicar la dirección destino’
end
end

1 me gusta

como le hacen para que te respete el formato de sql ???

1 me gusta

Muchas gracias @Ares17000 y @pcarrasco las dos consultas me funcionaron.
gracias!!!

Retomo el tema: las consultas me funcionaron muy bien al final quedo asi:

IF (@object_type = '2') and ( @transaction_type IN ('A','U'))
		BEGIN
			declare @cp as nvarchar (100)
			select @cp = '-1001'
			SET @cp = (Select isnull (ZipCode,'-1001') from CRD1 where CardCode=@list_of_cols_val_tab_del)
		if @cp = '-1001'
		Begin
			SET @error = 0002
			Set @error_message = 'Notificación, Falta llenar campo Código Postal'

end
end

pero ahora me sale un error, en algunos socios de negocios,

[Microsoft][SQL Server Native Client 11.0][SQL Server]Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. (CINF)

Saludos!!!

Intenta con el siguiente código

if (@object_type = ‘2’) and ( @transaction_type IN (‘A’,‘U’))
begin
if (select ZipCode from CRD1 where Address= @list_of_cols_val_tab_del) is null
begin
Set @error = -123
Set @error_message = 'Notificación, Falta llenar campo Código Postal’
end
end

1 me gusta

Gracias ya la probé pero marca el mismo error, me gusto mas tu código que el mio utilizare el tuyo.

El problema está en encontrar el campo que sea igual a la variable

@list_of_key_cols_tab_del

ahí está la solución, hago unas pruebas y te comento , va.

Saludos.

1 me gusta

tienen que delimitar la consulta para que les arroje un solo datos, que en este caso seria la direccion default.

2 Me gusta

Muchas gracias, pero como podría delimitar??..

Saludos!!

al Select colocale un TOP 1

Select TOP 1 Isnull (Zipcode…

1 me gusta

Pero que pasará con los CP de las direcciones posteriores a la primera ?? ahí no se cumplirá la validación

1 me gusta

Lo consideré porque ella necesita es que el cliente tenga al menos 1 direccíón de envío, si tiene 2, 3, 4 o N no es lo relevante sino que necesita que tenga al menos 1 donde posea el ZIPCODE.

Lo que puede es agregar para que tome la dirección por defecto siempre (que es la que toma la pantalla de la factura), pero con el TOP 1 valida que tenga al menos 1 zipcode a la cual enviar los datos.

3 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.