Vous êtes sur la page 1sur 7

ABAP Types y Data Objects

Los programas en cualquier lenguaje de programacin necesitan trabajar con datos localmente y guardalos en variables. Las variables tienen nombres y tipos de atributos que pueden ser numricos, caracteres o cadenas de caracteres dependiento de los tipos de datos soportados por el lenguaje. En ABAP a la variable se la llama DATA OBJECT y es definida por un DATA TYPE, de tipo local, global o de tipo objeto.

Data Types
El data type es slo la descripcin y no ocupa espacio en memoria; se pueden definir en cualquier programa, utilizando data types predefinidos o globales. Los data type globales se definen en el diccionario de datos, usando data elements, type pools o type groups, table types, estructuras o tablas. Para definir data types localmente se utiliza la sentencia TYPES, y slo se pueden utilizar en el programa que los define, mientras que los globales son visibles en cualquier programa SAP. Los data types se usan en la definicin de DATA OBJECTS y definen sus atributos tcnicos, cmo se almacenan en memoria, y que operaciones son posibles en el data object. Los data types se usan tambin en la definicin de INTERFACE PAREMETERS, determinando qu valores se pueden transfereir cuando la unidad modular es llamada. (subrutinas, mdulos de funcin y mtodos) Otro uso es para la definicin de los campos de entrada/salida en un programa ABAP. Se usan para declarar PARAMETERS y SELECTOPTIONS para los campos creados en el screen painter (selection screens y dynpros).

Data Types

Predefined Data Types

Local Data Types

Global Data Types

ABAP Dictionary Object

ABAP Dictionary Type Group

Data Objects
Los data object se almacenan temporalmente en el programa y ocupan memoria para guardar los datos. Contienen informacin para el programa, y existen mientras se est ejecutando. Los atributos tcnicos son el tipo, la longitud, el nmero de decimales. Se pueden declarar esttica o dinmicamente en tiempo de ejecucin, utilizando data types locales, globales o predefinidos por SAP. Para hacerlo se usa la sentencia DATA, y se le puede asignar un valor usando VALUE. ABAP contiene los siguientes tipos de data objects: Literales, constantes, text symbols, data objects predefinidos y variables.

