Criar tabelas de banco de dados

Objectives

After completing this lesson, you will be able to:
  • Criar uma definição de tabela.
  • Edite a lista de campos de uma tabela de banco de dados.
  • Atualizar características de tabela adicionais.
  • Definir e utilizar estruturas include.

Criação de definição de tabela

Quando você cria uma definição de tabela de banco de dados, o editor começa a partir de um modelo que ilustra o layout básico do texto fonte. Ele é composto pelas três partes seguintes:

Atributos de tabela semântica

As linhas de código que começam com o sinal @ são chamadas de anotações e definem atributos de tabela semântica. Os atributos semânticos são predefinidos para os valores mais comuns. Falaremos sobre eles mais tarde neste curso.

Definir instrução de tabela

A instrução define table é seguida pelo nome da tabela de banco de dados. Você indica este nome quando cria o objeto de desenvolvimento. A modificação no texto fonte leva a um erro de sintaxe.

Lista de campos

O par de parênteses após o nome da tabela contém a lista de campos da tabela. Cada definição de campo termina com um ponto-e-vírgula ( ; ) e é composta por um nome de campo e um tipo de campo separados por dois pontos ( : ). O modelo para definições de tabela de banco de dados sugere um primeiro campo de tabela com nome mandante e tipo abap.clnt. Mantenha este campo para garantir que sua tabela permaneça dependente do mandante.

Como criar uma nova definição de tabela

Assista ao vídeo para ver como criar uma nova definição de tabela.

Processamento da lista de campos

Quando você processa a lista de campos de uma tabela de banco de dados, recomenda-se a utilização de elementos de dados. Se o elemento de dados já existir, você pode começar digitando o respectivo nome após o sinal de dois pontos e, em seguida, pressionar Ctrl + Enter para ver uma lista de elementos de dados correspondentes. Role para cima e para baixo na lista para exibir detalhes dos elementos de dados, por exemplo, o tipo de base, a descrição e os textos de denominador de campo.

Se não existir nenhum elemento de dados que você queira utilizar, você pode criar um diretamente utilizando uma solução rápida. Quando você insere um nome de tipo que não corresponde a um elemento de dados, é exibida uma mensagem de erro. Esta mensagem de erro vem com uma correção rápida. Clique no ícone de erro à esquerda desta linha de código ou posicione o cursor no nome do tipo e pressione Ctrl + 1 para chamar a correção rápida.

Nota

A mensagem de erro indica: Campo <nome do campo>: Tipo de componente ou domínio usado não ativo ou não existe. Não deixe isso te confundir. Não é possível utilizar domínios diretamente na lista de campos de tabelas de banco de dados.

Toda tabela de banco de dados precisa de uma chave primária. A chave primária é uma identificação única para uma linha de tabela. Ele consiste em um subconjunto de campos de tabela chamados campos-chave. O índice primário é criado para a chave primária da tabela. Este índice fornece um acesso de chave otimizado às linhas da tabela quando são indicados valores para os campos-chave.

Na definição de tabela de banco de dados, você marca um campo como campo-chave indicando a chave adicional antes de um nome de campo de tabela. Pelo menos um campo de tabela deve ser marcado como campo-chave e pode existir um máximo de 16 campos-chave em cada tabela. Os campos-chave de uma tabela devem estar localizados juntos no início da tabela, o que significa que não são permitidos campos não chave entre dois campos-chave.

Um valor nulo é um valor especial retornado por um banco de dados para indicar um valor ou resultado indefinido. Os valores nulos não correspondem a nenhum conteúdo de objetos de dados no ABAP. Se o banco de dados retornar um valor nulo, ele será substituído pelo valor inicial específico de tipo no ABAP.

Originalmente, a adição NOT NULL foi usada para impor o valor inicial específico do tipo no banco de dados para evitar confusão entre valores iniciais e valores nulos. Ao adicionar NOT NULL a um campo de tabela, o desenvolvedor assegurou que a coluna da tabela não poderia conter valores nulos. Isto foi particularmente importante para chaves primárias. Por isso, a adição NOT NULL tornou-se obrigatória para campos-chave.

