Estoy validando que no se seleccione lotes vencido

Buenas;
Estoy tratando de validar de que no se seleccioné lotes vencidos en el modulo de picking al momento de liberar una orden de venta a través del Transaction Notification.
esta es mi validación

IF (:object_type = ‘156’ AND (:transaction_type= ‘A’ OR :transaction_type= ‘U’ )) THEN

RecordCount :=0;

	SELECT COUNT (*) INTO RecordCount 
	FROM IBT1 T0 
	INNER JOIN  OBTN T1  ON T1."ItemCode" = T0."ItemCode"  AND  T0."BatchNum" = T1."DistNumber" 
	INNER JOIN  OPKL T2  ON T0."BaseEntry" =T2."AbsEntry"  AND  T0."BaseType" =156 
	WHERE IFNULL(T1."ExpDate" ,'29991231')< CURRENT_DATE AND T2."AbsEntry" = :list_of_cols_val_tab_del ;

	if :RecordCount > 0 THEN
	
		SELECT T0."BatchNum",T1."ItemCode" INTO Lote, Item 
		FROM IBT1 T0 
		INNER JOIN  OBTN T1  ON T1."ItemCode" = T0."ItemCode"  AND  T0."BatchNum" = T1."DistNumber" 
		INNER JOIN  OPKL T2  ON T0."BaseEntry" =T2."AbsEntry"  AND  T0."BaseType" =156  
		WHERE IFNULL(T1."ExpDate" ,'29991231')< CURRENT_DATE  AND T2."AbsEntry" = :list_of_cols_val_tab_del ;

		 error := 1002;   
   	     error_message := N'(OPKL-P0002) El Lote  '||:Lote ||' Del Articulo '||:Item ||' Esta Vencido, seleccione otro Lote '||:RecordCount||' NUMN' ;
   	ELSE 
		 error := 1002;   
	     error_message := N'(OPKL-P0002) ENTRE EN OPKL POR ELSE '||:RecordCount||' NUMN'; 	
	END IF;	
	end if;	

por alguna razón cuando dicho lote vencido se encuentra con un almacén que tiene seleccionado la ubicación, devuelve 0 y no 1.
Trabajo con HANA y SAP B1 9.3

IF (:object_type = ‘156’ AND (:transaction_type= ‘A’ OR :transaction_type= ‘U’ )) THEN

RecordCount :=0;

		SELECT COUNT(*) INTO  RecordCount
		FROM "OPKL" T0 
		INNER JOIN "PKL1" T1 ON T0."AbsEntry" = T1."AbsEntry" 
		INNER JOIN "PKL2" T5 ON T1."AbsEntry" = T5."AbsEntry" AND T1."PickEntry" = T5."PickEntry"
		INNER JOIN "OBTN" T6 ON T5."SnBEntry"  = T6."AbsEntry"
		INNER JOIN "IBT1" T7 ON T7."ItemCode" = T6."ItemCode" AND  T1."BaseObject" =T7."BaseType" AND  T7."BatchNum" = T6."DistNumber" 
		and T7."BaseEntry" =T1."OrderEntry"
		WHERE IFNULL(T6."ExpDate",'29991231')< CURRENT_DATE and T0."AbsEntry" = :list_of_cols_val_tab_del ;

	if :RecordCount > 0 THEN
		 error := 1002;   
	     error_message := N'(OPKL-P0002) ENTRE EN OPKL POR ELSE '||:RecordCount||' NUMN'; 
	     	
	END IF;	
	end if;	

esta es la validación cuando la ubicación esta activa en algún almacén se crean otras relaciones y cambios esta seria para cuando tenemos la ubicación activa y la otra para cuando no.
Espero que le sirva a alguien mas

1 me gusta

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