¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo dar formato a la hora (00:00) y mostrar la cantidad de horas - Guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 44 Vistas
0
Cargando...

Hola, ¿me podrían ayudar por favor a dar formato a la hora (00:00) donde pueda, por ejemplo, tomar la hora actual, restar ese valor y mostrar la cantidad de horas?

Gracias

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Oscar. Revisemos si he logrado entenderte.

En el campo SMALLINT tienes un valor entero que corresponde a la cantidad de horas de anticipación con la que tienes que generar la alarma.

En otro campo de tipo Hora ( SY - UZEIT), tienes la hora en la cual debería generarse la alarma.

Entonces, lo que necesitas hacer es restarle a la hora actual, la cantidad de horas del campo SMALLINT y eso te da una hora. Luego comparas esa hora con la actual y si es mayor o igual, generas la alarma. ¿Es correcto?

Si es así, puedes usar el FM IGN_TIMESTAMP_PLUSMINUS teniendo en cuenta los siguientes parámetros:

VALUE ( START_DATE ) LIKE SY - DATUM     --> Fecha Actual

VALUE ( START_TIME ) LIKE SY - UZEIT        --> Hora Actual

VALUE ( HOURS ) TYPE INT4 DEFAULT '0'   --> Cantidad de horas a sumar/restar (Entero)


VALUE(FORWARD) TYPE  BOOLE_D DEFAULT 'X'  --> Sumar

VALUE(BACKWARD) TYPE  BOOLE_D DEFAULT ' ' --> Restar

Tanto sumando como restando, el FM te devuelve dos salidas:

VALUE(RESULT_DATE) LIKE  SY-DATUM         -->Fecha resultante

VALUE(RESULT_TIME) LIKE  SY-UZEIT            -->Hora resultante

Estos dos campos los puedes comparar con la fecha actual (Sy-datum) y Hora Actual (sy-uzeit) y generar la alarma si es procedente.

Quedo pendiente de tus comentarios.

Saludos,

Dairo


Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Dairo, gracias por tu respuesta. El problema es que el campo es de tipo smallint, necesito convertirlo a tipo hora para poder utilizar la hora del sistema y generar una alarma en SAP B1.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Oscar.

Usa el módulo de función IGN_TIMESTAMP_PLUSMINUS. Sirve tanto para sumar como para restar.

Simplemente, utilizas el flag adecuado: Forward para sumar y Backward para restar.

Espero que esta respuesta te sirva.

En tu pregunta anterior te respondí también. ¿Te funcionó?

Quedamos pendientes de tu feedback.

Saludos,

Dairo

Scr_197.jpg Scr_199.jpg
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Oscar,

Para añadir una hora específica (hh / mm / ss), puedes utilizar el módulo de funciones:

CNV_ADD_TIME

Para restar una hora específica, puedes buscar un módulo de funciones que realice esta operación, o bien modificar el mencionado anteriormente para que realice la resta.

Gracias,

Saludos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?