Hoje, a adição NOT NULL ainda é obrigatória para campos-chave, mas não tem mais efeito. A ferramenta de dicionário aplica o valor inicial específico do tipo para quase todos os campos, independentemente de você adicionar NOT NULL ou não.

A única exceção são campos de determinados tipos, ou seja, aqueles para os quais não existe um valor inicial. Para esses campos, tecnicamente não é possível forçar valores iniciais. Como consequência, o editor não permite que você adicione NOT NULL a esses campos. No exemplo, o elemento de dados /DMO/email_address é baseado no tipo predefinido STRG. O tipo STRG é um dos tipos predefinidos para os quais não existe um valor inicial. Quando você adiciona NOT NULL ao campo email_address, o editor emite um erro de sintaxe.

Nota

Você não precisa adicionar manualmente NOT NULL a campos-chave. Se durante a ativação o código NOT NULL estiver em falta para um campo-chave, o editor o adiciona automaticamente.

Os campos de montante são campos baseados no tipo predefinido CURR. Os campos de montante em definições de tabela de banco de dados requerem uma referência a um campo de código de moeda. Os campos de código da moeda são baseados no tipo predefinido CUKY. No exemplo, o campo PRICE é um campo de montante e o campo CURRENCY_CODE é um campo de código de moeda. A referência é definida com a anotação @Semantics.amount.currencyCode antes do campo de montante. O argumento da anotação contém o nome da tabela mais o nome do campo de código de moeda separado por um sinal de ponto (.).

Nota

Normalmente, os campos de montante e código de moeda estão localizados na mesma tabela de banco de dados, como no nosso exemplo. No entanto, também é possível referenciar um campo de código de moeda em outra tabela de banco de dados.

De modo semelhante, os campos de quantidade, com base no tipo predefinido QUAN, requerem uma referência a um campo de unidade, com base no tipo predefinido UNIT. A anotação correspondente para campos de quantidade é @Semantics.quantity.unitOfMeasure.

Nota

Os frameworks de IU clássicos foram criados diretamente no topo dos objetos Dictionary. Eles avaliaram os campos referenciados para ajustar a exibição de montantes e quantidades com base no código da moeda ou unidade. Veremos mais tarde que, para IUs modernas que são criadas com base em visões CDS, anotações semelhantes estão disponíveis para campos de montante e quantidade em visões CDS.

Correções rápidas para campos de montante e quantidade

Assista ao vídeo para saber mais sobre soluções rápidas para os campos Montante e Quantidade.

Como editar a lista de campos

Assista ao vídeo para ver como editar a lista de campos de uma nova tabela de banco de dados criada.

Propriedades adicionais da tabela

A lista de campos é uma parte muito importante de uma definição de tabela de banco de dados. Mas você deve fornecer mais informações para definir uma tabela de banco de dados. Você define as características de tabela com as seguintes técnicas:

Anotações

Anotações são linhas de código que começam com o sinal @. As anotações fazem parte da própria definição de tabela e definem propriedades técnicas e semânticas.

Configurações técnicas de tabela

As configurações técnicas de tabela constituem um objeto de desenvolvimento independente e podem ser ativadas e transportadas separadamente da tabela. Eles definem características da tabela de banco de dados física e influenciam o acesso via ABAP SQL.

Nota

Quando você cria uma nova tabela de banco de dados, o editor define as propriedades da tabela como os valores mais comuns. Isso permite que você ative a tabela sem editar as características da tabela. Mas você deve sempre garantir que os valores propostos são adequados para sua tabela e modificá-los, se necessário.

Anotações de tabela

Assista ao vídeo para saber mais sobre anotações de tabela.

Algumas propriedades de tabela não são mantidas usando anotações, mas com um editor dedicado baseado em formulário. Para abrir este editor de Configurações de tabela técnica, clique com o botão direito do mouse em qualquer lugar na definição de tabela do banco de dados e selecione Abrir outros→Configurações técnicas.

Dica

