Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
El modelado de datos permite construir un esquema a partir del mundo real
y llevarlo a una base de datos, este proceso se lleva a cabo mediante
diferentes técnicas, en principio fue utilizado el modelo entidad relación y
ahora es el modelo orientado por objetos el más utilizado.
El diccionario ABAP soporta los dos modelos:
1. Modelo entidad-relación: se basa en tablas, registros y campos
2. Modelo orientado a objetos: se basa en clases y objetos
Mundo real
Diccionario
ABAP
Modelo
Base de datos
Base de datos
relacional
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
Modelos de programación:
Datos y funciones
Datos
Datos
Datos
Datos
Datos
Función
Función
Función
Función
Función
Función
Mundo real
Modelo de objeto como
abstracción del mundo real
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
Este modelado se realiza con la herramienta de diccionario de datos ABAP
que permite definir y mantener los datos usados en el sistema SAP estándar
y los desarrollos realizados para el cliente, en otras palabras, contiene toda
la definición de la base de datos.
Consta de los siguientes elementos:
•
Tipos de datos: elementos de datos y dominios
•
Tablas y vistas: para almacenar datos o relacionar tablas
•
Tipo tabla, estructuras, clases/interfaces
•
Ayudas de búsqueda y objetos de bloqueo
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
Comenzando desde lo más particular a lo general.
El lenguaje ABAP provee un grupo de tipos de datos
predefinidos, todos los elementos usados antes están construidos
con base en estos tipos predefinidos, igualmente las variables
definidas en los programas también los utilizan, es decir, son los
ladrillos que permiten construir todo el edificio del diccionario
ABAP y se presentan a continuación:
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
Tipo de
dato
Descripción
Longitud
C
Caracteres
Texto numérico
Fecha (date)
Hora (time)
Hexadecimal
Entero (Integer)
Numérico empacado
(packed number)
Flotante
CHAR Definida por el usuario
Definida por el usuario
8
6
1
Desde -2147483648 a 2147483647
Definir Longitud parte entera y lugares
decimales
Desde +/- 2.2250738585072014E-308 a
1.7976931348623157E+308
N
D
T
X
I
P
F
STRING
XSTRING
Cadena de longitud
variable
Arreglo de bytes de
longitud variable
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
Veamos cómo se utilizan en un programa:
DATA:
v_caracter(50) TYPE c, “declara la variable de tipo carácter y longitud 50
*declara la variable de tipo texto numérico, no se puede utilizar en operaciones aritméticas
v_num_text(10) TYPE n,
v_entero TYPE I, “declara la variable de tipo entero
*declara la variable de 10 de los cuales 2 son decimales
v_num_dec TYPE p LENGTH 10 DECIMALS 2.
Para conocer el detalle de los tipos elementales o cualquier otra
ayuda sobre el lenguaje puede llamarse con F1, ubicando el
cursor sobre el operando TYPE en un programa.
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
Ahora veremos cómo se realiza esto en forma práctica en un programa que
lee todos los campos de las tablas EKKO y EKPO para sumar el valor neto de
un pedido ingresado como parámetro:
*&--------------------------------------------------------*
*& Report ZPRUANG31
*&
*&--------------------------------------------------------*
*& MODULO 3. DICCIONARIO DE DATOS
*& actividad 1- Prueba para el cálculo de cantidad total
pedido
*& con declaración de tipo desde las tablas EKKO / EKPO
*&--------------------------------------------------------*
REPORT ZPRUANG31.
* Declaración de variables globales
DATA: wa_ekko TYPE ekko. "estructura de cabecera pedido
* Tabla y estructura de pos. Pedido
DATA: it_ekpo TYPE STANDARD TABLE OF ekpo,
wa_ekpo TYPE ekpo.
* Declara la variable que suma cantidades
DATA: v_suma TYPE netwr.
* Declara parámetro de entrada
PARAMETERS: p_ebeln TYPE ebeln. "Numero pedido
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
*---------- Inicio de procesos -----------*
START-OF-SELECTION.
"Inicio del programa
CLEAR v_suma.
* Lee datos de cabecera del pedido
SELECT SINGLE *
FROM ekko
INTO wa_ekko
WHERE ebeln = p_ebeln.
IF sy-subrc = 0.
WRITE:'Documento ', wa_ekko-ebeln,
'Sociedad ', wa_ekko-bukrs,
'Fecha ',
wa_ekko-aedat.
*
lee las posiciones de pedidos
SELECT *
INTO TABLE it_ekpo
FROM ekpo
WHERE ebeln = wa_ekko-ebeln.
IF sy-subrc = 0.
*
recorre la tabla de posiciones de pedido
LOOP AT it_ekpo INTO wa_ekpo WHERE ebeln = wa_ekkoebeln.
ADD wa_ekpo-netwr TO v_suma.
WRITE:/ 'Posición:', wa_ekpo-ebelp,
'Centro:', wa_ekpo-werks,
'Material:', wa_ekpo-matnr,
'Descripción:', wa_ekpo-txz01.
Diccionario de datos - Lección 1
TIPOS DE DATOS ELEMENTALES DE ABAP
ENDLOOP.
WRITE:/ 'Cantidad total = ', v_suma.
ENDIF.
ELSE.
WRITE 'NO EXISTE PEDIDO'.
ENDIF.
Como puede verse, en el código se ha definido una
estructura WA_EKKO con base en la tabla EKKO y una
tabla IT_EKPO con base en la tabla EKPO,
adicionalmente para llenar los campos se utiliza
SELECT *.