cancel
Showing results for 
Search instead for 
Did you mean: 

Generación automática de comentario con búsqueda formateada en pagos efectuados

Former Member
0 Kudos

Buenas tardes, estoy empezando a conocer SAP Business One y estoy teniendo dificultades con una búsqueda formateada. Lo que busco es que los pagos efectuados (y recibidos) que se generan automáticamente al hacerse el pago dentro del documento de la factura respectivo, automáticamente traigan el número real de dicha factura física que se encuentra en la factura y lo pongan en el primer campo de comentarios del pago efectuado. Esto para que el asiento que se crea para el pago efectuado se traiga automáticamente el número real de la factura en físico a una de sus referencias.

Para esto he creado una búsqueda formateada a la factura para los campos donde guardamos el tipo y número físico del documento, y la he ubicado en el campo del comentario del pago efectuado. El problema es que únicamente funciona cuando se utiliza manualmente el icono de la lupa. No se genera automáticamente este comentario y por lo tanto no se copia en la referencia del asiento de forma automática. Esta es la búsqueda a la factura de proveedores que tengo:

SELECT (T0.[U_tipo_doc] + ' ' + T0.[U_num_doc]) FROM OPCH T0 WHERE T0.[DocNum] = $[$20.1.number]

Estoy utilizando el número de documento de las filas de detalle del pago efectuado para hacer el match con las facturas de proveedores. Esta búsqueda la he colocado en el comentario del pago efectuado y he seleccionado que se actualice automáticamente al modificarse el campo "Nombre de deudor/acreedor" y he dejado la opción "Visualizar valores definidos por usuario".

No entiendo por qué no funciona ya que en el segundo comentario hay una búsqueda con las mismas opciones de actualización automática y sí genera el comentario de forma automática y además este se va correctamente a la referencia del asiento. Esta es la búsqueda:

Select 'PR - ' + $[ORCT.CardName]

Por qué este sí funciona? Es posible hacer lo que busco? Habría una mejor forma de lograrlo?

Espero alguien pueda ayudarme. Muchísimas gracias de antemano!

Accepted Solutions (0)

Answers (1)

Answers (1)

Johan_H
Active Contributor
0 Kudos

Hola Stephanie,

Una búsqueda formateada solo puede activarse abriendo el formulario en el que se encuentra. Siempre requiere la interacción del usuario. Eso significa que se debe cambiar un valor, o se debe usar el icono de la lupa, o presionar SHIFT+F2.

Para depurar una búsqueda formateada, intente lo siguiente:

  1. abra el formulario en el que está la búsqueda formateada
  2. Vaya a: Herramientas> Consultas> Consultas de usuario> Grupo de consulta relevante> la consulta de búsqueda formateada
  3. $ [$ 20.1.number] debe reemplazarse por el valor real. Así que
    SELECT (T0. [U_type_doc] + '' + T0. [U_num_doc])
    FROM OPCH T0
    WHERE T0. [DocNum] = $ [$ 20.1.number]


    debería verse más o menos así:
    SELECT (T0. [U_type_doc] + '' + T0. [U_num_doc])
    FROM OPCH T0
    WHERE T0. [DocNum] = 123456


    y el resultado de la consulta le mostrará el valor de retorno.

Compruebe por qué la consulta no devuelve el valor que espera, por favor.

Saludos,

Johan

Former Member
0 Kudos

Gracias, Johan, por tu ayuda. Fijate que la consulta sí funciona, sí me devuelve el valor que espero. El problema que tengo es que yo quiero que el campo con la consulta se llene automáticamente sin que se tenga que hacer clic en la lupa. El objetivo es que el usuario cree una factura de proveedores y dentro de ella misma se cree el pago yéndose a medios de pago. En el pago efectuado que se genera automáticamente al hacer esto, quiero que se actualice de forma automática el campo del comentario donde tengo la búsqueda formateada, sin necesidad de que el usuario tenga que ir después a buscar ese pago efectuado y darle clic a la lupa para que aparezca la información.

Espero que mi problema haya quedado más claro, gracias!

Saludos

