Datos duplicados Orden Venta

Buenos días

Mi nombre es Nelson de Colombia soy desarrollador y estoy intentando crear un SP para TN donde no me permita registrar un código repetido, Así tengo mi código, he intentado de varias maneras y no me da, alguien me puede decir como lo podria hacer o dar una idea mejor agradezco su ayuda

IF object_type = '17' AND (:transaction_type='A' OR :transaction_type='U') THEN
	SELECT T0."U_BKV_UID" INTO cntK FROM T0.ORDR WHERE T0."DocNum" = :list_of_cols_val_tab_del;
	SELECT COUNT(*) INTO cntL FROM T0.ORDR WHERE T0."U_BKV_UID" = :cntK;	
	IF :cntL > 1 THEN
		error := -111;
        error_message := '**** El codigo de pedido EasySales esta duplicado ';
	END IF;
END IF;
1 me gusta

Hola @Nelson183
Te invitamos a pasar por la sección de #presentaciones, es una política de obligatorio cumplimiento en el foro.

2 Me gusta

Hola @Nelson183
Bienvenido a la comunidad. No es necesario crear el tema tantas veces, si quieres darle visibilidad puedes agregar una nueva publicación sobre el mismo post.

Tu problema lo resuelves utilizando la función HAVING del estándar SQL.

SELECT COUNT(T1."ItemCode") FROM "SBODEMO".RDR1 T1
WHERE T1."DocEntry" = 1020
GROUP BY T1."ItemCode" HAVING COUNT(T1."ItemCode") > 1

Andres Ramirez Jaramillo :colombia:

1 me gusta

Hola andres buenas tardes

No me funciono la manera que me dijiste me saca este error: [SAP AG][LIBODBCHDB32 DLL][HDBODBC32] General error;1299 no data found: “SBOPRUEBAS”.“SBO_SP_TRANSACTIONNOTIFICATION”: line 2752 col 1 (at pos 115517): [1299] (range 3) no data found exception: no data found

Y entiendo lo de la publicacion que pena

Hola @Nelson183
Pública todo el SP que estás trabajando para poder revisar

Hola @andresramirez este es el SP que estoy trabajando tal cual como me lo indicaste.
Anteriormente lo tenia como esta en el principio de la publicacion
La idea es que cuando se ingrese un valor repetido en el campo de la bd T0.“U_BKV_UID” Si ya existe o se encuentra registrado me saque un mensaje de error

--/*
IF :object_type='17' AND (:transaction_type='A' or :transaction_type='U') THEN
SELECT COUNT(T0."U_BKV_UID") INTO cntK FROM ORDR T0
WHERE T0."DocNum" = :list_of_cols_val_tab_del
GROUP BY T0."U_BKV_UID"
HAVING COUNT(T0."U_BKV_UID") > 1;
    IF :cntK > 1 THEN
          error := -111;
          error_message := '*****El codigo de pedido EasySales esta duplicado.';
    END IF;
END IF;
--*/

Hola @Nelson183
El error se genera cuando INTO cntK esta guardando NULL en la variable, ya que la consulta no retorno ningún dato, para esto puedes utilizar INTO with DEFAULT Values

h_tps://help.sap.com/viewer/6f5d6e0450784ed59cc844f0b9680bb8/Cloud/en-US/8c738274a3e44694b0d5f709e7db531f.html

Andres Ramirez Jaramillo :colombia:

2 Me gusta

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