cancel
Showing results for 
Search instead for 
Did you mean: 

Formato tipo Hora

former_member263548
Participant
0 Kudos

Hola, me pueden por favor ayudar a lograr darle formato hora (00:00) en donde pueda por ejemplo tomar la hora actual, restarle ese campo y muestre la cantidad de horas.

Gracias

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hola Oscar,

Para añadir una hora en concreto (hh / mm / ss) puedes utilizar el módulo de funciones:

CNV_ADD_TIME

Para restar una hora en concreto, una opción es buscar un módulo de funciones que haga esto, o bien a partir del que yo te he dicho, hacer un "Z", modificándolo para que haga esa resta.

Gracias,

Saludos.

dairolozano
Contributor
0 Kudos

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

former_member263548
Participant
0 Kudos

Hola Dairo gracias por tu respuestas, el tema es que el campo es tipo smallint, necesito convertirlo a tipo hora para poder usar la hora del sistema y generar una alarma en SAP B1

dairolozano
Contributor
0 Kudos

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