Escolar Documentos
Profissional Documentos
Cultura Documentos
Aprendendo Lógica ABAP PDF
Aprendendo Lógica ABAP PDF
Índice
I. OBJETIVO......................................................................................................................................... 4
1. Conceito de Algoritmo
São regras formais para obtenção de um resultado ou da solução de um problema, englobando
fórmulas de expressões aritméticas e lógicas.
Uma das técnicas no projeto da lógica de programas é a chamada programação estruturada, a qual
consiste em uma metodologia de projeto, objetivando:
Agilizar a codificação da escrita da programação;
Permitir a verificação de possíveis falhas apresentadas pelos programas;
Facilitar as alterações e atualizações dos programas.
Exemplo de Pseudocódigo
4. Instruções Básicas
Academia ABAP/SAP – www.ztreinamentos.com / ztreinamentos@googlegroups.com
Cada linguagem de programação usa um conjunto de palavras onde cada uma desenvolve uma ação.
Estas palavras reservadas de cada linguagem são conhecidas como comandos ou instruções.
5. Operadores
São utilizados na definição de expressões aritméticas e lógicas.
6. 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:
7. Blocos de Repetição
Como o próprio nome diz, são utilizados para repetir um bloco de instruções. Tem o seu
funcionamento controlado por decisão, podendo executar um determinado conjunto de instruções
enquanto a condição verificada for verdadeira. No momento em que esta condição se torna falsa o
processamento da rotina é desviado.
Exemplo:
1. O que é ABAP?
ABAP é uma linguagem de programação de quarta geração de propriedade da SAP.
Suas iniciais significam:
A - Advanced
B - Business
A - Aplication
P - Programming
2. Instruções
Um programa ABAP consiste em uma série de instruções que começam com uma palavra chave e
terminam com um ponto.
3. Comentários
Existem duas formas para inserir comentários em um programa ABAP:
Com um asterisco (*) na primeira coluna da linha.
Com aspas (") no meio da linha (normalmente após o comando).
7. Variáveis de Sistema
ABAP tem algumas variáveis internas que se atualizam automaticamente e que podem ser utilizadas
nos programas. Essas variáveis ficam agrupadas na estrutura SYST (SY).
Exemplo: SY-SUBRC, SY-TABIX, SY-MANDT, SY-LANGU, SY-DATUM, SY-UZEIT, SY-TCODE, etc.
8.1. Condições
Em ABAP, como em todas as linguagens estruturadas, dispomos de uma serie de instruções para
subdividir o programa em blocos lógicos (serão executados quando se cumpra uma certa condição).
Para criar uma condição, utilizamos a sentença IF... ELSE... ENDIF , que poderá aparecer em
distintas modalidades.
IF <Cond.>. IF <Cond.>. IF <Cond.>.
… … …
ENDIF. ELSE. ELSEIF.
… …
ENDIF. ELSE.
…
ENDIF.
Para executar diferentes instruções em função do conteúdo de um campo, podemos utilizar a sentença
CASE.
CASE <campo>.
WHEN <valor1>.
…
WHEN <valor2>.
…
WHEN OTHERS.
…
ENDCASE.
Existe ainda a instrução condicional, ON CHANGE OF ... ENDON, que permitirá a execução de um
bloco de instruções se ocorrer a troca de valor de um certo campo durante o acesso aos dados.
ON CHANGE OF <campo>.
…
ENDON.
A instrução WHILE permite executar um bloco de instruções enquanto se cumpra uma condição.
WHILE <cond>.
…
ENDWHILE.
COLLECT: Efetua a soma da linha de cabeçalho. Somará os campos de tipo P,F,I, se existirem,
em uma linha da tabela com campos (tipo C) idênticos ao da área de trabalho.
COLLECT <tabint>.
Também é possível alimentar uma tabela interna com o conteúdo de uma tabela da base de dados.
SELECT * FROM <tab> INTO TABLE <tabint>.
Se passarmos agora para a tabela MARC (Dados de centro para material), onde a chave é composta
pelos campos MANDT, MATNR e WERKS, podemos gravar mais de um registro para um mesmo
material (para centros diferentes).
Obs: A criação de um índice deve ser efetuada segundo criteriosa avaliação. Apesar de ajudar na
busca dos registros, a existência do índice prejudica a performance do banco na criação de novos
registros.
12.1. Select
A sentença SELECT é a instrução fundamental para ler a informação da base de dados. Podemos ler
uma tabela da base de dados e simultaneamente carregar una tabela interna com o resultado da
leitura.
SELECT * FROM <tab> INTO TABLE <intab> (WHERE <cond»)
SELECT * FROM <tab> APPENDING TABLE <intab>
(WHERE <cond>).
SELECT * ... ORDER BY <campo1> <campo2> ...
SELECT SINGLE * FROM <tab> (WHERE <cond>).
12.2. Insert
A sentença INSERT permite incluir registros em uma tabela da base de dados SAP.
INSERT <tab>.
INSERT <tab> FROM TABLE <intab>
12.3. Update
A sentença UPDATE permite modificar o conteúdo de um ou vários registros.
UPDATE <tab>.
UPDATE <tab> SET <campo> = <valor> WHERE <cond>.
UPDATE <tab> FROM TABLE <intab>.
12.4. Modify
A sentencia MODIFY é utilizada quando não sabemos ao certo se o registro deverá ser incluído ou
modificado na tabela. Se o registro já existir na tabela, será atualizado. Caso contrário será incluído.
MODIFY <tab>.
MODIFY<tab> FROM TABLE <intab>
12.5. Delete
Para eliminar registros da base de dados, utiliza-se a sentença DELETE.
DELETE <tab>.
DELETE FROM<tab> WHERE <cond>.
Academia ABAP/SAP – www.ztreinamentos.com / ztreinamentos@googlegroups.com
DELETE FROM <tab> FROM TABLE <intab>.
1. SQVI (QuickViewer)
Criação de “relatório” para uso pessoal. O “relatório” fica disponível apenas ao usuário que efetuou sua
criação.
Transação SQVI
Tela de Seleção
Ou seja, precisamos do conjunto: QUERY (SQ01) + INFOSET (SQ02) + Grupo de Usuários (SQ03).
Teremos:
Atribuição – Infosets
Obs: Os demais passos dependem do método selecionado. Como exemplo, utilizaremos o Direct Input
para mestre de materiais.
No passo “Maintain Source Structures” definimos a(s) estrutura(s) de entrada dos dados.
No passo “Maintain Structure Relations” efetuamos a ligação entre a(s) estrutura(s) de entrada e a(s)
estrutura(s) de carga.
No passo “Assign Files” efetuamos a ligação entre a(s) estrutura(s) de entrada, definida(s) no passo
“Maintain Source Structures”, e o arquivo de entrada definido no passo acima.
No passo “Import Data” é efetuada a leitura do arquivo de entrada.
No passo “Display Imported Data” é possível exibir os dados importados.
No passo “Convert Data” é efetuada a transferência dos dados importados (de origem) para a(s)
estrutura(s) de destino. Essa conversão é efetuada segundo as regras definidas no passo “Maintain
Field Mapping and Conversion Rules”.
No passo “Display Converted Data” é possível exibir os dados convertidos.
No passo “Start Direct Input Program” é efetuada a transferência dos dados convertido para o(s)
objeto(s) que será criado/modificado. Ou seja, é neste passo que o objeto, em nosso exemplo material,
será criado ou modificado.
Obs: A opção “Start Direct Input Program” existe devido ao fato de escolhermos no passo “Maintain
Object Attributes” a opção DI (Direct Input). Escolhendo, por exemplo, a opção Batch Input, teríamos
após a opção “Display Converted Data” as opções “Create Batch Input Session” e “Run Batch Input
Session”.
Na transação BAPI, é possível procurar uma bapi de acordo com a área de negócio.
Obs: Nem sempre os nomes dos campos são idênticos. Em algumas bapis os nomes são parecidos.
Por exemplo, na bapi para criação de documentos DMS (BAPI_DOCUMENT_CREATE2) o campo
número do documento é denominado “DOCUMENTNUMBER”. No elemento de dados (DOKNR)
associado ao campo número de documento na transação CV01N, temos a denominação
“DOCUMENT_NUMBER”.
O comando “F8” efetua o todo o processamento do ponto atual ( ) até o cursor (linha selecionada).
Se não houver nenhuma linha selecionada antes da execução do “F8”, o processamento é efetuado
por completo (ou até um ponto de parada ativo, caso exista um).
Em modo debug:
O gráfico acima exibe como está o consumo do programa executado, como o programa está
consumindo os recursos do ambiente.
Os recursos do ambiente, são aqui distribuídos em:
Como no programa utilizado para testes temos o problema está no acesso ao banco de dados,
podemos filtrar a lista acima mantendo apenas os registros do tipo “BD” (Banco de Dados).
Exibição do programa:
Observe que no exemplo acima o gráfico de consumo está mais distribuído. O programa está
distribuindo melhor a carga de processamento utilizando bem os recursos do ambiente.