As configurações técnicas de tabela também são exibidas no Explorador de projetos como um subelemento da tabela de banco de dados.

O diálogo Configurações técnicas de tabela é composto pelas três seções seguintes:

General Settings

O objetivo principal das configurações gerais é influenciar a forma como a tabela é criada no banco de dados. O fato de uma determinada configuração ser ou não transferida para o banco de dados depende do sistema de banco de dados. A classe de dados, por exemplo, não tem mais efeito com o SAP HANA como um sistema de banco de dados. Contudo, é sempre obrigatório fornecer um valor.

Armazenamento em buffer

Com as configurações de armazenamento em buffer, você define como e se o armazenamento em buffer de uma tabela de banco de dados Dictionary é permitido no buffer de tabela de uma instância do servidor de aplicação. Quando as tabelas com armazenamento em buffer ativo são acessadas usando ABAP SQL, o buffer de tabela é usado implicitamente.

Modificações de dados

Se o registro em log estiver ativado nesta seção, todas as modificações nas entradas em tabela efetuadas no ABAP SQL são registradas em log na tabela de log DBTABLOG. Existem vários pré-requisitos e restrições. Os detalhes podem ser encontrados na documentação ABAP.

Este mecanismo de registro em log deve ser restringido a tabelas de banco de dados muito importantes que só são modificadas raramente. Uma vez que as modificações de dados de todas as tabelas com este código são registradas em log na mesma tabela de banco de dados, podem ocorrer situações de bloqueio para a tabela de log. Em geral, o registro em log deve ser efetuado pela lógica de aplicação.

As configurações gerais podem ser utilizadas para influenciar a forma como a tabela é criada no banco de dados. No entanto, nem todas as configurações têm influência. Depende do sistema de banco de dados se uma determinada configuração técnica é realmente transferida para o banco de dados ou não.

Existem as seguintes configurações gerais:

Data Class

A classe de dados só tem efeito para bancos de dados Oracle. Ele é ignorado por todos os outros bancos de dados, especialmente pelo SAP HANA. Ainda é obrigatório, mas somente como meio de documentação. As classes de dados mais importantes para dados de aplicação são:

  • APPL0 (dados mestre) - dados que raramente são modificados. Um exemplo de dados mestre são dados em uma tabela de endereços, como nomes, endereços postais e números de telefone.
  • APPL1 (dados de movimento) - dados que são modificados frequentemente. Um exemplo de dados de movimento é o estoque em depósito que é modificado cada vez que uma ordem é efetuada.
  • APPL2 (dados organizacionais) - dados do customizing indicados quando o sistema é configurado e, em seguida, modificados somente raramente. Um exemplo é a tabela T005 que contém os códigos de país.

Existem outras classes de dados para tabelas de sistema usadas internamente por frameworks de tempo de execução, como DDIC para tabelas ABAP Dictionary.

Size Category

A categoria de tamanho afeta o tamanho da área de memória inicial reservada para a tabela no banco de dados. Podem ser indicados valores entre 0 e 9 e intervalos de linhas previstas são atribuídos a esses valores. Os limites de intervalo atribuídos a cada categoria de tamanho dependem da estrutura da tabela de banco de dados. Se o espaço inicial reservado for excedido, uma nova área de memória é adicionada implicitamente de acordo com a categoria de tamanho selecionada.

Dica

Deve ser selecionada uma categoria de tamanho adequada para evitar demasiadas áreas de memória pequenas ou uma área de memória demasiado grande.

Tipo de depósito

O tipo de arquivamento só tem efeito se o banco de dados atual for um banco de dados SAP HANA. As seguintes configurações podem ser definidas para o banco de dados SAP HANA:

  • Armazenamento em colunas - esta configuração deve ser usada nos seguintes casos:

    • A tabela de banco de dados DDIC foi concebida para dados de aplicação analisados em SAP HANA.
    • A tabela de banco de dados DDIC contém um número muito grande de linhas, uma vez que o tipo de arquivamento Armazenamento em colunas fornece uma compressão melhor.
    • A tabela de banco de dados DDIC contém campos de tabela com tipos de dados SAP HANA que só são suportados pelo armazenamento em colunas do tipo de armazenamento.
  • Armazenamento em linhas - Esta configuração só deve ser usada em bancos de dados SAP HANA se a tabela de banco de dados for usada principalmente para acessos frequentes a linhas individuais.

