Exploración del Dictionary ABAP

Objectives

After completing this lesson, you will be able to:
  • Describa las tareas básicas del Dictionary ABAP.
  • Nombre los objetos de Dictionary más importantes.

Funciones de Dictionary ABAP

Dictionary ABAP en el mundo ABAP clásico

Reproduzca el vídeo para obtener información sobre las tareas del Dictionary ABAP.

Echemos un vistazo más de cerca a estas tareas.

Una definición de tabla de base de datos en el Dictionary ABAP es una representación de la tabla en la base de datos. Es independiente de los detalles de la base de datos. Como ejemplo, utiliza sus propios tipos integrados y no los tipos específicos de BD. La definición contiene la lista de campos de la tabla y propiedades de tabla adicionales.

Cuando el código ABAP accede a la tabla de base de datos en una sentencia ABAP SQL, la verificación de sintaxis ABAP analiza la definición en el Dictionary ABAP. Entre otras cosas, se asegura de que la tabla y los campos de tabla existan.

En tiempo de ejecución, la interfaz de base de datos convierte la sentencia ABAP SQL en la sintaxis SQL específica de la base de datos y la envía a la base de datos. Para ello, también consulta la definición de tabla en el Dictionary ABAP.

Nota

En el pasado, las vistas de base de datos se trataban de la misma manera. Pero esas vistas de Dictionary ABAP están obsoletas y en su lugar se utilizan las vistas de ABAP Core Data Services (consulte la siguiente lección).

La segunda tarea del Dictionary ABAP es proporcionar tipos de datos para el código ABAP. Los tipos de datos definidos en el Dictionary ABAP son visibles en todo el sistema. Esto los distingue de los tipos de datos definidos con la palabra clave ABAP TYPES.

Los tipos de Dictionary ABAP pueden ser tipos escalares (elementos de datos), tipos de estructura (estructuras) y tipos de tabla. Las definiciones de las tablas de base de datos tienen un doble rol: en primer lugar, definen un objeto de base de datos, pero además, también pueden servir como tipos de datos en el código ABAP.

Nota

En general, no se recomienda el uso de definiciones de tabla de base de datos como tipos de datos. En su lugar, utilice tipos de estructura dedicados.

En las tecnologías IU ABAP clásicas, el Dictionary ABAP cumplió una tercera tarea. Los objetos de Dictionary, en su mayoría tipos de estructura y definiciones de tabla de base de datos, se enriquecieron con información semántica, como relaciones de clave externa y vinculaciones de ayuda para búsqueda. Cuando los elementos de IU hacían referencia a los objetos de diccionario, la información adicional se utilizaba para proporcionar textos de usuario final, ayudas para entradas, verificaciones de entrada, etc.

Esta tarea del Dictionary ABAP no es relevante para las tecnologías de IU modernas, es decir, el modelo de programación de aplicaciones ABAP RESTful. El modelo de programación de aplicaciones ABAP RESTful utiliza metadatos en entidades CDS para proporcionar servicios para la interfaz de usuario.

En este curso de formación no analizaremos las características del Dictionary ABAP relacionadas con la programación clásica de la IU ABAP. Las técnicas de IU ABAP clásicas están obsoletas y no se admiten en ABAP Cloud.

Objetos del Dictionary ABAP

Permítanos ofrecerle un resumen de los objetos más importantes del Dictionary ABAP.

  • Los dominios no definen objetos de base de datos ni son tipos de datos ABAP. Solo se utilizan indirectamente, dentro de los elementos de datos.

  • Los elementos de datos, las estructuras y los tipos de tabla definen tipos de datos ABAP. No definen objetos de base de datos propios.

  • El objetivo principal de las definiciones de tabla de base de datos y las vistas de base de datos es la definición de un objeto de base de datos correspondiente. También puede utilizarlos como tipos de datos, pero no se recomienda. Las vistas de Dictionary están obsoletas y debería utilizar vistas CDS en su lugar.

En el Explorador de proyectos de ADT, encontrará los objetos de Dictionary en el paquete de desarrollo, en un nodo dedicado Dictionary.