
Você já aprendeu que uma definição de tabela de banco de dados no ABAP Dictionary corresponde a uma tabela física no banco de dados. As modificações no objeto Dictionary são transmitidas para o objeto de banco de dados durante a ativação (ALTER TABLE) ou por meio do procedimento de ajuste do banco de dados.
As estruturas append são uma técnica que permite adicionar campos a uma tabela de banco de dados sem modificar realmente a definição de tabela no ABAP Dictionary.

Consideremos uma tabela de banco de dados definida por um provedor de software, por exemplo, SAP. Um cliente ou parceiro quer adicionar campos a esta tabela de banco de dados.
Em vez de adicionar os campos à definição de tabela de banco de dados no Dictionary, eles criam uma estrutura append. A estrutura append é um objeto Dictionary separado, pertencente e atualizado pelo cliente ou parceiro. Tecnicamente, é um tipo de estrutura no ABAP Dictionary. No entanto, ele está ligado à definição de tabela de banco de dados e define campos adicionais para a tabela de banco de dados relacionada. Quando a estrutura append é ativada, seus componentes são adicionados como campos à tabela no banco de dados.
Você pode dizer que a tabela no banco de dados é definida por dois objetos Dictionary: a definição da tabela de banco de dados e a estrutura append.
Nota
Uma estrutura append pertence exatamente a uma tabela de banco de dados. No entanto, uma tabela de banco de dados pode ter várias estruturas append.
No ABAP Cloud, você só pode criar um append se o provedor de software tiver liberado a definição de tabela para ampliação.

Mas o que acontece se o provedor de software enviar uma nova versão da definição de tabela de banco de dados?
Consideremos que, em um release futuro, a tabela de banco de dados conterá um campo adicional. A solução é simples: durante o upgrade, o novo campo é simplesmente adicionado ao catálogo de campos da tabela de banco de dados, usando a instrução ALTER TABLE. A sequência de campos diferente no banco de dados e no dicionário não é um problema para o ambiente ABAP.

Aqui está um exemplo para uma estrutura append.
O código à esquerda exibe a definição da tabela de banco de dados /DMO/AGENCY. O código à direita exibe a definição da estrutura append Z00_EXT_AGENCY. A ligação entre os dois objetos Dictionary é estabelecida na estrutura append, mencionando a tabela de banco de dados após a palavra-chave EXTEND TYPE.
A estrutura append tem um componente zzcategory. Ele é adicionado à lista de campos da tabela de banco de dados /DMO/AGENCY.
Existe uma razão pela qual o componente da estrutura append começa com "ZZ". Os campos de tabela e os componentes de estrutura que começam com "ZZ" ou "YY" se encontram no espaço de nomes de cliente. A SAP garante que as tabelas enviadas pela SAP nunca conterão campos no espaço de nomes de cliente. Ao selecionar nomes de campo no espaço de nomes de cliente, os clientes podem evitar conflitos de nome de campo se a SAP adicionar novos campos à tabela de destino.

A técnica append não só funciona para definições de tabela de banco de dados. Você também pode utilizar estruturas append para adicionar componentes a um tipo de estrutura.
Neste exemplo, a estrutura append à direita amplia a estrutura Dictionary /DMO/S_EXT_INCL_AGENCY com um campo ZZCATEGORYZAG.


