Introducing ABAP Syntax

Objectives

After completing this lesson, you will be able to:
  • Explicar os fundamentos da sintaxe ABAP
  • Definir tipos de dados, variáveis, constantes e literais e instruções encadeadas

Os fundamentos da sintaxe ABAP

Síntese

No final deste módulo, o programador iniciante irá trabalhar com os fundamentos da sintaxe ABAP, como tipos de dados, variáveis, constantes e literais, instruções encadeadas, adicionar comentários ao código-fonte, executar cálculos aritméticos, usar informações do sistema, depurar um programa, criar uma lista ABAP e processar cadeias de caracteres usando a linguagem ABAP.

Características básicas da linguagem ABAP

A linguagem ABAP é composta por frases individuais (instruções). As coisas importantes a serem lembradas sobre instruções ABAP são as seguintes:

  • O código ABAP consiste em instruções individuais
  • A primeira palavra em uma instrução é chamada de palavra-chave ABAP
  • Cada instrução termina com um período
  • Um espaço deve separar duas palavras
  • As instruções podem ser recuadas para melhorar a legibilidade do código
  • Pode conter adições e operandos (dependendo da palavra-chave usada)
  • Pode abranger várias linhas
  • Palavras-chave, adições e operandos podem usar letras maiúsculas ou minúsculas
  • O sistema de tempo de execução ABAP não diferencia entre casos. É habitual escrever palavras-chave e seus acréscimos em letras maiúsculas e operandos em minúsculas.

Objetos de dados no ABAP

Variáveis, constantes e literais

O ABAP conhece três tipos de objetos de dados: variáveis, constantes e literais

Um objeto de dados na codificação ABAP representa uma seção reservada da memória do programa. O ABAP conhece três tipos de objetos de dados: variáveis, constantes e literais.

Variáveis
Uma variável é um objeto de dados com conteúdo que pode ser modificado durante o tempo de execução. Uma variável é identificada por um nome. O nome também é utilizado para endereçar o objeto de dados no momento da execução. O valor inicial de uma variável ABAP está bem definido.
Constantes
Constantes são como variáveis. Mas, ao contrário das variáveis, o valor tem programação incondicional no texto fonte e não deve ser modificado durante o tempo de execução. Assim como as variáveis, as constantes têm um nome pelo qual podem ser reutilizadas.
Literais

O valor dos literais também tem programação incondicional no texto fonte. Ao contrário das constantes, os literais não têm um nome. Por isso, você não pode reutilizar um literal. Use apenas literais para especificar os valores para constantes e os valores iniciais para variáveis.

Os objetos de dados ABAP são sempre tipificados: cada objeto de dados é baseado em um tipo de dados que determina as informações que ele pode conter. O tipo de dados de um objeto de dados ABAP permanece o mesmo durante a execução de um programa.

Declaração de variáveis

As variáveis são declaradas usando a palavra-chave DATA, TYPE e, opcionalmente, VALUE

Uma variável no código ABAP é declarada com a palavra-chave DATA.

Uma instrução DATA consiste nas seguintes partes:

DATA

A palavra-chave DATA é seguida pelo nome da variável. O nome de uma variável pode ter um comprimento máximo de 30 caracteres. Ele pode conter os caracteres A-Z, os dígitos 0–9 e o caractere sublinhado. O nome deve começar com uma letra ou sublinhado.

TYPE
O tipo da variável é indicado após o suplemento TYPE. No exemplo, são utilizados os tipos predefinidos I (para números inteiros) e cadeia (cadeia de caracteres com comprimento variável).
VALOR
O suplemento VALUE é opcional e você pode utilizá-lo para indicar um valor inicial para a variável. Se VALUE estiver em falta, a variável é criada com um valor inicial que depende do tipo técnico da variável.

Utilização de tipos de dados

O ABAP suporta 13 tipos predefinidos ou tipos definidos pelo usuário utilizando a palavra-chave TYPES ou o ABAP Dictionary

O ABAP oferece as seguintes fontes de tipos de dados:

ABAP integrado (tipos ABAP predefinidos)

