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?
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”
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
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 :
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:
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)
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.
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.
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
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.
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