Dica

Para obter mais informações sobre as diferenças entre o armazenamento em linhas e o armazenamento em colunas no banco de dados SAP HANA, consulte a documentação do SAP HANA.

Unidade de carga

A unidade de carga só tem efeito se o banco de dados atual for um banco de dados SAP HANA. A unidade de carga de uma tabela indica como os dados da tabela são carregados para a memória principal do banco de dados SAP HANA. O banco de dados SAP HANA oferece as seguintes configurações:

  • Coluna carregável – a tabela completa é considerada in-memory. Os dados da tabela são carregados após o início do sistema em um formato orientado por colunas para a memória principal do banco de dados SAP HANA. Este é o comportamento padrão.
  • Page Loadable – Ao usar um recurso do banco de dados SAP HANA chamado Native Storage Extension (NSE), os dados da tabela são armazenados em disco em páginas e não em colunas. Estas páginas só são carregadas mediante solicitação para um buffer especial na memória principal SAP HANA. Os dados não utilizados no buffer podem ser paginados.

Normalmente, o Page Loadable é usado para tabelas grandes com acessos menos frequentes.

No dicionário, você pode forçar uma determinada configuração de unidade de carga ou apenas defini-la como preferida, permitindo uma configuração diferente no banco de dados.

Dica

Para obter mais informações sobre a ampliação do armazenamento nativo no banco de dados SAP HANA, consulte a documentação do SAP HANA.

Como atualizar as configurações técnicas de tabela

Reproduza o vídeo para ver como atualizar as configurações técnicas de tabela de uma definição de tabela de banco de dados.

Tabelas de banco de dados com estruturas include

As estruturas include são uma técnica onde você pode adicionar um subconjunto inteiro de campos à lista de campos de uma tabela de banco de dados. Primeiro, você define um objeto de desenvolvimento do tipo Estrutura com os campos que pretende adicionar à tabela de banco de dados. Este objeto de desenvolvimento não define um objeto de banco de dados. Mas quando você o referencia na lista de campos usando a instrução INCLUDE, a tabela no banco de dados terá os campos definidos na estrutura na posição da instrução INCLUDE.

No exemplo, a estrutura define três campos. A definição de tabela define quatro campos com uma instrução include entre o segundo e terceiro campo. A tabela no banco de dados tem, então, sete colunas.

Um caso de utilização comum para esta técnica é um modelo de dados em que você quer garantir que várias tabelas de banco de dados contêm o mesmo subconjunto de campos com tipos idênticos.

Nos próximos exemplos, usaremos uma estrutura include para adicionar campos administrativos para usuários e registros da hora a uma tabela de banco de dados.

Nota

Esses campos administrativos desempenham um papel importante no modelo de programação de aplicação ABAP RESTful.

Esta é a definição de uma estrutura com cinco campos, dois para nomes de usuário e três para diferentes registros da hora.

Como você pode ver, a definição da estrutura é muito semelhante a uma definição de tabela de banco de dados. A principal diferença é a palavra-chave define structure em vez de define table e a falta de muitas anotações que eram obrigatórias para uma tabela de banco de dados.

Os cinco campos da estrutura são adicionados à lista de campos da tabela de banco de dados com a palavra-chave INCLUDE, seguidos pelo nome da estrutura.

Dica

Utilize a funcionalidade de preenchimento automático do editor (Ctrl + Espaço) para selecionar a partir das estruturas existentes.

Considere que os campos não são copiados. A definição da tabela de banco de dados referencia os campos da estrutura. Isso significa que, quando você editar posteriormente a lista de campos da estrutura, a lista de campos da tabela de banco de dados será atualizada imediatamente.