O ABAP tem um conjunto de 13 tipos de dados predefinidos para objetos de dados numéricos simples, em forma de caractere e binários.

Instruções TYPES

A instrução TYPES permite que você defina tipos de dados predefinidos e reutilize os mesmos em diferentes locais, dependendo da localização da definição.

ABAP Dictionary
O ABAP Dictionary faz parte do repositório ABAP. Entre outras coisas, ele administra tipos de dados globais disponíveis em todo o sistema. Os tipos de ABAP Dictionary não só definem propriedades técnicas, mas também adicionam informações semânticas – por exemplo, etiquetas. Os tipos de ABAP Dictionary são especialmente úteis ao implementar interfaces do usuário.

ABAP integrado (tipos ABAP predefinidos)

Exemplos de tipos integrados

Alguns tipos ABAP padrão importantes (tipos de dados integrados) estão listados na figura. Os tipos ABAP são categorizados como tipos de dados completos ou incompletos. Tipos de dados completos já contêm especificações de comprimento fixo específicas de tipo. Os tipos de dados incompletos têm um comprimento padrão, mas permitem que um comprimento diferente seja especificado. No caso do tipo P, você também pode indicar um número de casas decimais. 

Tipos ABAP completos

TIPO STRING

Um campo do tipo cadeia é um campo em forma de caractere de comprimento variável. O sistema de tempo de execução ABAP aloca e libera a memória para otimizar o gerenciamento de variáveis de cadeia. Você não pode manipular diretamente esse comportamento. O comprimento máximo de uma cadeia é gerenciado por configurações feitas pelo administrador do sistema. Na prática, entretanto, estamos falando sobre cadeias de comprimento ilimitado.

TYPE I

Um campo do tipo I é um campo numérico que contém um número inteiro. O sistema aloca 4 bytes (32 bits) para um campo desse tipo que permite valores entre -2^31 e +2^31.

TIPO D

Um campo do tipo D representa uma data. No ABAP, a data tem sempre o formato AAAAMMDD (sem separadores). O sistema converte esse formato de acordo com a localização atual antes de o valor ser exibido na interface do usuário. Da mesma forma, quando o usuário insere uma data, o sistema a converte no formato ABAP antes de você começar a processá-la.

TIPO T

Um campo do tipo T representa uma hora. No ABAP, isso tem o formato HHMMSS (sem separadores no formato de 24 horas). Se a localidade atual tiver usado um formato de 12 horas, o sistema converterá os valores automaticamente.

Tipos ABAP incompletos

TIPO C
Um campo do tipo C é um campo em forma de caractere de comprimento específico. Você indica o comprimento em caracteres; o sistema de tempo de execução atribui o dobro do número de bytes para acomodar o campo. Você utiliza este tipo quando um comprimento fixo é importante.
TIPO N

Um campo do tipo N é um campo de caracteres de um comprimento específico que só contém dígitos. Este campo deve conter uma sequência de dígitos que você não quer considerar como um número e executar cálculos com – por exemplo, este pode ser um número pessoal ou um centro de custo.

TIPO P

Um campo do tipo P (P para ‘número compactado’) é um campo que contém um valor numérico com um número especificado de dígitos e uma casa decimal. Utilize este tipo para números com uma casa decimal ou onde o tipo de intervalo de valores I não é suficiente.

Utilização de tipos locais

Os tipos definidos pelo usuário são definidos utilizando a palavra-chave TYPES

Exemplo

Code Snippet
12
TYPES my_type TYPE p LENGTH 3 DECIMALS 2. DATA my_var TYPE my_type.

Em vez de utilizar tipos predefinidos diretamente na instrução DATA, você pode utilizar a instrução TYPES para definir primeiro o tipo. Em seguida, você pode utilizar o tipo em uma instrução DATA após o suplemento TYPE.

Utilização de tipos globais – ABAP Dictionary

Exemplo de um tipo definido pelo usuário no ABAP Dictionary

