Escolar Documentos
Profissional Documentos
Cultura Documentos
www.aztreinamentos.com
1. Introdução – Lógica de Programação
Conceito de Algoritmo
Um algoritmo é um conjunto de regras ou instruções bem definidas que
descrevem, passo a passo, como resolver um problema ou obter um resultado
específico. Essas regras formais englobam tanto fórmulas de expressões
aritméticas quanto lógicas.
www.aztreinamentos.com
Formas de Representação Gráfica (Fluxograma)
A representação gráfica do algoritmo ou programa, conhecida como
fluxograma, é uma forma visual de ilustrar a execução passo a passo das
instruções. Essa representação utiliza símbolos específicos para representar
diferentes elementos do algoritmo. Aqui estão algumas das simbologias mais
utilizadas em fluxogramas na programação estruturada:
www.aztreinamentos.com
Ao utilizar fluxogramas, é possível visualizar claramente a sequência de etapas
do algoritmo e a relação entre elas. Isso auxilia no entendimento do fluxo de
execução do programa, na identificação de possíveis problemas e na
comunicação entre membros da equipe de desenvolvimento.
1. Início do programa
2. Ler valor1
3. Ler valor2
4. Somar valor1 e valor2 e armazenar o resultado em soma
5. Se soma for maior que 10, então:
6. Escrever "Resultado maior que 10"
7. Senão:
8. Escrever "Resultado menor ou igual a 10"
9. Fim do programa
www.aztreinamentos.com
Nesse exemplo, o pseudocódigo começa com a indicação do início do
programa. Em seguida, há instruções para ler dois valores (valor1 e valor2) a
partir do usuário. Depois, os valores são somados e o resultado é armazenado
na variável soma. O programa então verifica se a soma é maior que 10 e
imprime uma mensagem correspondente.
Vale ressaltar que o pseudocódigo não segue uma sintaxe rígida, e sua estrutura
e convenções podem variar dependendo da preferência ou convenção
adotada pela equipe de desenvolvimento. O importante é que ele seja
compreensível e transmita adequadamente a lógica do algoritmo.
Instruções Básicas
Abaixo estão algumas instruções básicas específicas do ABAP que você pode
incluir no seu manual:
lv_nome = 'João'.
www.aztreinamentos.com
WRITE 'O valor é maior que 10'.
ELSE.
WRITE 'O valor é menor ou igual a 10'.
ENDIF.
DO 10 TIMES.
WRITE 'Iteração número' && sy-index.
ENDDO.
Entrada e saída de dados: Você pode usar a instrução "WRITE" para exibir
informações na tela. Para receber entrada do usuário, pode-se utilizar a função
"PARAMETERS". Exemplo:
Essas são apenas algumas das instruções básicas específicas do ABAP SAP.
Lembre-se de consultar a documentação oficial do ABAP para obter
informações detalhadas sobre as instruções e recursos disponíveis.
Operadores
Operadores são símbolos ou palavras reservadas que são utilizados na definição
de expressões aritméticas e lógicas. Eles permitem combinar valores e executar
operações específicas. No ABAP, existem diferentes tipos de operadores que
podem ser usados em expressões. Vou listar alguns dos operadores mais comuns
no ABAP:
Operadores Aritméticos:
Operadores de Comparação:
www.aztreinamentos.com
✓ Maior ou igual a (GE): Verifica se o primeiro valor é maior ou igual ao
segundo valor.
✓ Menor ou igual a (LE): Verifica se o primeiro valor é menor ou igual ao
segundo valor.
Operadores Lógicos:
Tomadas de Decisão
São utilizadas para controlar o fluxo de processamento do programa. O controle
é efetuado através de condições lógicas.
Exemplo:
IF condição.
<bloco de código a ser executado se a condição for verdadeira>
ELSE.
<bloco de código a ser executado se a condição for falsa>
ENDIF.
www.aztreinamentos.com
IF NOTA >= 7.
Aprovado = 'Não'.
ELSE.
Aprovado = 'Sim'.
ENDIF.
Dessa forma, o programa avaliará a condição "NOTA >= 7" e, com base no
resultado, definirá o valor da variável "Aprovado" como "Sim" ou "Não".
Blocos de Repetição
Os blocos de repetição, também conhecidos como estruturas de loop, são
utilizados para executar um conjunto de instruções repetidamente enquanto
uma determinada condição for verdadeira. No ABAP, existem diferentes
estruturas de repetição, sendo uma delas o "Enquanto" (While).
WHILE condição.
<bloco de código a ser executado repetidamente>
ENDWHILE.
Dessa forma, o loop continuará até que a condição seja falsa, ou seja, quando
o contador atingir o valor 10. Assim que a condição se tornar falsa, o
processamento da rotina será desviado para fora do loop.
www.aztreinamentos.com
Isso permite automatizar tarefas e processar conjuntos de dados de maneira
eficiente.
www.aztreinamentos.com
2. Introdução – ABAP
O que é ABAP?
ABAP (Advanced Business Application Programming) é uma linguagem de
programação de quarta geração, desenvolvida e de propriedade da SAP
(Systems, Applications and Products in Data Processing). Ela foi projetada
especificamente para o desenvolvimento de aplicativos empresariais e é
amplamente utilizada no ambiente do sistema SAP, como o SAP ERP (Enterprise
Resource Planning).
Além disso, o ABAP possui uma ampla biblioteca de funções e classes padrão,
que permitem aos desenvolvedores aproveitar a funcionalidade pré-existente e
acelerar o processo de desenvolvimento.
Instruções
As instruções em um programa ABAP são elementos fundamentais para definir
a lógica e o comportamento do programa. Elas são escritas utilizando palavras-
chave específicas e seguem uma estrutura definida. Vamos explorar os
diferentes tipos de palavras-chave no ABAP:
www.aztreinamentos.com
DATA: Utilizada para declarar variáveis.
TABLES: Utilizada para declarar tabelas internas ou acessar tabelas de banco
de dados.
TYPES: Utilizada para definir tipos de dados personalizados.
START-OF-SELECTION.
WHILE: Utilizada para criar um loop que será executado enquanto uma
condição for verdadeira.
DO: Utilizada para criar um loop que será executado pelo menos uma vez e
repetidamente enquanto uma condição for verdadeira.
ENDIF.
www.aztreinamentos.com
CALL: Utilizada para chamar uma função ou um método.
Essas são apenas algumas das palavras-chave utilizadas no ABAP para definir
instruções em um programa. Cada palavra-chave possui sua própria sintaxe e
funcionalidade específica. É importante consultar a documentação oficial do
ABAP para obter informações detalhadas sobre as palavras-chave disponíveis
e suas respectivas funcionalidades.
Comentários
Em um programa ABAP, é possível inserir comentários para fornecer informações
adicionais e tornar o código mais legível. Existem duas formas comuns de inserir
comentários em um programa ABAP:
Comentários de linha parcial: Nesse tipo de comentário, as aspas duplas (") são
utilizadas para iniciar um comentário no meio de uma linha. Tudo o que estiver
entre as aspas duplas será considerado um comentário e não será interpretado
como código.
Exemplo:
Objetos de Dados
Os objetos de dados no ABAP podem ser classificados em três categorias:
campos de banco de dados, literais e variáveis internas.
www.aztreinamentos.com
Campos de Banco de Dados: São objetos de dados que estão definidos no
dicionário de dados do sistema SAP. Eles representam as colunas das tabelas de
banco de dados e são usados para armazenar e manipular informações
persistentes. Para utilizar campos de banco de dados em um programa ABAP,
é necessário declarar a tabela correspondente usando a sentença TABLES.
Exemplo:
TABLES: LFA1.
Exemplo:
WRITE 'DIRECCIÓN'.
Exemplo:
www.aztreinamentos.com
TABLES: <tabelas>. " Tabelas que serão utilizadas
DATA: <variáveis>. " Variáveis / Tabelas Internas / Work Áreas / Objetos internos
www.aztreinamentos.com
Operações Aritméticas em ABAP
Em ABAP, é possível realizar as quatro operações aritméticas básicas, bem como
usar funções matemáticas para cálculos mais complexos. Vou explicar como
realizar essas operações:
ADD 5 TO var1.
SUBTRACT var2 FROM var3.
MULTIPLY var4 BY var5.
DIVIDE var6 BY var7.
Nesses exemplos, as variáveis var1, var2, var3, var4, var5, var6 e var7 são
utilizadas nas operações aritméticas correspondentes.
Funções Matemáticas:
Além das operações aritméticas básicas, ABAP também oferece uma
variedade de funções matemáticas para cálculos mais complexos. Algumas
das funções matemáticas disponíveis são:
www.aztreinamentos.com
Exemplo de uso de funções matemáticas:
Exemplo de uso:
Exemplo de uso:
Exemplo de uso:
www.aztreinamentos.com
Exemplo de uso:
DATA lv_number TYPE i VALUE 25. " Número para calcular a raiz quadrada
DATA lv_sqrt TYPE f.
A função DIV realiza a divisão inteira de dois números especificados. Ela retorna
o resultado como um número inteiro, descartando a parte decimal.
Exemplo de uso:
Variáveis de Sistema
No ABAP, existem variáveis internas especiais que são atualizadas
automaticamente pelo sistema e podem ser utilizadas nos programas. Essas
variáveis estão agrupadas na estrutura SYST (SY), que oferece informações sobre
o ambiente de execução e o contexto do programa. Algumas das variáveis
disponíveis na estrutura SYST são:
www.aztreinamentos.com
Essas são apenas algumas das variáveis disponíveis na estrutura SYST (SY). Elas
podem ser utilizadas nos programas para obter informações contextuais
relevantes ou realizar determinadas ações com base nessas informações.
Exemplo de uso:
IF SY-SUBRC = 0.
WRITE 'Instrução executada com sucesso.'.
ELSE.
WRITE 'Ocorreu um erro durante a execução da instrução.'.
ENDIF.
IF SY-DATUM = '20230602'.
WRITE 'Hoje é 02 de junho de 2023.'.
ENDIF.
IF <condição>.
<bloco de código a ser executado se a condição for verdadeira>
ELSE.
<bloco de código a ser executado se a condição for falsa>
ENDIF.
www.aztreinamentos.com
Exemplo de uso do bloco de condição IF:
Nesse exemplo, a variável idade é verificada. Se a idade for maior ou igual a 18,
a mensagem "Você é maior de idade" será exibida. Caso contrário, a
mensagem "Você é menor de idade" será exibida.
Nesse exemplo, a variável nota é verificada. Se a nota for maior ou igual a 90, a
mensagem "Parabéns! Você obteve uma nota excelente!" será exibida. Se a
nota estiver entre 70 e 89, a mensagem "Sua nota está acima da média" será
exibida. Caso contrário, a mensagem "Sua nota não atingiu o mínimo
necessário" será exibida.
www.aztreinamentos.com
Nas condições utilizamos os operadores clássicos:
IF nota = 10.
WRITE 'Parabéns! Você tirou a nota máxima!'.
ELSEIF nota < 6.
WRITE 'Infelizmente, você foi reprovado.'.
ELSE.
WRITE 'Sua nota está na média.'.
ENDIF.
www.aztreinamentos.com
▪ CO (Contains Only): O operador "CO" é usado para verificar se a
primeira cadeia de caracteres contém apenas os caracteres da
segunda cadeia de caracteres.
▪ CN (Contains Not Only): O operador "CN" é a negação do operador
"CO". Ele é usado para verificar se a primeira cadeia de caracteres não
contém apenas os caracteres da segunda cadeia de caracteres.
▪ CA (Contains Any): O operador "CA" é usado para verificar se a primeira
cadeia de caracteres contém pelo menos um dos caracteres da
segunda cadeia de caracteres.
▪ NA (Contains Not Any): O operador "NA" é a negação do operador
"CA". Ele é usado para verificar se a primeira cadeia de caracteres não
contém nenhum dos caracteres da segunda cadeia de caracteres.
▪ CS (Contains String): O operador "CS" é usado para verificar se a
primeira cadeia de caracteres contém exatamente a segunda cadeia
de caracteres.
▪ NS (Contains No String): O operador "NS" é a negação do operador "CS".
Ele é usado para verificar se a primeira cadeia de caracteres não
contém a segunda cadeia de caracteres.
▪ CP (Contains Pattern): O operador "CP" é usado para verificar se a
primeira cadeia de caracteres corresponde ao padrão especificado
pela segunda cadeia de caracteres.
▪ NP (Contains No Pattern): O operador "NP" é a negação do operador
"CP". Ele é usado para verificar se a primeira cadeia de caracteres não
corresponde ao padrão especificado pela segunda cadeia de
caracteres.
IF lv_text CO 'Hello'.
WRITE 'A cadeia de caracteres contém apenas os caracteres da segunda
cadeia.'.
ENDIF.
IF lv_text CN 'Hello'.
WRITE 'A cadeia de caracteres não contém apenas os caracteres da
segunda cadeia.'.
ENDIF.
IF lv_text CA 'ABC'.
WRITE 'A cadeia de caracteres contém pelo menos um dos caracteres da
segunda cadeia.'.
ENDIF.
www.aztreinamentos.com
IF lv_text NA 'XYZ'.
WRITE 'A cadeia de caracteres não contém nenhum dos caracteres da
segunda cadeia.'.
ENDIF.
IF lv_text NS 'OpenAI'.
WRITE 'A cadeia de caracteres não contém a segunda cadeia.'.
ENDIF.
Existem operadores especiais no ABAP que podem ser úteis em certas situações.
Aqui estão dois exemplos:
Exemplo de uso:
Exemplo de uso:
IF lv_text IS INITIAL.
ENDIF.
www.aztreinamentos.com
Nesse exemplo, o operador IS INITIAL é usado para verificar se a variável lv_text
está vazia ou não foi inicializada. Se sim, a mensagem "A variável está vazia ou
não foi inicializada" será exibida.
CASE:
A cláusula WHEN OTHERS é usada como uma opção de fallback para lidar com
valores que não correspondem a nenhum dos casos específicos definidos
anteriormente. Ela permite executar um conjunto padrão de instruções quando
nenhum dos outros casos se aplica.
www.aztreinamentos.com
DATA: lv_field1 TYPE c LENGTH 10,
lv_field2 TYPE c LENGTH 10.
DO 10 TIMES.
lv_field1 = 'Value1'.
lv_field2 = 'Value2'.
Sentenças de Controle
No ABAP, existem várias sentenças de controle que podem ser utilizadas para
finalizar o processamento de um bloco ou processo. Aqui estão algumas das
principais sentenças de controle:
www.aztreinamentos.com
Exemplo de uso:
Exemplo de uso:
DO 10 TIMES.
WRITE sy-index.
IF sy-index = 5.
EXIT.
ENDIF.
ENDDO.
Exemplo de uso:
IF lv_error = 'X'.
WRITE 'Erro encontrado. Encerrando o programa.'.
STOP.
ENDIF.
Nesse exemplo, se uma variável lv_error tiver o valor 'X', a mensagem "Erro
encontrado. Encerrando o programa" será exibida e a sentença STOP será
acionada, encerrando imediatamente a execução do programa.
www.aztreinamentos.com
Exemplo de uso:
DO 10 TIMES.
WRITE sy-index.
IF sy-index = 5.
LEAVE.
ENDIF.
ENDDO.
Tabelas Internas
As tabelas internas no ABAP são estruturas de dados utilizadas para armazenar
vários registros de dados com a mesma estrutura na memória durante a
execução de um programa. Elas são úteis para organizar e manipular
conjuntos de dados de forma eficiente. Aqui estão algumas características
importantes das tabelas internas:
www.aztreinamentos.com
Exemplo de declaração e manipulação de uma tabela interna:
Nesse exemplo, uma tabela interna lt_customers é declarada do tipo lfa1, que
é a estrutura de uma tabela de clientes no dicionário de dados. Em seguida, é
realizada uma seleção de clientes no banco de dados, filtrando apenas
aqueles com país igual a 'BR'. Os resultados são armazenados na tabela
interna lt_customers. Em seguida, um loop é realizado na tabela interna para
exibir os campos kunnr e name1 de cada cliente.
www.aztreinamentos.com
Exemplo de declaração de tabela interna:
Exemplo de uso:
Exemplo de uso:
ls_sales-material = 'ABC123'.
ls_sales-quantity = 10.
www.aztreinamentos.com
COLLECT ls_sales INTO lt_sales.
SELECT INTO TABLE: É possível carregar uma tabela interna com o conteúdo de
uma tabela do banco de dados usando a instrução SELECT INTO TABLE.
Exemplo de uso:
Essas são algumas das maneiras comuns de carregar dados em uma tabela
interna no ABAP. A escolha da abordagem depende das necessidades
específicas do programa e da fonte dos dados que serão carregados na
tabela interna.
SORT <intab>: Essa forma básica da instrução SORT é usada para classificar
uma tabela interna em ordem ascendente. Os registros são ordenados com
base nos valores dos campos da tabela interna.
Exemplo de uso:
SORT lt_customers.
SORT <intab> BY <campo1> ... <campo n>: Essa forma da instrução SORT
permite classificar uma tabela interna com base em campos específicos. Os
registros são ordenados de acordo com a sequência dos campos listados.
Exemplo de uso:
www.aztreinamentos.com
SORT ... ASCENDING ou SORT ... DESCENDING: A instrução SORT também
permite especificar a direção da ordenação, seja ascendente ou
descendente. A ordenação ascendente é o padrão, mas você pode
explicitamente indicar a direção usando a palavra-chave ASCENDING. Para
ordenação descendente, você pode usar a palavra-chave DESCENDING.
Exemplo de uso:
Exemplo de uso:
LOOP AT <intab> FROM <inicio> TO <fim>: Essa forma do loop permite percorrer
os registros de uma tabela interna em um intervalo específico, definido pelos
valores de <inicio> e <fim>.
Exemplo de uso:
www.aztreinamentos.com
Nesse exemplo, o loop percorre os registros da tabela interna lt_customers do
índice 1 ao índice 5. Para cada registro nesse intervalo, as informações do
cliente são exibidas.
READ TABLE <intab>: Essa forma básica da instrução READ TABLE é usada para
ler um registro da tabela interna.
Exemplo de uso:
READ TABLE <intab> WITH KEY <chave>: Essa forma da instrução READ TABLE
permite buscar um registro com base em uma chave específica.
Exemplo de uso:
READ TABLE <intab> WITH KEY <chave> BINARY SEARCH: Essa forma da
instrução READ TABLE é usada quando a tabela interna está ordenada. A
busca é realizada usando uma pesquisa binária, que é mais eficiente em
termos de tempo de execução para tabelas grandes.
Exemplo de uso:
www.aztreinamentos.com
Nesse exemplo, a tabela interna lt_customers deve estar ordenada pelo
campo kunnr. O registro correspondente ao valor da chave '1001' será lido
usando a pesquisa binária.
READ TABLE <intab> INDEX <num>: Essa forma da instrução READ TABLE permite
ler um registro com base no número de índice.
Exemplo de uso:
A instrução READ TABLE é útil para buscar registros específicos em uma tabela
interna de forma eficiente, sem a necessidade de percorrer toda a tabela. Isso
pode economizar tempo e recursos, especialmente quando a tabela é
grande.
MODIFY <intab> (INDEX <i>): Essa forma da instrução MODIFY é usada para
modificar um registro existente na tabela interna com base no índice.
Exemplo de uso:
lt_customers[3]-city = 'London'.
MODIFY lt_customers INDEX 3.
INSERT <intab> (INDEX <i>): Essa forma da instrução INSERT é usada para inserir
um novo registro na tabela interna em uma posição específica, com base no
índice.
Exemplo de uso:
www.aztreinamentos.com
DELETE <intab> (INDEX <i>): Essa forma da instrução DELETE é usada para excluir
um registro existente na tabela interna com base no índice.
Exemplo de uso:
CLEAR <intab>: A instrução CLEAR é usada para limpar uma tabela interna, ou
seja, remover todos os registros e redefinir o contador interno.
Exemplo de uso:
CLEAR lt_customers.
Exemplo de uso:
REFRESH lt_customers.
FREE <intab>: A instrução FREE é usada para liberar a memória ocupada por
uma tabela interna. Isso é útil quando não há mais necessidade de manter os
dados da tabela interna na memória.
Exemplo de uso:
FREE lt_customers.
www.aztreinamentos.com
Exemplo de uso:
www.aztreinamentos.com
Material elaborado/revisado/ pela equipe da AZ Treinamentos, para mais
informações sobre materiais ou cursos, entre em contato pelo e-mail
contato@aztreinamentos.com ou pelo WhatsApp 11 94599 8429.
www.aztreinamentos.com