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:
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.
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