Em um sistema da SAP, existem milhares de entidades empresariais, como códigos de país, centros, números do material, exercícios fiscais, centros de custo, etc. A definição dessas entidades em cada programa seria tecnicamente possível utilizando os tipos ABAP predefinidos que você acabou de ver. No entanto, isso poderia ser extremamente trabalhoso e propenso a erros. Em vez disso, a SAP fornece o ABAP Dictionary, o arquivo central para tipos de dados importantes e a ferramenta que você utiliza para criar tabelas de banco de dados.

No ABAP Dictionary, entidades empresariais individuais são descritas por elementos de dados. Na variável de exemplo, a variável aeroporto é tipificada com o elemento de dados /DMO/AIRPORT_ID.

Quando você pressiona a tecla F2 para exibir os detalhes do tipo de dados, pode ver que, tecnicamente, esse tipo tem um caractere de comprimento 3. Além disso, o elemento de dados fornece a descrição "Cenário de referência de voo: ID do aeroporto" e os quatro denominadores de campo de diferentes comprimentos.

Quando você pressiona a tecla F3 para navegar para a definição do tipo, uma nova visão é aberta com o editor para elementos de dados.

Constantes e Literais

Declaração de constantes

As constantes podem ser definidas usando a palavra-chave CONSTANTS

Constantes

Uma constante é um objeto de dados com um valor com programação incondicional que não deve ser modificado durante o tempo de execução. Qualquer acesso de escrita a uma constante levará a um erro de sintaxe.

No ABAP, você declara uma constante utilizando a palavra-chave CONSTANTS. Uma instrução CONSTANT consiste nas mesmas partes que uma instrução DATA. A única diferença é que o suplemento VALUE é obrigatório.

Você pode utilizar o suplemento VALUE na forma especial VALUE IS INITIAL, caso o valor da constante deva ser o valor inicial específico do tipo. Os valores iniciais são normalmente zero para tipos numéricos e um espaço para tipos de caracteres. Não existem valores nulos no ABAP.

Declaração de Literais

ABAP suporta número, texto e literais de cadeia

Literais

Literais são objetos de dados anônimos com um valor com programação incondicional. Literais são frequentemente usados para definir valores não iniciais para constantes e valores iniciais não iniciais para variáveis.

Tecnicamente, você pode utilizar literais em qualquer lugar do seu código. Para suportar a legibilidade e a manutenção, recomenda-se definir e utilizar constantes.

O ABAP tem três tipos de literais:

  • Número Literais são números inteiros com ou sem sinais. Os literais numéricos geralmente têm o tipo de dados I. Se o valor for demasiado grande para o tipo de dados I, o tipo p é utilizado com um comprimento suficiente e sem uma casa decimal.
  • Literais de texto são tipos de caracteres em um par de aspas simples (‘ ).
  • Os literais de string são do tipo STRING e estão entre aspas ( ` ). Eles devem ser usados para fornecer valores para objetos de dados do tipo cadeia.

Sequência de instruções

Exemplo de uma instrução TYPES encadeada

Você também pode definir tipos estruturados na codificação ABAP utilizando a instrução TYPES. A definição da estrutura começa com a instrução TYPES BEGIN OF <structure type name>.e termina com TYPES END OF <structure type name>. No meio, você nomeia cada componente e indica seu tipo em uma instrução TYPES adicional.

Uma forma compacta utiliza a palavra-chave TYPES apenas uma vez, seguida por dois pontos ( : ). O suplemento BEGIN OF, o suplemento END OF e as definições de componente no meio são então separados por vírgulas.

Isso é referido como uma instrução de cadeia.

Nota

No passado, as instruções de cadeia eram usadas muito no ABAP. Estes dias, eles só são recomendados para combinar declarações que devem estar estreitamente juntas.

Comentários em ABAP

Exemplo de um comentário utilizando o símbolo de símbolo de estrela

Um comentário é uma explicação que é adicionada a um programa para ajudar outras pessoas a entenderem o código. Comentários são um pedaço de código-fonte que é ignorado pelo compilador ou intérprete.

No ABAP, existem duas formas diferentes de definir um texto fonte como um comentário:

  • O sinal de asterisco (*) na primeira coluna identifica a linha inteira como um comentário
  • O sinal de aspas duplas (") identifica o resto da linha, ou seja, o código à direita como um comentário