Error en transation notification sap hana

Buen dia a todos, me pueden ayudar tengo atorada una factura, la cual no puedo timbrar ya que el transation notification tiene el codigo de bloqueo, cual se tiene que capturar el proyecto en la partida de la factura, razon por la cual no puedo timbrarla, en la factura no se refleja ese campo de proyecto, y por eso al momento de timbrarla me marca error, “falta campor proyecto en documento”

Este es el codigo del transation, que puedo hacer alguien me puede ayudar?

Gracias.

UPDATE OINV -- FACTURA DE CLIENTES
   		SET U_XAM_IVAP =  IFNULL((SELECT CASE WHEN T1."DocCur" = 'MXP'THEN SUM(T0."TaxSum") ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate" = 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00), 
    		U_XAM_IEPSP = IFNULL((SELECT CASE WHEN T1."DocCur" = 'MXP'THEN SUM(T0."TaxSum") ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate"<> 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00), 
	    	U_XAM_IVAD =  IFNULL((SELECT CASE WHEN T1."DocCur"<> 'MXP'THEN SUM(T0."TaxSumFrgn")ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate" = 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00), 
    		U_XAM_IEPSD = IFNULL((SELECT CASE WHEN T1."DocCur"<> 'MXP'THEN SUM(T0."TaxSumFrgn")ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate"<> 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00)
	WHERE "DocEntry" = :list_of_cols_val_tab_del;	

    IF CC = 'ERR' THEN 
        error := -9000;
        error_message := '@ XAMAI @ FALTA CENTRO DE COSTOS EN UNA LINEA DEL DOCUMENTO, PARA CONTINUAR LLENE EL CAMPO';
    END IF;
        
    IF PY = 'ERR01' THEN 
        error := -9001;
        error_message := '@ XAMAI @ FALTA AGREGAR PROYECTO EN UNA LINEA DEL DOCUMENTO, PARA CONTINUAR LLENE EL CAMPO';
    END IF;

Si es un bloqueo por falta de un dato seria capturarlo para actualizar la factura, tal vez si a nivel detalle no esta, puede que lo este pidiendo dentro del campo que se encuentra en la pestaña finanzas de la factura. Porfa puede validar esto?

1 me gusta

No, ese campo de proyecto SN, aun definiendolo sigue marcando el bloqueo y sigue igual

Seria de mucha ayuda si posteas todo el bloque de codigo del transaction para poder revisar bien y poder darte una pista de donde puede estar tu problema, mas que nada saber cuando la variable PY toma un valor para poder bloquear.

saludos

1 me gusta

IF :object_type = ‘13’ AND :transaction_type = ‘U’ THEN
DECLARE CC NVARCHAR(3);
DECLARE PY NVARCHAR(5);

SELECT CASE WHEN (COUNT(T0."OcrCode")<>COUNT(T0."LineNum")) OR (COUNT(T0."OcrCode")=0 AND COUNT(T0."LineNum")=0)  
			THEN 'ERR' ELSE 'OK' END INTO CC FROM INV1 T0 WHERE T0."DocEntry" = :list_of_cols_val_tab_del;
			
SELECT CASE WHEN (COUNT(T0."Project")<>COUNT(T0."LineNum")) OR (COUNT(T0."Project")=0 AND COUNT(T0."LineNum")=0)  
			THEN 'ERR01' ELSE 'OK' END INTO PY FROM INV1 T0 WHERE T0."DocEntry" = :list_of_cols_val_tab_del;

UPDATE JDT1 T1 
	SET T1."Project" = (SELECT DISTINCT "Project" FROM INV1 WHERE "Project" <> '' AND "DocEntry" = :list_of_cols_val_tab_del),
	 T1."ProfitCode" = (SELECT DISTINCT "OcrCode" FROM INV1 WHERE "OcrCode" <> '' AND "DocEntry" = :list_of_cols_val_tab_del)
WHERE   T1."TransId" = (SELECT "TransId" FROM OINV WHERE "DocEntry" = :list_of_cols_val_tab_del);

UPDATE OINV -- FACTURA DE CLIENTES
	SET U_XAM_IVAP =  IFNULL((SELECT CASE WHEN T1."DocCur" = 'MXP'THEN SUM(T0."TaxSum") ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate" = 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00), 
		U_XAM_IEPSP = IFNULL((SELECT CASE WHEN T1."DocCur" = 'MXP'THEN SUM(T0."TaxSum") ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate"<> 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00), 
    	U_XAM_IVAD =  IFNULL((SELECT CASE WHEN T1."DocCur"<> 'MXP'THEN SUM(T0."TaxSumFrgn")ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate" = 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00), 
		U_XAM_IEPSD = IFNULL((SELECT CASE WHEN T1."DocCur"<> 'MXP'THEN SUM(T0."TaxSumFrgn")ELSE 0 END FROM INV4 T0 INNER JOIN OINV T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."TaxRate"<> 16 AND T0."DocEntry" = :list_of_cols_val_tab_del GROUP BY T1."DocCur"), 0.00)
WHERE "DocEntry" = :list_of_cols_val_tab_del;	

IF CC = 'ERR' THEN 
    error := -9000;
    error_message := '@ XAMAI @ FALTA CENTRO DE COSTOS EN UNA LINEA DEL DOCUMENTO, PARA CONTINUAR LLENE EL CAMPO';
END IF;
    
IF PY = 'ERR01' THEN 
    error := -9001;
    error_message := '@ XAMAI @ FALTA AGREGAR PROYECTO EN UNA LINEA DEL DOCUMENTO, PARA CONTINUAR LLENE EL CAMPO';
END IF;

Como puedes observar en esta linea es donde asignas un valor a esa validacion:

SELECT CASE WHEN (COUNT(T0."Project")<>COUNT(T0."LineNum")) OR (COUNT(T0."Project")=0 AND COUNT(T0."LineNum")=0)  
			THEN 'ERR01' ELSE 'OK' END INTO PY FROM INV1 T0 WHERE T0."DocEntry" = :list_of_cols_val_tab_del;

Y el proyecto que debe tener esta a nivel linea o sea en INV1, revisando el SAP si debes poder verlo:

Valida en parametrizaciones de formulario:

image

Saludos

2 Me gusta

Algo que noto igual y debes tener en cuenta es que este bloqueo sucede cuando estas ACTUALIZANDO.

IF :object_type = ‘13’ AND :transaction_type = ‘U’ THEN
1 me gusta

Como se ve en la imagen de la factura NO APARECE EL CAMPO PROYECTO, ni si quiera en parametrizacion de formularios.

Ese es mi problema

De casualidad no lo tienen ocultado con el editor de UI?

1 me gusta

Ni al caso, no esta oculto.

Hijoles, pues si es muy raro. Ya que es un campo nativo de SAP.

Tiro la toalla, esperemos alguien tenga idea de que puede estar pasando, Quedo pendiente!

saludos

fijate si tienes activado el manejo de proyectos

2 Me gusta

Mucha razón en tu pregunta, aunque yo supuse que si debe tenerlo si es que en el transaction existe esa validacion.

1 me gusta

Gracias por la atencion, ya se resolvio el tema, les retroalimento.

Por alguna extraña razon el campo Proyecto, cambio de nombre estaba como orden de compra, simplemente le cambie el nombre, nada que ver con TN.

Solo cambie el nombre al campo, y con eso ya que me permitio seleccionar el proyecto.

y ya me permitio timbrar la factura y fin del tema.

image

1 me gusta

Pero si tiene que ver el TN, ya que sino alimentas ese campo te seguirá sacando el mensaje de bloqueo. Lo único que sucedía es que no lo encontrabas porque lo tenían renombrado. Y ahora si te dice proyecto y ya le metes un dato.

Lo importante es que ya lo solucionaste, saludos.

2 Me gusta