Uma forma conveniente de verificar o resultado é a exibição de informação rápida para a tabela de banco de dados. Posicione o cursor no nome da tabela de banco de dados e pressione a tecla F2. Como você pode ver, a lista de campos da tabela de banco de dados contém os cinco campos da estrutura include.

Como definir e utilizar uma estrutura include

Assista ao vídeo para ver como definir e usar uma estrutura de inclusão.

Criar uma definição de tabela de banco de dados

Pretende-se criar um modelo de dados próprio. Neste exercício, você define uma tabela de banco de dados para dados do empregado.

Modelo:

  • n.a.

Solução:

  • /LRN/EMPLOY (Definição de tabela de banco de dados)
  • /LRN/BIRTH_DATE (Elemento de dados)
  • /LRN/ENTRY_DATE (Elemento de dados)

Tarefa 1: Definir uma tabela de banco de dados

Crie uma nova definição de tabela de banco de dados Z##EMPLOY, em que ## é seu número de grupo.

Além do campo de mandante, adicione os seguintes campos:

Nome do campoData Element
employee_idZ##_EMPLOYEE_ID (criado no exercício anterior)
first_name/DMO/FIRST_NAME
last_name/DMO/LAST_NAME
data de nascimento_dataZ##_BIRTH_DATE (novo, baseado no domínio /DMO/DATE)
data_entradaZ##_ENTRY_DATE ((novo, baseado no domínio /DMO/DATE)
anual_salárioZ##_ANNUAL_SALARY (criado no exercício anterior)
código_moedaWAERS

Dica

Se você não concluiu o exercício anterior, pode utilizar os elementos de dados /LRN/EMPLOYEE_ID e /LRN/ANNUAL_SALARY em vez de seus próprios elementos de dados.

