
Las tablas bases de datos, los elementos de datos y los dominios
1. Los datos en el sistema SAP
El sistema SAP está compuesto por datos pero no todos los datos del sistea son iguales:
* Datos maestros: son datos que no se modifican muy a menudo. Ejemplo: Datos de materiales, cuentas, bancos, clientes, etc
* Datos de movimientos: son datos muy volátiles y con gran volumen de generación: Ejemplo: datos de facturas, de pedidos, datos de documentos, etc.
* Datos del sistema o de control: son datos que tienen que ver con la configuración del sistema
2. Que es el diccionario de datos ABAP
En ABAP existe una herramienta centralizada desde la cual se pueden crear, modificar y visualizar todas las definiciones de datos que existen en el sistema. Nos referimos al Diccionario de datos ABAP.
<< Diccionario de datos ABAP: Es la herramienta de ABAP que permite la administración de todas las definiciones de datos existentes en el sistema SAP.>>
Cuando hablamos de todas las definiciones de datos nos estamos refiriendo tanto a las definiciones estándar del sistema que fueron creadas por SAP como tambien a las definiciones de datos creadas por el usuario, lo que se conoce como Z.
Para acceder al Diccionario de datos ejecutamos la transacción SE11.
**Transacción estándar SE11: Corresponde al diccionario de datos ABAP. Es una de las herramientas más utilizadas de SAP tanto por los consultores técnicos ABAP como por los consultores funcionales de los distintos módulos.**
Tablas bases de datos: Es un objeto de ABAP en el que se almacena en forma permanente la información. Es el componente central del diccionario de datos ABAP. El conjunto de tablas forman lo que se denomina base de datos del sistema. En SAP una tabla base de datos es sinónimo de Tabla Transparente. Cada tabla base de datos está compuesta por filas y columnas. Las filas forman lo que se denominan registros de la tabla base de datos. Las columnas son los campos de la tabla base de datos.
Vistas: Es un objeto de ABAP que consiste en la unión de dos o más tablas base de datos existentes en el diccionario de datos ABAP, utilizando condiciones de unión y selección, que nos van a permitir visualizar datos pertenecientes a varias tablas base de datos, es decir tienen filas y columnas, la unica diferencias es que solo se almacena de ellas la definición y no los datos.
Tipos de datos: Son tipos de datos que podemos crear dentro del diccionario de datos ABAP, los cuales no almacenan información sino que se utilizan como referencia para definir datos en programas o tablas base de datos o para configuración. Dentro de los tipos de datos podemos crear 3 tipos diferentes de objetos que son los siguientes:
> Elemento de datos: Es un tipo de dato que ABAP que define el tipo de datos de una variable en un programa o de un campo dentro de una tabla base de datos.
> Estructura: Es un tipo de dato que no almacena información sino que es un tipo de datos complejo que contiene varios campos. Podemos utilizar una estructura definida en el diccionario de datos ABAP en un programa como referencia para declarar otros tipos de datos.
> Tipo tabla: Es un tipo de dato mediante el cual se puede crear un tipo de tabla interna utilizando el formato de una estructura. Se utilizan en caos específicos dentro de ABAP.
Grupos de tipos: Es un objeto de ABAP que podemos crear para definir dentro de él todos los tipos de datos que utilizamos más comunmente en nuestros programas de modo de poder incluir este grupo de tipos de datos en nuestro desarollo ABAP y no tener que volver a definir todos los tipos de datos nuevamente. Funciona como una especie de INCLUDE de tipos de datos.
Dominios: Es un objeto de ABAP que consiste en la especialización técnica de un campo de una tabla de la base de datos y define lo que se conoce como estructura del campo. Es reutilizable para otros campos. Un dominio tiene asociado un ámbito de valores posibles.
Ayudas para búsqueda: Es un objeto de ABAP que es utilizado para definir posibles valores de ayuda de un campo de una tabla base de datos o de un campo de una pantalla de SAP. Comúnmente todos los parámetros de la pantalla de selección de un programa ABAP presentan ayuda de búsqueda ya que es una forma muy práctica de simplificarle al usuario la tarea de introducir valores correctos en la pantalla de selección.
Objetos de bloqueo: Es un objeto de ABAP que podemos crear para permitir que varios usuarios de SAP puedan actualizar datos de una tabla base de datos en forma concurrente, sin que se pierda información, de modo de garantizar la consistencia de los datos.
3. Como crear una tabla base de datos, un elemento de datos y un dominio
1. Crearemos la tabla base de datos de usuarios de prueba cuyo nombre será ZTABLA_USUARIOS para ellos accedemos al diccionario de datos ABAP correspondiente a la transacción SE11 y en la pantalla incial de la transacción introducimos el nombre de la nueva tabla a la derecha del texto Tabla base de datos y presionamos Crear
2. Completar la descripción breve de la nueva tabla con el texto Tabla de usuarios
3. En la solapa "Entrega y actualización" completamos la clase de entrega con A que significa que la tabla es de aplicación y que tiene datos mastros y de movimientos.
> Otra clase de entrega muy utilizada es la C que se utiliza para tablas de customizing o configuración del sistema, la particularidad que tiene esta clase de entrega es que cada vez que generamos una nueva entrada en una tabla base de datos con clase de entrega C el sistema automáticamente nos ofrece guardar dicha entrada en una orden de transporte de customizing
4. En el campo Browser / Actualización vista tabla elegiremos la opción Visualización / Actualización permitida esto significa que se podrá actualizar el contenido de la tabla base de datos mediante la transacción SM30
<< Transacción estándar SM30: Se utiliza para actualizar los registros de una tabla base de datos. >>
5. En la solapa "Campos" se ingresa los campos que va a tener nuestra tabla base de datos
* Mandante
* DNI
* Nombre_apellido
* Estado_usu
* Direccion
* Fnacimiento
* Nacionalidad
Todas las tablas que creamos deben tener el mandante como primer campo de la tabla. Esto se debe a que los datos almacenados en las tablas bases de datos son dependientes del mandantes, es decir los datos de una tabla en el mandante 300 son diferentes a los datos de la misma tabla en el mandante 200. El mandante debe ser parte de la clave de la tabla base de datos.
6. Tildar los campos que serán los campos claves de la tabla, los cuales no podrán repetirse ni tener valores iniciales o en blanco. En la tabla de prueba los campos claves serán MANDT y DNI
7. Crear los elementos de datos Z_DNI, Z_NOMBRE_APELLIDO, Z_ESTADO_USU, Z_DIRECCION, Z_FINANCIAMIENTO, Z_NACIONALIDAD
*Al crear el elemento de dato, se debe ingresar una despción breve, definir el tipo de dato del elemento (dominio, tipo instalado o tipo referencia). Ejemplo: Tipo instalado, NUMC de 8 posiciones
*Para el campo estado_usu se creará un elemento de datos z_estado_usu y tambien crear el dominio zz_estado_usu para asociarle el ámbito de valores A: Activo, I: Inactivo y N: Anulado
El objetivo de crear un dominio es asociarle un ambito de valores, sino es preferible utilizar un tipo instalado.
8. Ir a la solapa "Denominadores de campo" y actualizar los denominadores de campo que son los títulos con los que se verá el campo cuando se visualice en una transacción o reporte.
<< Al momento de escribir los textos correspondientes a los denominadores de campo (Breve, mediano, largo y cabecera) el sistema automacamente completa la logntiud de cada uno de ellos en base a la cantidad de caracteres que introduzcamos para cada texto >>
9. Activar los elementos de datos mediante el botón de activación,
10. Configurar las opciones técnicas de la tabla base de datos ztabla_usuarios presionando el botón "Opciones Técnicas"
11. Completar la Clase de datos con APPL0 que es la correspondiente a Datos maestros, tablas transparentes
12. Ingresar la Categoria de tamaño con 3 que es el valor correspondiente a una tabla de 78,000 a 310,000 registros de datos
Si queremos que un campo tome los valores de una lista de otra tabla base de datos maestra entonces en el dominio de ese campo colocaremos en la tabla de valores la tabla maestra de donde se tomarán los datos .
13. Activar la tabla base de datos z_tabla_usuarios
14. Definir la Categoría de Ampliación de la tabla base de datos que acabamos de construir
Categoría de Ampliación: Es lo que determina si la tabla base de datos será ampliable en el futuro, es decir si se le podrán agregar campos. Este concepto está ligado con las llamadas Estructuras Append.
Seleccionar la opción del menú Detalles / Categoría de ampliación y seleccionar la opción Ampliable de cualquier manera y dar clic en el botón Tomar
15. Activar nuevamente la tabla sin advertencia