Información de referencia en Nota Crédito Cliente

Buenas tardes, necesito crear un transaction donde valide que se agrego información de referencia hacia un documento, estoy utilizando la tabla RIN21 pero esta tabla no tiene ninguna relación con las notas de crédito o alguna otra tabla.

Habrá alguna otra tabla donde pueda revisar esa referencia o pueda validar que tengo alguna factura o documento relacionado?

Al momento de agregar una referencia me permite crear la nota de crédito pero si no la agrego me aparece un error de no data found exception.

[SAP AG][LIBODBCHDB32 DLL][HDBODBC32] General error;1299 no data found: "SALDOS5"."SBO_SP_TRANSACTIONNOTIFICATION": line 295 col 1 (at pos 10990): [1299] (range 3) no data found exception: no data found

Valida que la Nota de Crédito este enlazada a una factura para ser creada o actualizada

IF (:object_type = '14' AND (:transaction_type = 'A' OR :transaction_type ='U')) THEN
--DECLARE FactAsociada int;
DECLARE DocReferencia NVARCHAR(20);
SELECT IFNULL(DocReferencia,'') FROM DUMMY;
SELECT TOP 1 IFNULL("RefObjType",'') INTO DocReferencia FROM RIN21 WHERE "DocEntry"=:list_of_cols_val_tab_del;

	IF (:DocReferencia = '') THEN
		error =1;
		error_message = N'El Documento debe hacer referencia a por lo menos a una factura.';
	END IF;    
	
END IF;

Les agradezco su ayuda!!

1 me gusta

Primero la referencia por la que fue creada la Nota de credito es a nivel detalle, por lo que esto lo encuentras en la tabla RIN1, en los campos que comienzan con Base:


Para este caso solo necesitarias revisar que tu BaseType sea igual a 13 (facturas), claro haces un COUNT(*) y si es cero saltas el error.

Segundo respecto a la referencia manuales y la tabla RIN21, tu consulta usas un “TOP 1”, esto puede estar causando el error, podrias mejor usar COUNT(*) tambien para este caso.

Saludos,

1 me gusta

Hola Willy, gracias por tu respuesta.
Como bien lo mencionas los campos Base hacen referencia a los documentos previos en un proceso sin embargo en este caso no busco esos documentos, mas bien estoy buscando los documentos de referencia que se encuentra en las tabla RIN21 los cuales se pueden agregar en las notas de crédito en la pestaña de finanzas,

logre unir la tabla ORIN con RIN21 mediante la columna DocEntry

IF (:object_type = ‘14’ AND (:transaction_type = ‘A’ OR :transaction_type =‘U’)) THEN
–DECLARE FactAsociada int;
DECLARE DocReferencia2 NVARCHAR(20);
DECLARE DocReferencia int;

SELECT IFNULL(T1.“DocEntry”,0) INTO DocReferencia
FROM ORIN T0 INNER JOIN RIN21 T1 ON T0.“DocEntry”=T1.“DocEntry”
WHERE T1.“DocEntry” =:list_of_cols_val_tab_del

IF (:DocReferencia = 0) THEN
	error =1;
	error_message = N': El Documento debe hacer referencia a por lo menos a una factura.';
END IF;    

END IF;

sin embargo aun me arroja el mismo error aun cuando retire TOP del query

[SAP AG][LIBODBCHDB32 DLL][HDBODBC32] General error;1299 no data found: “SALDOS5”.“SBO_SP_TRANSACTIONNOTIFICATION”: line 295 col 1 (at pos 10990): [1299] (range 3) no data found exception: no data found.

alguna otra idea?

gracias de antemano

Si en vez del ISNULL, usas Count(*):

IF (:object_type = ‘14’ AND (:transaction_type = ‘A’ OR :transaction_type =‘U’)) THEN
–DECLARE FactAsociada int;
DECLARE DocReferencia2 NVARCHAR(20);
DECLARE DocReferencia int;

SELECT Count(*) INTO DocReferencia
FROM ORIN T0 INNER JOIN RIN21 T1 ON T0.“DocEntry”=T1.“DocEntry”
WHERE T1.“DocEntry” =:list_of_cols_val_tab_del

IF (:DocReferencia = 0) THEN
	error =1;
	error_message = N': El Documento debe hacer referencia a por lo menos a una factura.';
END IF;

Saludos,

1 me gusta

Hola Willy,

Cambie el IFNULL por COUNT y ya no me aparece el error

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