Etapas

  1. Crie um novo objeto de desenvolvimento do tipo Tabela de banco de dados (nome sugerido: Z##EMPLOY).

    1. No Explorador de projetos, expanda seu pacote e abra o menu de contexto no subnó Dicionário.

    2. Selecione Nova→tabela de banco de dados.

    3. Confirme o pacote, insira o nome Z##EMPLOY e a descrição Empregado e, em seguida, selecione Seguinte.

    4. Atribua o novo objeto a uma ordem de transporte e selecione Concluir.

    5. O código da definição de tabela de banco de dados deve ter o seguinte aspecto:

      Code Snippet
      123456789101112
      @EndUserText.label : 'Employee' @AbapCatalog.enhancement.category : #NOT_EXTENSIBLE @AbapCatalog.tableCategory : #TRANSPARENT @AbapCatalog.deliveryClass : #A @AbapCatalog.dataMaintenance : #RESTRICTED define table z##employ { key client : abap.clnt not null; }
  2. Após o campo do cliente, adicione um segundo campo-chave employee_id e digite-o com o elemento de dados Z##_EMPLOYEE_ID. Use code completion para inserir o nome do elemento de dados.

    Nota

    Se você não concluiu o exercício anterior, utilize o elemento de dados /LRN/EMPLOYEE_ID.
    1. Ajuste o código da seguinte forma:

      Code Snippet
      12345678
      define table z##employ { key client : abap.clnt not null; key employee_id : z##_employee_id; }
  3. Adicione os seguintes campos não chave. Utilize code completion para inserir os nomes dos elementos de dados existentes.

    Nome do campoData Element
    first_name/DMO/FIRST_NAME
    last_name/DMO/LAST_NAME
    1. Ajuste o código da seguinte forma:

      Code Snippet
      12345678910
      define table z##employ { key client : abap.clnt not null; key employee_id : z##_employee_id; first_name : /dmo/first_name; last_name : /dmo/last_name; }
  4. Adicione os seguintes campos e use uma correção rápida para criar os novos elementos de dados:

    Nome do campoData Element
    data de nascimento_dataZ##_BIRTH_DATE
    data_entradaZ##_ENTRY_DATE

    Para os dois elementos de dados, utilize o domínio existente /DMO/DATE como tipo de dados.

    1. No final da lista de elementos, adicione birth_date : z##_birth_date; (sendo ## seu número de grupo).

    2. Abra a visão Problemas. Você deve ver um erro Campo BIRTH_DATE: o tipo de componente ou domínio utilizado não está ativo ou não existe.

    3. posicione o cursor emz##_birth_date e pressione Ctrl + 1 para abrir o menu de solução rápida.

    4. No menu de solução rápida, clique duas vezes em Criar elemento de dados ....

    5. Confirme o pacote e o nome, insira uma descrição, por exemplo, Data de nascimento, e selecione Seguinte.

    6. Atribua o novo objeto a uma ordem de transporte e selecione Concluir.

    7. Em Nome do tipo, insira /DMO/DATE e insira os seguintes denominadores de campo:

      CampoValor
      CurtoNascido
      MédioNascido em
      LongoData de nascimento
      TítuloData de nascimento
    8. Ative o novo elemento de dados e retorne à tabela de banco de dados Z##EMPLOY.

    9. Em uma nova linha de código, adicioneentry_date : z##_entry_date; e utilize a correção rápida novamente para criar o elemento de dados Z##_ENTRY_DATE utilizando o mesmo domínio, mas com os seguintes denominadores de campo:

      CampoValor
      CurtoData de entrada
      MédioData de entrada da empresa
      LongoFunciona para a empresa desde então
      TítuloFunciona para a empresa desde então
  5. Adicione os seguintes campos de valor e código da moeda e use uma correção rápida para adicionar a anotação @Semantics.amount.currencyCode: para a referência ao campo do código da moeda.

    Nome do campoData Element
    anual_salárioZ##_ANNUAL_SALARY
    código_moedaWAERS
    1. Ajuste o código da seguinte forma:

      Code Snippet
      12345678910111213
      define table z##employ { key client : abap.clnt not null; key employee_id : z##_employee_id; first_name : /dmo/first_name; last_name : /dmo/last_name; birth_date : z##_birth_date; entry_date : z##_entry_date; annual_salary : z##_annual_salary; currency_code : waers; }
    2. Posicione o cursor sobre o ícone de erro ao lado de annual_salary para ver a mensagem de erro Anotação com referência ao código de moeda para o campo ANNUAL_SALARY em falta.

    3. Selecione o ícone de erro para abrir o menu de solução rápida.

    4. Selecione Atribuir referência de código de moeda ao campo currency_code.

    5. Certifique-se de que a correção rápida ajustou o código da seguinte forma:

      Code Snippet
      12345678910111213
      define table z##employ { key client : abap.clnt not null; key employee_id : z##_employee_id; first_name : /dmo/first_name; last_name : /dmo/last_name; birth_date : z##_birth_date; entry_date : z##_entry_date; @Semantics.amount.currencyCode : 'z##_employ.currency_code' annual_salary : z##_annual_salary; currency_code : waers; }
  6. Atualize as configurações técnicas da tabela. Utilize as entradas possíveis para selecionar valores adequados para a classe de dados e a categoria de tamanho.

    Nota

    Esperamos que a tabela contenha entre 50 mil e 60 mil conjuntos de dados.
    1. Clique com o botão direito do mouse em qualquer lugar do editor e selecione Abrir outros→Configurações técnicas.

    2. Posicione o cursor no início do campo Classe de dados e pressione Ctrl + espaço para exibir as entradas possíveis.

    3. Selecione APPL0 Dados mestre, tabela transparente.

    4. Repita com o campo Categoria de tamanho e selecione 3 Registros previstos 43.000 - 170.000.

  7. Ative as configurações técnicas de tabela e a definição de tabela de banco de dados.

    1. Enquanto ainda estiver na caixa de diálogo Configurações técnicas de tabela, pressione Ctrl + F3 para ativar as configurações técnicas da tabela.

    2. Retorne ao editor com o texto fonte da definição de tabela de banco de dados e pressione Ctrl + F3 para ativar a definição de tabela de banco de dados.

Tarefa 2: Incluir uma estrutura

Analise a estrutura Dictionary /LRN/S_ADMIN e inclua-a na lista de campos da sua definição de tabela de banco de dados.

Dica

Os campos administrativos nesta estrutura desempenham um papel importante no modelo de programação de aplicação ABAP RESTful. Consulte a unidade correspondente do curso Programação ABAP básica para obter mais informações.

Etapas

  1. Abra a definição do tipo de estrutura /LRN/S_ADMIN.

    1. Na barra de ferramentas eclipse, selecione Abrir objeto de desenvolvimento ABAP. Como alternativa, pressione Ctrl + Shift + A.

    2. Insira /LRN/S_ADMIN e pressione Enter.

  2. Analise a lista de componentes da estrutura e os tipos de dados referenciados.

    1. Na linha que começa com define structure, posicione o cursor em /lrn/s_admin e pressione F2 para exibir as Informações do elemento de código.

  3. Processe a lista de campos na definição de tabela de banco de dados Z##_EMPLOYEE. Utilize code completion para incluir a estrutura /LRN/S_ADMIN no final da lista de campos.

    1. Antes de fechar a chave, insira e pressione Ctrl + espaço para chamar a conclusão do código.

    2. Na lista de sugestões, selecione o modelo includeStructure - Include Structure.

    3. Substitua o caractere de preenchimento other_structure_name por Z##S e pressione Ctrl + Espaço.

    4. Na lista de sugestões, selecione Z##S_ADMIN.

    5. Certifique-se de que o código agora tenha a seguinte aparência:

      Code Snippet
      12345
      currency_code : waers; include /lrn/s_admin; }
  4. Exiba a Informação de elemento de código para sua tabela de banco de dados e analise a lista de campos.

    1. Na linha de código que começa com define table, posicione o cursor no nome da tabela e pressione F2.

    2. Confirme que os cinco componentes da estrutura /LRN/S_ADMIN são agora campos da sua tabela de banco de dados.

  5. Ativar todos os objetos de desenvolvimento inativos.

    1. Na barra de ferramentas eclipse, selecione Ativar objetos de desenvolvimento ABAP inativos. Como alternativa, pressione Ctrl + Shift + F3.

    2. Selecione Selecionar tudo e Ativar.

