El primer apartado lo vamos a dedicar a la definición de datos. El primer caso es conocer que tipos de datos nos proporciona el lenguaje. Os voy a presentar los tipos básicos que nos proporciona ABAP:
Variables
Las variables se definen por defecto de tipo carácter Texto con longitud 1.
Ejemplo: DATA d_caracter. (Vble de texto con long 1)
DATA d_caracter(8). (Vble de texto con long 8)
DATA: d_numero_car(5) TYPE N,
d_numero TYPE I,
d_fecha TYPE D.
DATA d_contador TYPE I VALUE 1.
Con la cláusula LIKE podemos declarar una variable con los mismos atributos de longitud y tipo que un campo del diccionario de datos o que otra variable definida anteriormente.
Ejemplo: DATA d_dato LIKE lfa1-lifnr.
Constantes
Las constantes se definen con la sentencia CONSTANTS:
CONSTANTS <constante> (longitud) TYPE <tipo> VALUE <valor>.
Mismas reglas que para variables, excepto que siempre hay que inicializarlo y no puede ser modificado durante la ejecución.
Ejemplo: CONSTANTS c_dato LIKE lfa1-lifnr VALUE ‘JOSE’.
Estructuras
Una estructura es un conjunto de campos relacionados lógicamente y se define con DATA:
DATA: BEGIN OF <estructura>
………………,
END OF <estructura>.
Ejemplo: DATA: BEGIN OF r_estructura
Codigo LIKE lfa1-lifnr,
Fecha TYPE d,
END OF r_estructura.
Ejemplo: DATA BEGIN OF r_sociedades OCCURS 0.
INCLUDE STRUCTURE T001.
DATA: contador(20) TYPE N,
END OF r_sociedades.
Ejemplo: r_sociedades-nombre = ‘JOSE’.
Rangos
Los rangos son tablas internas con una estructura determinada que se utilizan para almacenar rangos de valores para un tipo de campo y se definen con RANGES:
RANGES: <rango> FOR <campo>.
La estructura de un rango se compone de los siguientes campos:
-SIGN: Campo de tipo carácter de longitud 1, que indica si los valores especificados en el rango se incluyen (I) o se excluyen (E) del mismo.
- EQ = equal
- NE = not equal
- GE = greater or equal
- GT = greater than
- LE = less or equal
- LT = less than
- CP = contains pattern
- NP = not contains pattern
Los rangos se utilizan para chequear valores válidos en sentencias condicionales del campo en cuestión. Si el rango no tiene ningún registro, se asume que cualquier valor del campo es válido.
Ejemplo: TABLES: LFA1.
RANGES: r_rango FOR lfa1-lifnr.
r_rango-sign = ‘I’.
r_rango-option = ‘BT’. (entre)
r_rango-low = ‘1’.
r_rango-high = ‘9’.
APPEND r_rango.
El rango creado hace referencia a los valores del campo lfa1-lifnr comprendidos entre el 1 y el 9, ambos inclusive por tener ‘I’.
FIELD-SYMBOLS <nombre>. ¡¡Poner <........>!!
Utilizando ASSIGN se asigna un campo al field-symbol y a partir de entonces, las operaciones que se realicen sobre el field-symbol, hacen referencia al campo asignado.
DATA: d_contador1 TYPE i,
d_contador2 TYPE i.
<campo> = <campo> + 1.
ASSIGN d_contador2 to <campo>.
<campo> = <campo> + 2.
Ahora d_contador1 tiene el valor 1 y d_contador2 tiene el valor 2.
No hay comentarios:
Publicar un comentario