Busqueda Formateada error en Select al azar

Buenos días,
Tengo el siguiente requerimiento: Necesito que en los documentos de entrega “Remision como se llama en mi empresa”, se lleve acabo una validación de que los artículos que estoy por entregar, no estén pendientes en pedidos anteriores al pedido seleccionado para hacer dicha remisión. Pero no debe ser una restricción como tal, sino un mensaje de advertencia que le haga saber a la persona que el articulo que esta por remisionar, esta pendiente en un pedido mas antiguo. Por esto, lo estoy haciendo con ayuda de 2 campos de usuario en las lineas de la remision y con SP’s donde, un campo me dirá el pedido abierto mas antiguo que tiene dicho articulo, y otro que diga SI en caso de estar comprometido, y un NO en caso de no existir pedido con este articulo. ya tengo funcionando el campo que me indica el pedido mas antiguo abierto, pero el campo de comprometidos “SI y NO” no me funciona correctamente la búsqueda y no se el porque, ya que muestra un error pero lo ejecuto en hana, y no me muestra error, pero tampoco me lleva información.


la búsqueda se dispara cuando modifico un campo que esta en el encabezado, cuando la ejecuto corren todos los campos y muestra el error:

La consulta de la búsqueda es esta:

SELECT
DISTINCT 
CASE
WHEN
(SELECT MIN(T0."DocNum")
	FROM ORDR T0 INNER JOIN RDR1 T1 ON T0."DocEntry"=T1."DocEntry"
	LEFT JOIN DLN1 T2 ON T1."DocEntry"=T2."BaseEntry" and T1."ItemCode"=T2."ItemCode"
	WHERE T1."ItemCode"=$[DLN1.ItemCode] and T1."LineStatus"='O')=(SELECT $[DLN1.BaseRef] FROM DUMMY) THEN 'NO'
ELSE 'SI'
END AS "Comprometido"
FROM ODLN x INNER JOIN DLN1 y ON x."DocEntry"=y."DocEntry"
WHERE y."ItemCode"=$[DLN1.ItemCode];

La prueba con los valores en HANA directamente que me muestra unas bien, y otras en blanco pero sin error:

Ojala me puedan ayudar ya que no se que puede estar mal.
Gracias.

Hola @luis_fernando, si llegaste hasta acá seguro podrás tomarte unos minutos para pasar por el apartado #presentaciones para conocer un poco mas de tu experiencia y de la versión B1 que utilizas.

Ahora, respecto a tu consulta, dices que la búsqueda formateada que te devuelve el número de documento funciona perfectamente. Bien, en base a ese número de documento se decide el valor del otro campo?? Cuéntanos cual es la lógica para que el campo tenga los valores SI o NO, no sólo el código que estas usando sino también lo que quieres que ese código haga.

Saludos.

Buenas tardes,
Gracias por responde. Te cuento.
El campo que manejara los valores “SI” y “NO” maneja la siguiente lógica:
Para que sea “NO”:
El campo “BaseRef” o “Referencia Base” y el campo que nombre como “Pedido Comp” deben ser iguales, que significa esto, que estoy remitiendo o entregando un producto que fue solicitado por una persona primero, y no lo estoy dejando olvidado.
Para que sea “SI”:
El campo “BaseRef” o “Referencia Base” y el campo “Pedido Comp” Son diferentes, lo que quiere decir que el producto fue solicitado primero en otro pedido diferente al que le estoy haciendo la remisión o entrega.
Esto lo necesito, porque a partir de este campo, pienso crear un SP para avisar a las personas encargadas del proceso, que están entregando productos solicitados en pedidos con fecha antigua que no han terminado de tramitar.
Pero el problema es que en algunas validaciones, que están hechas con un “CASE”, me deja en blanco el campo, y muestra un error que no comprendo.
Espero haberme hecho entender.
y disculpas, inmediatamente me presentare en el foro.
Nuevamente, gracias por la atención.

Ok, ahora entiendo un poco más el requerimiento. Podrías intentar solamente comparando los dos campos en tu entrega? sin tener que hacer Sub-consultas.

A ver si esto te funciona:

SELECT CASE WHEN ($[$38.44.0] = $[$38.X.0]) 
	THEN 'NO'
	ELSE 'SI'
	END
FROM DUMMY

Tienes que reemplazar la X por el npumero de columna que representa tu campo de usuario, esto lo ves activando la opción Visualizar > Información de sistema.

Luego te posicionas con el puntero sobre el campo de usuario y ves esta información que aparece en la parte baja de la pantalla:

image

Para el campo “BaseRef” el número de columna es 44, para tu campo de usuario es otro número.

Prueba y nos comentas que tal.

Funciono Perfectamente !!!
Muchas gracias.

1 me gusta

Que bueno @luis_fernando, recuerda marcar como “Solución” la respuesta que crees que más te ayudó a solucionar tu caso en todos los temas que publiques de ahora en adelante.

Saludos.