Tarefa 3: Preencher a tabela

Preencha sua nova tabela de banco de dados com alguns dados de exemplo. Para isso, crie uma cópia da classe ABAP /LRN/CL_S4D430_CHECK_AND_FILL (nome sugerido: ZCL_##_CHECK_AND_FILL, em que ## é seu número de grupo), ajuste o valor da constante c_Employ_table e execute a classe como app de console.

Etapas

  1. Crie uma cópia da classe ABAP /LRN/CL_S4D430_CHECK_AND_FILL, nomeie-a como Z##_S4D430_CHECK_AND_FILL e coloque-a em seu pacote ZS4D430_##.

    1. Na visão Explorador de projetos, localize a classe /LRN/CL_S4D430_CHECK_AND_FILL no pacote /LRN/S4D430_EXERCISE e clique com o botão direito nele para abrir o menu de contexto.

    2. No menu de contexto, selecione Duplicar.

    3. Insira o nome do seu pacote, o nome da cópia e uma descrição. Em seguida, selecione Seguinte.

    4. Atribua o novo objeto a uma ordem de transporte e selecione Concluir.

  2. Modifique o valor da constante c_Employ_table para o nome da sua tabela de banco de dados.

    1. Role para baixo até a linha de código que começa com CONSTANTS c_employ_table.

    2. No literal após VALUE, substitua ## pelo seu número de grupo.

  3. Ative a classe ABAP e execute-a como um app de console. Se a saída do console contiver erros, ajuste a definição da sua tabela de banco de dados até que ela seja compatível com a definição de tabela do banco de dados /LRN/EMPLOY.

    1. Pressione Ctrl + F3 para ativar o objeto de desenvolvimento.

    2. Pressione F9 para executar a classe ABAP como app de console.

    3. Certifique-se de que a saída do console contenha o texto Tabela preenchida ... para sua tabela de banco de dados.