SAP: Sy-datum y Sy-uzeit en ABAP

4
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

description

Tutorial sobre el uso de las variables de sistema sy-datum y sy-uzeit en ABAP

Transcript of SAP: Sy-datum y Sy-uzeit en ABAP

Page 1: SAP: Sy-datum y Sy-uzeit en ABAP

OPERANDO CON LA VARIABLE DE SISTEMA sy-datum

• Las variables de sistema están guardadas en la estructua delDictionary llamada SYST. Todas las variables de esta estructuratienen sólo permiso de lectura, es decir no podemos modificarlas avoluntad.

• SAP crea dinámicamente (en tiempo de ejecución) una estructurallamada sy que almacena en la memoria RAM del sistema el valorque tienen las variables de la estructura del dictionary SYST.

• La variable sy-datum guarda la fecha del sistema en el formatoaño(4 posiciones)/mes(2 posiciones)/dia(2 posiciones) y podemosoperar con ella del mismo modo que con cualquier otra variable detipo carácter.

• Por ejemplo podemos guardar el año, mes y el día en tres variablesdistintas

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 hantranscurrido desde el 01/01/0001 hasta la fecha actual. Este es elnúmero que se guardará en una variable de tipo entero si leasignamos

DATA x TYPE i VALUE sy-datum.

• Al contrario, cuando se asigna un número a una variable tipo d elsistema lo convierte a la fecha que corresponde al número de díastranscurridos desde el 01/01/0001 al número asignado

DATA: x TYPE i VALUE 4058157891.

1

Page 2: SAP: Sy-datum y Sy-uzeit en ABAP

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 lafecha que queremos guardar tiene demasiados dígitos (no puedetener más de ocho).

DATA fecha TYPE d VALUE '200100101'.

TIMESTAMPS

• Timestamps (originalmente diseñado para Unix) es el número desegundos transcurridos desde una fecha determinada (en Unix eslas cero horas del uno de enero de 1970). Se utilizan paraidentificar eventos de forma única, tal como los logs del registro delsistema operativo.

• En ABAP TIMESTAMP es un tipo de variable que guarda en memoriala hora universal de Greenwich (UTC), lo que nos permite comparardatos de fecha y hora almacenados en lugares con distinta zonahoraria.

• En ABAP se puede obtener el timestamp actual y guardarla en uncampo mediante la instrucción

DATA f TYPE timestamp.GET TIME STAMP FIELD f.

2

Page 3: SAP: Sy-datum y Sy-uzeit en ABAP

• Podemos convertir el timestamp a la fecha y hora correspondientemediante 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 untimestamp.

LA VARIABLE DE SISTEMA sy-uzeit

• La variable sy-uzeit guarda la hora actual del sistema de lasiguiente manera hora(2 posiciones)/minutos(2 posiciones)/segundos(2 posiciones).

• Al igual que con la variable sy-datum, también podemos acceder alos 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 lasiguiente forma

DATA hora TYPE t VALUE sy-uzeit.

• La instrucción GET TIME actualiza el valor almacenado en lavariable sy-uzeit.

• La variable sy-uzeit en realidad guarda el número de segudos quehan transcurrido desde las 00:00:00 horas y los transforma en lahora actual. Si asignamos la variable sy-uzeit a una variable de tipoentero este será el valor que nos dará.

3

Page 4: SAP: Sy-datum y Sy-uzeit en ABAP

DATA x TYPE i VALUE sy-uzeit.

4