Busqueda formateada persona de contacto en Factura

Buenos días!

Quería realizar lo siguiente en SAP B0:

En las facturas de venta pille la persona de contacto cuyo nombre es FACTURACIÓN y si el cliente no tiene este contacto coja el contacto que esté fijado como estándar.

Para ello creé la siguiente Búsqueda formateada y la asocié al campo persona de contacto de la factura pero no me funciona:

SELECT
CASE when O.“Name” = ‘FACTURACION’ THEN (SELECT O.“CntctCode”
FROM OCPR O INNER JOIN OINV OI ON O.“CardCode” = OI.“CardCode”
WHERE O.“CardCode” = $[$4.1.0] AND O.“Name” = ‘FACTURACION’ AND OI.“DocNum” = $[$8.1.0]
)
ELSE (select OC.“CntctCode” from ocrd OCR INNER JOIN OCPR OC ON OCR.“CardCode” = OC.“CardCode” INNER JOIN OINV OI ON OC.“CardCode” = OI.“CardCode” where OCR.“CardCode” = $[$4.1.0] AND OCR.“CntctPrsn” = OC.“Name” AND OI.“DocNum” = $[$8.1.0]) END AS “CONTACTO”
FROM OCPR O

¿Podríais decirme que estoy realizando mal o se os ocurre alguna otra forma de hacer esto’

Gracias

Un saludo.

Hola, el campo que tienes que cubrir internamente en OINV es el código no el nombre… o sea tienes que traer el código numérico de la persona de contacto, no el nombre.

Buenas tardes,

He conseguido solucionarlo con la siguiente consulta:

SELECT
IFNULL((SELECT T99.“Name” from OCPR T99 INNER JOIN OCRD T98 ON T99.“CardCode” = T98.“CardCode” WHERE T99.“CardCode” = $[$4.0.0] AND T99.“Name” = ‘FACTURACION’),
(SELECT T88.“CntctPrsn” from OCRD T88 INNER JOIN OCPR T89 ON T88.“CardCode” = T89.“CardCode” where T88.“CardCode” = $[$4.0.0] AND T88.“CntctPrsn” = T89.“Name”) )
FROM OCRD T0 WHERE T0.“CardCode” = $[$4.0.0]

Gracias por tu respuesta

Un saludo.

Buenos días,

He conseguido que me funcione la búsqueda formateada y la he asociado al campo persona de contacto de la factura, pero ahora no me deja pasarla a PDF ni ver la presentación preliminar, ¿sabéis por que puede ser?

Gracias

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