Fecha Automática de ultima Factura

Buenas tardes estimados colegas.
El objetivo de este mensaje es recibir su apoyo con una búsqueda formateada.
Los contextualizo, intento que en el socio de negocios haya un campo que indique la fecha de la ultima compra, esto para efectos de luego realizar unas autorizaciones en los pedidos de cliente a partir de la fecha de compra de los clientes.
Sin embargo he entrado en un bloqueo mental que me ha impedido avanzar, este es el query que he intentado agregar:

SELECT MAX(T0."DocDate")
FROM OINV T0
WHERE T0."CardCode" = $[$4.0.0]

imagen - 2025-03-28T151255.907

Cuando intento revisar el resultado de esta consulta en mi campo no me muestra ningún valor, he intentado también con $[$4.0.1] pero tampoco me ha funcionado, agradezco si alguno me puede iluminar y ayudar a salir de este bache.
Como siempre, muchas gracias.

Hola que tal buenas tardes,

Te comento que intente lo mismo que tienes en tu codigo solo que en vez de colocarle $[$4.0.0] le puse el 1 al final tal y lo como lo mencionas. o también podrias intentar con $[OINV.CardCode] Te agrego las dos formas para que los puedas probar.

Ahora bien recuerda lo siguiente si el codigo del socio escogido no ha tenido movimiento, por ese motivo no te estará arrojando una respuesta tu BF.

SELECT MAX(T0.DocDate) 
FROM OINV T0
WHERE T0.CardCode = $[$4.0.1]

**Segunda Manera**

SELECT MAX(T0.DocDate)
FROM OINV T0
WHERE T0.CardCode = $[OINV.CardCode]

Te agrego imagenes de como agregar la BF, el ejemplo lo hice en el formulario de factura de deudores por lo que note en la imagen que adjuntaste.

image

Hola @Benru

si es de compra debes utilizar la tabla OPCH, la tabla OINV es la de ventas.

Un saludo

Buen día estimado, espero que te encuentres bien. Primero que nada, quiero agradecerte por replicar los escenarios e intentarlo.

En efecto, cuando aplico estas búsquedas formateadas en documentos de marketing, como en el caso de la factura de deudores (OINV), me funciona. Sin embargo, realmente donde me serviría tenerlo es en el socio de negocio para luego acondicionar.

Mi suposición es que al parecer no es posible guardar un dato formateado en el socio de negocios. Sin embargo, siento que podría también realizar una condición partiendo de la fecha guardada en el documento de marketing, ¿verdad?

Hola @Benru

el código siguiente debería funcionar. Es el mismo que publicó @jhernandez

SELECT MAX(T0.DocDate) 
FROM OINV T0
WHERE T0.CardCode = $[$4.0.1]

Para incluirlo en el formulario de Socios de negocio, crea un campo de usuario, crea una búsqueda formateada e inserta este código en la búsqueda. En el campo de usuario, asigna la búsqueda.

Puedes comprobar que el campo CARDCODE en el formulario de Socios de Negocio es el que aparece en la condición, habilitando vista-> información del sistema.

Un saludo

Buenas tardes, amigo,

Muchas gracias por tus indicaciones.

Como les explicaba anteriormente, cuando incluyo la búsqueda formateada en un campo de un Documento de Marketing, me funciona, como en el caso presentado en la siguiente imagen:

Sin embargo, cuando intento esto en un campo que yo creé en el SN, que en este caso llamé LAST COMPRA a efectos de prueba, no trae ningún dato. Aquí no hay ningún cambio, a excepción de la ruta, puesto que esto ya no se trata de un documento de Marketing.

Observaciones: Hice el ejemplo con el mismo cliente para descartar que se tratara de no tener una compra realizada.

Hola @Benru

y el campo LAST COMPRA ¿cómo está definido?

Un saludo

Buena tarde estimado, te refieres al tipo de dato?
Lo he intentado parametrizar como fecha y también como texto.

Hola @Benru

cambia en el formulario de SN la consulta por esta otra:


SELECT MAX(T0.DocDate) 
FROM OINV T0
WHERE T0.CardCode = $[$4.0.0]

Un saludo

Buen día,

Por lo que entiendo, quieres realizar una búsqueda formateada en la ficha del socio de negocios, pero mencionas que no se actualiza automáticamente. En realidad, sí es posible hacerlo, pero no de manera automática. Lo que puedes hacer es programar la búsqueda para que se actualice cuando el usuario ingrese el código del cliente (que este lo digite cuando quiere buscar un socio ya existente). Sin embargo, el usuario deberá presionar la lupa manualmente para obtener el resultado actualizado de la ultima fecha de compra del socio de negocios.

Por otro lado, dado que ya tienes un campo de socio de negocios, podrías implementar una solución más avanzada. Por ejemplo, podrías hacer que, cuando se genere una factura (ObjType = 13) para ese código de socio de negocios, se tome como referencia la ultima fecha de una factura y se realice un update en el campo de usuario. Esto garantizaría que el campo siempre esté actualizado de forma en automática.

Recuerda que solo puedes hacer updates en tablas o campos definidos por el usuario. No es posible modificar campos internos del sistema, ya que podrías perder la garantía.

Muchas gracias estimado, justo eso mismo es lo que indicaba, que la actualización no se estaba generando en el SN.
Sin embargo creo que es mucho más practico realizarlo desde un Doc de Marketing, evitaría tanto paso.
Nuevamente agradezco el apoyo.

En la ficha del IC debería ser así:

"select max(T1.DocDate) 
from OCRD T0 left join OINV T1 on T0.cardcode = T1.cardcode
Where t0.cardcode=$[$5.0.0]"