Literals
Los literales son informacin almacenada en la memoria del sistema pero que no tienen un nombre asignado (son datos annimos). Los literales se leen por el sistema en tiempo de ejecucin en el punto exacto en que aparecen en el programa. Una vez ledo no se puede cambiar el valor. Los literales pueden aparecer en cualquier parte de un programa, y se definen simplemente escribindolos cuando es necesario y su tipo es definido por su valor. WRITE / Hola amigos. Hay tres tipos de literales: Numeric Literals Consiste en una secuencia contiua de nmeros (0-9), y puede llevar el signo + o -. No pueden tener ms de 31 dgitos. No se admiten decimales. Si fuera el caso, habra que definirlo entre comillas. Text field literals Es una secuencia de carcteres dentro de comillas simples ('). Su longitud es de un mximo de 255 caracteres y se corresponde con el data type c. Los espacios a la derecha no se tienen en cuenta. String literals Es una secuencia de carcteres dentro de comillas (`). Su longitud es de un mximo de 255 caracteres y se corresponde con el data type string. Los espacios a la derecha se tienen en cuenta.

Constants
Las constantes son data objects para almacenar informacin que NO cambia durante la ejecucin del programa. Si se intenta cambiar su valor da un error de ejecucin. Para declarar una constante usamos la instruccin CONSTANTS. En el caso de las constantes es imprescindible asignarles un valor cuando se crea mediante la instruccin VALUE.

Text symbols
Los text symbols son textos almacenados en el sistema a los que se les asigna un nombre para poder identificarlos y poder usarlos luego en programacin.Los text symbols no se pueden crear mediante instrucciones ABAP sino que hay que crearlos mediante el men del escritorio (Goto Text elements Text symbols) Supongamos que hemos creado un text symbol llamado text-001 que guarda las palabras Hola amigos. Podemos asignar este text symbol de la siguiente manera DATA s TYPE c. s = text-001. Si hacemos clic dos veces sobre un texto el sistema crea un text symbol con ese contenido. Para asignarle una etiqueta ponemos entre parntesis el nmero que lo identifique de la siguiente manera: hola(001) El sistema crea un text symbol con el contenido hola y lo llamar text-001.

Predefined data objects


Estos objetos no hay que declararlos ya que estn siempre disponibles en cualquier programa ABAP: La constante space, es una constante de tipo c, que ocupa un byte y contiene un carcter (un espacio en blanco). No puede ser modificada ya que es una constante predefinida por el sistema. SAP incluye una serie de espacios en memoria predefinidos donde guarda informacin de forma dinmica (en tiempo de ejecucin), con los valores que proporcionan informacin sobre el estado actual del sistema por ejemplo la fecha y la hora, el nombre del usuario, errores en tiempo de ejecucin, etc. Los guarda en una estructura del Diccionario ABAP (SY) con el data type SYST.

Variables
Las variables se declaran en el propio programa, se crean durante el tiempo de ejecucin en la memoria interna del sistema, y desaparecen en el momento en que se termina de ejecutar el programa. En realidad una variable no es ms que un espacio en la memoria interna del sistema que se reserva para almacenar datos. En ABAP existen distintos tipos de variables. DATA: Se usa esta instruccin para declarar variables cuya vida y visibilidad dependern del contexto de la declaracin. Se usa la instruccin VALUE para darle un valor inicial a la variable.

STATICS: Las variables que se declaran con la instruccin DATA viven durante tanto tiempo como el contexto en el que se definen. As variables en un programa principal ABAP existen para la ejecucin completa del programa, y las variables locales en los procedimientos slo existen durante el tiempo que se ejecuta el procedimiento. Para conservar el valor de una variable local ms all del tiempo de ejecucin del procedimiento, se puede declarar mediante la sentencia STATICS. Esto declara una variable con el tiempo de vida del contexto del programa principal, pero que slo es visible en el procedimiento. CLASS-DATA: Se usa para declarar atributos estticos de una clase y son vlidos para todas las instancias de la clase dentro del programa. PARAMETERS: Declara un data object elemental que se visualiza como un campo de entrada en las selection screen SELECT-OPTIONS: Declara una tabla interna que se visualiza como un campo de entrada en las selection screen.

ABAP Data Types


Son data types predefinidos por SAP y que pueden usarse en todos los programas para definir data types locales y data objects. Hay 10 tipos. 8 son de longitud fija: Character types: Numeric text (N), character text (C), date type (D) y time type (T). En Unicode cada carcter ocupa 2 4 bytes. Numeric types: Integer (i), floating point number (f), packed number (p). Hexadecimal types (X) es un data type para definir un byte en memoria. Un byte se representa por dos dgitos en hexadecimal.

y 2 son de longitud variable: STRING: Una string puede contener una logitud variable de caracteres alfanumricos. No se asigna memoria a la cadena, hasta que no se le asigna un valor, porque no sabemos cunta vamos a necesitar. Tcnicamente no hay un mximo de caracteres para este tipo. Pero hay un mximo de memoria que se le puede asignar, que est guardado el el parmetro del sistema: ztta/max_memreq_MB. XSTRING: es una secuencia hexadecimal de bytes de longitud variable.

Tipo

Descripcin

Tamao por defecto

Valor inicial

C N D T X I P F STRING

Character Numeric text Date YYYYMMDD Time HHMMSS Byte (heXadecimal) Integer Packed nmero Floating point nmero String

1 1 8 6 1 4 8 8 variable variable

Space '00...0' '00000000' '000000' X'00' 0 0 '0.0' string vaco X string vaco

XSTRING Byte sequence (X string)

Local Data Types


Son data types definidos en un programa SAP y slo son visibles en ese programa. Se pueden usar data types predefinidos o global types, para definirlos. Se utiliza la instruccin TYPES para hacerlo. TYPES: <type-name> . [TYPE <ABAP Type> | LIKE <obj>]. El nombre no puede tener ms de 30 caracteres y se pueden usar letras, nmeros, y guin bajo. <ABAP Type> puede ser uno de los predefinidos o cualquier otro tipo local o del diccionario.

Los tipos compejos tienen como componentes una secuencia de data types elementales, data types complejos o reference types. Tambin se pueden usar objetos del diccionario de datos como data elements, estructuras y tablas, y componentes de estructuras o tablas para definir un componente individual de un tipo complejo. Los data type complejos son structure types y table types. El structure data type es un secuencia de data types elementales, complejos o referenced. Dependiendo del tipo de componentes el structure type puede ser de tipo flat, nested o deep. Una estructura es plana (flat) si contiene slo variables elementales del tipo i, p, f, c, n, d, t, x. Una estructura es anidada (nested) si contiene a una estructura como tipo. Una estructura el profunda (deep) si contiene entre sus componentes variables de tipo string, punteros o tablas. Una estructura puede tener otras estructuras entre sus componentes. Varias estructuras anidadas componen una estructura plana si todos sus componentes son variables elementales. Se pueden anidar hasta un mximo de 9 estructuras. Para evitar este tipo de estructuras jerrquicas podemos incluir una estructura en otra estructura a travs de la instruccin INCLUDE. En este caso todos los componentes de la estructura resultante estaran al mismo nivel.

Global Data Types


Constan de data elements, structures y table types. Data element: Son las unidades ms pequeas en que puede dividirse un tipo de datos complejo y se usan para especificar el tipo de datos que puede contener una tabla de una base de datos. Para asignar un tipo de datos podemos asignar directamente el tipo de datos del Diccionario ABAP. EL Diccionario tiene muchos ms tipos de datos que el lenguaje ABAP, y esto es as porque deben de ser compatibles con los distintos tipos de datos que existen en la basesde datos con las que puede trabajar un sistema SAP. La mayora deestos tipos de datos del Dictionary tiene un equivalente en el lenguaje ABAP. Structures: es una secuencia de data elements o incluso otro data type de tipo estructura como uno de sus componentes. Table types: son tablas internas definidas en el Diccionario. Se especifica su line type, access type y key durante la creacin del table type en el Diccionario.

Se puede usar cualquier data type existente en el Diccionario para crear nuevos data types en el Diccionario.

Vous aimerez peut-être aussi