Johan_H
Active Contributor
0 Kudos

Hola Stephanie,

De acuerdo, lo entiendo ¿Podría mostrar capturas de pantalla del formulario de búsqueda formateado y el formulario en el que está?

Saludos,

Johan

Former Member
0 Kudos

Hola, Johan, muchas gracias por su respuesta. El formulario al que se hace la búsqueda formateada es el siguiente:

https://imgur.com/vATifka

Al momento en el que el usuario cree la factura de proveedores y cree el medio de pago ahí mismo, quiero traer esos campos del numero de documento marcados con la flecha roja al pago efectuado correspondiente que se genera automáticamente.

Para esto he creado la siguiente búsqueda formateada y la he colocado en el primer comentario del pago efectuado:

https://imgur.com/XGako9y

https://imgur.com/Gyjb8ca

En este caso el usuario creó la factura de proveedores y el medio de pago dentro de la factura, sin ir a crear un pago efectuado de forma directa. El pago efectuado se genero automáticamente en el fondo. Yo lo que esperaba es que en el comentario 1 se pusiera automáticamente el texto "Crédito fiscal 418" para que cuando un usuario busque y abra el pago efectuado que se generó, el comentario 1 ya muestre ese texto. Sin embargo, esto no sucede, cuando se busca el pago efectuado, se observa que el comentario 1 quedó vacío. Y sin embargo el comentario 2 sí se generó automáticamente, ese tiene esta búsqueda:

https://imgur.com/fjXHHe2

https://imgur.com/hweTO9x

No entiendo por qué sucede este comportamiento y cómo lograr lo que deseo.

Muchas gracias y saludos. (Adjunté las imágenes como vínculos porque no me deja enviar el comentario con las imágenes en línea)

Johan_H
Active Contributor
0 Kudos

Hola Stephanie,

Parece que la única diferencia es la consulta. ¿Podrías probar esto?

SELECT (ISNULL(T0.[U_tipo_doc], '') + ' ' + CAST(ISNULL(T0.[U_num_doc], '') AS NVARCHAR) FROM OPCH T0 WHERE T0.[DocNum] = ISNULL($[ORCT.???.number], -1)

Saludos,

Johan

Former Member
0 Kudos

Hola, Johan, gracias por tu respuesta. Fijate que probe esa consulta, inicialmente crei que le faltaba un parentesis despues de NVARCHAR asi que lo agregue y cambie el nombre de la tabla ORCT a OVPM porque la busqueda esta en el formulario de los Pagos Efectuados. Me quedo asi la busqueda:

SELECT (ISNULL(T0.[U_tipo_doc], ' ') + ' ' + CAST(ISNULL(T0.[U_num_doc], ' ') AS NVARCHAR)) FROM OPCH T0 WHERE T0.[DocNum] = ISNULL($[OVPM.???.number], -1)

En lugar de los signos de pregunta debia poner algo mas? Dejandola asi, me da error interno cuando uso la lupita para ver si trae algo la busqueda. El campo donde esta el numero de documento en el pago efectuado esta en la tabla de detalle, no directamente en la OVPM. No se si esto estara afectado.

Nuevamente muchas gracias! Saludos.

Johan_H
Active Contributor
0 Kudos

Hola Stephanie,

Lo siento, debería haberlo explicado.

Tienes razón, necesitas reemplazar '???' con el nombre de campo que necesitas. No estoy seguro de cuál es el nombre de campo correcto, así que usé los signos de interrogación.

Si la búsqueda formateada está en el nivel del encabezado y la información en la tabla de detalles, se vuelve mucho más difícil, porque puede haber múltiples pagos. ¿Qué pago debería mostrarse en ese caso?

Si es suficiente mostrar el primero, puede intentar esto:

SELECT TOP 1 (ISNULL(T0.[U_tipo_doc], ' ') + ' ' + CAST(ISNULL(T0.[U_num_doc], ' ') AS NVARCHAR)) 
FROM OPCH T0 
WHERE T0.[DocNum] = ISNULL($[OVPM.???.number], -1)

Saludos,

Johan