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 *.