SAP BO campo definido usuario calculado

Buenas tardes amigos de la comunidad. Trabajo con SAP BO 10.0 y quisiera a ver si alguien me puede ayudar con la siguiente cuestión. En el formulario de entrada de mercancías se han creado los campos de Hora Entrada, Hora de Salida y T. Minutos Camión. Actualmente hay que introducir todos los campos de una manera manual haciendo el calculo de los minutos a mano, mi cuestión es ¿Puedo cambiar el tipo de campo T.Minutos Camión para que sea un campo calculado y me haga la diferencia entre el campo Hora de Entrada y el campo Hora de Salida? en caso afirmativo, ¿como lo tendría que cambiar?

Los campos están así :

Muchas gracias por anticipado.

Si no me equivoco, los campos que le pusiste tipo “hora” te los guarda en un formato que parece numérico (1700 son las 5pm por ejemplo, o 2030 para las 8:30pm). Si estoy en lo correcto, Solo tendrías que hacer una búsqueda formateada donde te saque la diferencia entre A y B (B - A) y esos son tus minutos, la cosa es: ¿Siempre salen y llegan el mismo días? ¿Qué pasa cuando un camión sale y llega a destino 2 o 3 días después?.

Pregunta… la tercera pantalla… ¿Cómo llegaste a ella?.. no recuerdo haberla visto en las versiones de B1 que he trabajado. Me causó curiosidad esa “Herramienta de inserción de campos” :thinking:

1 me gusta

Hola @Ares17000, empiezo contestandote por el final, la última imagen llegué de la siguiente manera :

En cuanto a el formato de los campos te pongo como hay que meterlos :

Y por último*, el camión siempre entra y sale el mismo día*

y ya abusando de tí ¿como puedo hacer la búsqueda formateada? soy nuevo y todavía no estoy muy ducho.

gracias de antemano

Haaaa… es del Addon de Boyum… ok, ok… así si me la ganas…

de las busquedas formateadas. en el foro están varios temas que lo explican y también existen muchos videos en Youtube.

Aquí está un tema del foro donde se solucionó y se explicó como hacerlos

Ahí está la base, ya depende de tus campos, y de los calculos que vas a hacer.

Aunque el campo visualmente lo vez como “12:25 - 13:00” el campo SAP lo guarda sin los “:” por lo que podrías aprovechar para hacer el calculo de B - A

2 Me gusta

Estimados de la comunidad, no soy capaz de crear la busqueda formateada para que me calcule los minutos automáticamente cuando se rellene el campo HORASALIDA. Pongo como está la estructura de campos :

EL campo NVT_ENTRADA Y NVT_SALIDA son campos con tipo Hora

2021-03-21 12_39_46-Servidor SAP

2021-03-21 12_40_44-Servidor SAP -

Y el campo NVT_TCAMION está como numérico

2021-03-21 12_41_50-Servidor SAP

si me pongo encima del cursos el ITEM= 6 Y Variable= 1

Y pruebo la opción

SELECT ($[6.U_NVT_HSALIDA.NUMBER]-[$6.U_NVT_HENTRADA.NUMBER])

pero me da error,

Alguien me puede ayudar?

Grancias anticipadas

Las busquedas formateadas nunca te van a funcionar sino es solamente en la pantalla que lo tengas configurado.

Aunque te de error ahí, colócalo como busqueda formateada en el campo de la diferencia en tu pantalla y valida si ahí también te da error

1 me gusta

Lo he colocado @Ares17000 y no me hace el calculo :disappointed:

Hola…

En la búsqueda formateada debes poner el número de Item del formulario donde la usarás, en este caso, la entrada de mercancías, pero no te compliques, utiliza la sintaxis “sencilla” de una BF:

Select $[OPDN.U_NVT_HSALIDA] - $[OPDN.U_NVT_HSALIDA]

Como bien lo dice Juan Carlos, si lo ejecutas en el generador de consultas, siempre te marcará error ya que la sintaxis funciona como coordenadas del documento que tengas en pantalla. Para esto tienes dos opciones, como ya te comentan; guardar la consulta y asignarla en el campo, o bien, te doy un tip para probar Búsquedas Formateadas sin asignarlas al campo:

1.- Abre el documento que quieres probar (En tu caso la entrada de mercancías)
2.- Asegúrate de no perder el foco de tu documento (La barra de título permanece en un color más fuerte que el resto de las ventanas)


3.- Sigue la siguiente ruta hasta llegar a tu query y elíjelo:

De inmediato el query tomará las “coordenadas” del documento con el “foco” y te mostrará el resultado de la ejecución, lo que hace este método es mostrarte si haz realizado una buena asignación de las coordenadas de tu BF.

Espero te sea de ayuda.

Saludos. :mexico:

1 me gusta

Muchas gracias @Gera_Mendez, te cuento :disappointed:
He hecho lo que me has aconsejado y me da error.

El error es este :disappointed:

Y la prueba daba el siguiente resultado :disappointed:

En la BF he puesto la que me has recomendado SELECT $[OPDN.U_NVT_HSALIDA] - $[OPDN.U_NVT_HENTRADA]

Si alguien me puede ayudar, lo agradecería.

Comprendo.

La busqueda formteada es correcta, te está tomando lo valores correctos respecto a tu documento, ya solo basta con que des el formato adecuado a los valores del campo, eso ya sería tema de SQL Server, ya tienes la lógica para la creación de tu Busqueda Formateada, la resta de horas implicaría trabajo de SQL Server. Ten en cuenta lo que ya te comenta Juan Carlos y tu mismo te haz dado cuenta, SAP guarda el campo hora sin los “:” (930 y 755 en tu ejemplo) cuestión de que juegues para darle el correcto formato de hora.

Saludos. :mexico:

2 Me gusta

Muchas Gracias @Gera_Mendez, pero entonces no entiendo porque no me funciona la búsqueda formateada.

He hecho la query
SELECT T0.[DocNum],
T0.[U_NVT_HENTRADA],
T0.[U_NVT_HSALIDA],
T0.[U_NVT_HSALIDA] - T0.[U_NVT_HENTRADA] AS ‘Minutos’
FROM OPDN T0 WHERE T0.[U_NVT_HENTRADA] IS NOT NULL AND T0.[U_NVT_HSALIDA] IS NOT NULL

y el cálculo me da correcto :slight_smile:

Sin embargo en el campo con la búsqueda formateada no me da ningún valor…

Gracias por tu tiempo

Hola @joseramonsoli veo que no te esta dando correcto el query, te esta tomando las horas de 100 minutos, ejemplo la primer línea te marca 115 minutos cuando debería ser 75 minutos.

Yo con campos Fecha Hora he utilizado

DATEDIFF(mi, campo1, campo2)

Y me ha funcionado bien, podrías probar.

1 me gusta

Gracias @cdeleon,

Realmente el campo es de usuario y es de hora,

He puesto lo que utilizar y fíjate lo que sale

SELECT T0.[DocNum], 
T0.[U_NVT_HENTRADA], 
T0.[U_NVT_HSALIDA], 
DATEDIFF(mi, T0.[U_NVT_HSALIDA], T0.[U_NVT_HENTRADA]) AS 'Minutos' 
FROM OPDN T0 
WHERE T0.[U_NVT_HENTRADA] IS NOT NULL AND  T0.[U_NVT_HSALIDA] IS NOT NULL

:disappointed:

Alguna otra sugerencia? Gracias por tu tiempo @cdeleon