
Ya ha aprendido que una definición de tabla de base de datos en el Dictionary ABAP corresponde a una tabla física en la base de datos. Las modificaciones en el objeto de Dictionary se transmiten al objeto de base de datos durante la activación (ALTER TABLE) o mediante el procedimiento de ajuste de base de datos.
Las estructuras append son una técnica que permite añadir campos a una tabla de base de datos sin modificar realmente la definición de tabla en el Dictionary ABAP.

Consideremos una tabla de base de datos definida por un proveedor de software, por ejemplo, SAP. Un cliente o socio desea añadir campos a esta tabla de base de datos.
En lugar de añadir los campos a la definición de la tabla de base de datos en el Dictionary ABAP, crean una estructura append. La estructura append es un objeto de diccionario separado, propiedad del cliente o interlocutor y actualizado por este. Técnicamente, es un tipo de estructura en el Dictionary ABAP. Sin embargo, está vinculado a la definición de tabla de base de datos y define campos adicionales para la tabla de base de datos relacionada. Cuando se activa la estructura append, sus componentes se añaden como campos a la tabla de la base de datos.
Puede decir que la tabla de la base de datos está definida por dos objetos de Dictionary: la definición de tabla de base de datos y la estructura append.
Nota
Una estructura append pertenece exactamente a una tabla de base de datos. Sin embargo, una tabla de base de datos puede tener varias estructuras append.
En ABAP Cloud, solo puede crear una estructura append si el proveedor de software ha liberado la definición de tabla para la ampliación.

Pero, ¿qué sucede si el proveedor de software envía una nueva versión de la definición de tabla de base de datos?
Tenga en cuenta que en una versión futura, la tabla de base de datos contendrá un campo adicional. La solución es sencilla: durante la actualización, el nuevo campo simplemente se añade al catálogo de campos de la tabla de base de datos mediante la sentencia ALTER TABLE. La secuencia de campos diferente en la base de datos y en el Dictionary ABAP no es un problema para el entorno ABAP.

Este es un ejemplo de una estructura append.
El código de la izquierda muestra la definición de la tabla de base de datos /DMO/AGENCY. El código de la derecha muestra la definición de la estructura append Z00_EXT_AGENCY. El enlace entre los dos objetos de diccionario se establece en la estructura append mencionando la tabla de base de datos después de la palabra clave EXTEND TYPE.
La estructura append tiene un componente zzcategory. Se añade a la lista de campos de la tabla de base de datos /DMO/AGENCY.
Existe un motivo por el que el componente de la estructura append empieza por "ZZ". Los campos de tabla y los componentes de estructura que empiezan por "ZZ" o "YY" se encuentran en el área de nombres de cliente. SAP garantiza que las tablas suministradas por SAP nunca contengan campos en el área de nombres de cliente. Al seleccionar nombres de campo en el área de nombres de cliente, los clientes pueden evitar conflictos de nombres de campo si SAP añade campos nuevos a la tabla de destino.

La técnica append no solo funciona para definiciones de tabla de base de datos. También puede utilizar estructuras append para añadir componentes a un tipo de estructura.
En este ejemplo, la estructura append de la derecha amplía la estructura del diccionario /DMO/S_EXT_INCL_AGENCY con un campo ZZCATEGORYZAG.


