P. 1
SAP: Sy-datum y Sy-uzeit en ABAP

SAP: Sy-datum y Sy-uzeit en ABAP

5.0

|Views: 11,175|Likes:
Published by Alejandro Torrijos
Tutorial sobre el uso de las variables de sistema sy-datum y sy-uzeit en ABAP
Tutorial sobre el uso de las variables de sistema sy-datum y sy-uzeit en ABAP

More info:

Published by: Alejandro Torrijos on Jan 15, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/01/2015

pdf

text

original

OPERANDO CON LA VARIABLE DE SISTEMA sy-datum • Las variables de sistema están guardadas en la estructua del Dictionary llamada SYST

. Todas las variables de esta estructura tienen sólo permiso de lectura, es decir no podemos modificarlas a voluntad. • SAP crea dinámicamente (en tiempo de ejecución) una estructura llamada sy que almacena en la memoria RAM del sistema el valor que tienen las variables de la estructura del dictionary SYST. • La variable sy-datum guarda la fecha del sistema en el formato año(4 posiciones)/mes(2 posiciones)/dia(2 posiciones) y podemos operar con ella del mismo modo que con cualquier otra variable de tipo carácter. • Por ejemplo podemos guardar el año, mes y el día en tres variables distintas

DATA: año(4) TYPE c VALUE sy-datum(4). mes(2) TYPE c VALUE sy-datum+4(2). dia(2) TYPE c VALUE sy-datum+6(2)

• En realidad la variable sy-datum guarda el número de días que han transcurrido desde el 01/01/0001 hasta la fecha actual. Este es el número que se guardará en una variable de tipo entero si le asignamos DATA x TYPE i VALUE sy-datum. • Al contrario, cuando se asigna un número a una variable tipo d el sistema lo convierte a la fecha que corresponde al número de días transcurridos desde el 01/01/0001 al número asignado DATA: x TYPE i VALUE 4058157891.

1

fecha TYPE d. fecha = x. • También podemos operar con dos variables tipo d, por ejemplo DATA: fecha TYPE d VALUE '20090101'. hoy TYPE d VALUE sy-datum. fecha = hoy - fecha. • Si asignamos una fecha que no es válida el sistema asigna un 0, por ejemplo en el siguiente ejemplo se guardaría un cero ya que la fecha que queremos guardar tiene demasiados dígitos (no puede tener más de ocho). DATA fecha TYPE d VALUE '200100101'.

TIMESTAMPS • Timestamps (originalmente diseñado para Unix) es el número de segundos transcurridos desde una fecha determinada (en Unix es las cero horas del uno de enero de 1970). Se utilizan para identificar eventos de forma única, tal como los logs del registro del sistema operativo. • En ABAP TIMESTAMP es un tipo de variable que guarda en memoria la hora universal de Greenwich (UTC), lo que nos permite comparar datos de fecha y hora almacenados en lugares con distinta zona horaria. • En ABAP se puede obtener el timestamp actual y guardarla en un campo mediante la instrucción DATA f TYPE timestamp. GET TIME STAMP FIELD f.

2

• Podemos convertir el timestamp a la fecha y hora correspondiente mediante la instrucción DATA fecha TYPE d. CONVERT TIME STAMP f INTO DATE fecha. • Y a la inversa, también podemos convertir una fecha en un timestamp.

LA VARIABLE DE SISTEMA sy-uzeit • La variable sy-uzeit guarda la hora actual del sistema de la siguiente manera hora(2 posiciones)/minutos(2 posiciones)/ segundos(2 posiciones). • Al igual que con la variable sy-datum, también podemos acceder a los distintos campos de la varialbe sy-uzeit. DATA: hora(2) TYPE c VALUE sy-uzeit(2) minuto(2) TYPE c VALUE sy-uzeit+2(2) segundo(2) TYPE c VALUE sy-uzeit+4(2) • Podemos asignar el valor almacenado en esta variable de la siguiente forma DATA hora TYPE t VALUE sy-uzeit. • La instrucción GET TIME actualiza el valor almacenado en la variable sy-uzeit. • La variable sy-uzeit en realidad guarda el número de segudos que han transcurrido desde las 00:00:00 horas y los transforma en la hora actual. Si asignamos la variable sy-uzeit a una variable de tipo entero este será el valor que nos dará.

3

DATA x TYPE i VALUE sy-uzeit.

4

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->