Aprendendo lógica ABAP
-
Upload
luciana-regina-bonganha -
Category
Documents
-
view
215 -
download
0
Transcript of Aprendendo lógica ABAP
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 1/53
ABAP
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 2/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Índice
I. OBJETIVO......................................................................................................................................... 4
II. INTRODUÇÃO – LÓGICA DE PROGRAMAÇÃO ........................................................................... 5
1. Conceito de Algoritmo ......................................................................................................................... 5
2. Formas de Representação Gráfica (Fluxograma) .................................................................................. 5
3. Formas de Representação Narrativa (Pseudocódigo) ............................................................................ 6
4. Instruções Básicas .............................................................................................................................. 6
5. Operadores ........................................................................................................................................ 7
5.1. Operadores Aritméticos .............................................................................................................. 7
5.2. Operadores Relacionais ............................................................................................................. 7
5.3. Operador Lógico - E ................................................................................................................... 7
5.4. Operador Lógico - OU ................................................................................................................ 7
5.5. Operador Lógico - NÃO .............................................................................................................. 8
6. Tomadas de Decisão........................................................................................................................... 8
7. Blocos de Repetição............................................................................................................................ 8
III. INTRODUÇÃO – ABAP .................................................................................................................. 9
1. O que é ABAP?................................................................................................................................... 9
2. Instruções ........................................................................................................................................... 9
3. Comentários ....................................................................................................................................... 9
4. Objetos de Dados ............................................................................................................................. 10
5. Estrutura Básica de um Programa (report) .......................................................................................... 10
6. Operações Aritméticas em ABAP ....................................................................................................... 10
7. Variáveis de Sistema ......................................................................................................................... 11
8. Controle de Fluxos nos Programas ABAP ........................................................................................... 11
8.1. Condições ............................................................................................................................... 11
8.2. Blocos de Repetição................................................................................................................. 12
8.3. Sentenças de Controle ............................................................................................................. 12
9. Tabelas Internas ............................................................................................................................... 13
9.1. Como Declarar Tabelas Internas ............................................................................................... 13
9.2. Carregando uma Tabela Interna................................................................................................ 13
9.3. Ordenando uma Tabela Interna................................................................................................. 13
9.4. Processamento de uma Tabela Interna...................................................................................... 13
9.5. Leitura de Registro de uma Tabela ............................................................................................ 14
9.6. Modificando Tabelas Internas ................................................................................................... 14
9.7. Outras Instruções para Tabelas Internas ................................................................................... 14
10. Dicionário de Dados ........................................................................................................................ 14
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 3/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
11. Outros Aspectos do Dicionário de Dados .......................................................................................... 15
11.1. Controle de Mandante ............................................................................................................ 15
11.2. Sentenças em SQL Nativo ...................................................................................................... 15
11.3. Chave Primária ...................................................................................................................... 15
11.4. Indices ................................................................................................................................... 16
11.5. Relacionamento ..................................................................................................................... 17
12. Instruções SQL de ABAP ................................................................................................................. 18
12.1. Select .................................................................................................................................... 18
12.2. Insert ..................................................................................................................................... 18
12.3. Update................................................................................................................................... 18
12.4. Modify ................................................................................................................................... 18
12.5. Delete.................................................................................................................................... 18
IV. SQVI / QUERY ............................................................................................................................. 20
1. SQVI (QuickViewer) .......................................................................................................................... 20
2. Query ............................................................................................................................................... 24
2.1. Infoset (Transação SQ02) ......................................................................................................... 24
2.2. Grupo de Usuários (Transação SQ03) ....................................................................................... 28
2.3. Query (Transação SQ01) .......................................................................................................... 29
V. LSMW (LEGACY SYSTEM MIGRATION WORKBENCH) ........................................................... 33
VI. SHDB (BATCH INPUT TRANSACTION RECORDER) ............................................................... 38
VII. BAPI (BAPI EXPLORER) ............................................................................................................ 39
VIII. EXIT / BADI / FIELD EXIT .......................................................................................................... 43
IX. DEBUG ......................................................................................................................................... 45
X. ANÁLISE DE PERFORMANCE .................................................................................................... 47
XI. TRANSAÇÕES ÚTEIS ................................................................................................................. 53
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 4/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
I. ObjetivoO objetivo deste workshop é efetuar uma introdução sobre ABAP e algumas ferramentas técnicas(como exemplo análise de performance).
O workshop não tem como objetivo a formação de programadores.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 5/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
II. Introdução – Lógica de Programação
1. Conceito de Algoritmo
São regras formais para obtenção de um resultado ou da solução de um problema, englobandofó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 qualconsiste 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.
2. Formas de Representação Gráfica (Fluxograma)
Consiste em representar graficamente a execução do algoritmo ou programa.
São vários os símbolos utilizados na programação estruturada.
Abaixo uma relação das simbologias mais utilizadas:
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 6/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Exemplo de Fluxograma
3. Formas de Representação Narrativa (Pseudocódigo)
Consiste em representar descritivamente (linguagem estruturada) a execução do algoritmo ouprograma.
Exemplo de Pseudocódigo
4. Instruções Básicas
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 7/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
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.
5.1. Operadores Aritméticos
5.2. Operadores Relacionais
5.3. Operador Lógico - E
5.4. Operador Lógico - OU
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 8/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
5.5. Operador Lógico - NÃO
6. Tomadas de Decisão
São utilizadas para controlar o fluxo de processamento do programa. O controle é efetuado através decondições lógicas.
Exemplo:
Se (NOTA >= 7) então Aprovado = “Sim”
Senão Aprovado = “Não”
Fim-Se
7. Blocos de Repetição
Como o próprio nome diz, são utilizados para repetir um bloco de instruções. Tem o seufuncionamento controlado por decisão, podendo executar um determinado conjunto de instruçõesenquanto a condição verificada for verdadeira. No momento em que esta condição se torna falsa oprocessamento da rotina é desviado.
Exemplo:
Enquanto Contador < 10 façaContador = Contador + 1Soma = Soma + Contador
Fim-Enquanto
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 9/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
III. Introdução – ABAP
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 - AplicationP - Programming
2. Instruções
Um programa ABAP consiste em uma série de instruções que começam com uma palavra chave eterminam com um ponto.
Tipos de palavras chaves:
Declarativas: Para declarar os dados que serão utilizados no programa.Exemplo: DATA, TABLES.
Eventos:especifica um evento, é um ponto onde o ABAP executa um determinado processo. Exemplo: START-OF-SELECTION, TOP-OF-PAGE.
Controle: Sentença de controle do fluxo de execução do programa.Exemplo: IF, WHILE, DO.
Operativas: Realiza funções próprias segundo o tipo de palavra chave. Exemplo: WRITE, MOVE, CALL.
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).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 10/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
4. Objetos de DadosExistem 3 classes de objetos de dados:
Campos de bases de dados: existentes no dicionário de dados. Podemos declarar as tabelas queserão utilizadas no programa com a sentença TABLES.
Exemplo: TABLES: LFA1.
Literais: literais de texto entre aspas simples (‘ ’) ou números. Exemplo: WRITE ‘DIRECCIÓN’.
COMPUTE SALES = AMOUNT / 100.
Variáveis internas: campos auxiliares. São declarados através da sentença DATAExemplo: DATA: VENDAS_TOTAIS TYPE P.
Obs: Constantes nada mais são que variáveis com conteúdo pré-definido e protegido.
5. Estrutura Básica de um Programa (report)
6. Operações Aritméticas em ABAP
Em ABAP é possível implementar as 4 operações aritméticas básicas:
Com a instrução COMPUTE e os símbolos +, -, / e *. Exemplo: COMPUTE var1 = <Exp. Aritmética>.
Obs: A palavra COMPUTE é opcional.
Com as instruções: ADD TO, SUBSTRACT FROM, MULTIPLY BY y DIVIDE BY.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 11/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Também estão disponíveis funções matemáticas como por exemplo: EXP, LOG, SIN, COS, SQRT,
DIV, MOD.
7. Variáveis de Sistema
ABAP tem algumas variáveis internas que se atualizam automaticamente e que podem ser utilizadasnos 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. Controle de Fluxos nos Programas ABAP
8.1. Condições
Em ABAP, como em todas as linguagens estruturadas, dispomos de uma serie de instruções parasubdividir 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 emdistintas modalidades.
IF <Cond.>. IF <Cond.>. IF <Cond.>.… … …
ENDIF. ELSE. ELSEIF.… …
ENDIF. ELSE.… ENDIF.
Nas condições utilizamos os operadores clássicos:
E AND Ou ORIgual = , EQ Diferente <> , EN Maior > , GT Menor < , LT Maior ou igual >= , GE
Menor ou igual <= , LE
Existem ainda operadores adicionais para comparar cadeias de caracteres:
<f1> CO <f2> (Contains Only) : f1 somente contém caracteres de f2.
<f1> CN <f2> (Contains Not Only) : negação da anterior.
<f1> CA <f2> (Contains Any) : f1 contém algum caractere de f2.
<f1> NA <f2> (Contains Not Any) : negação da anterior.
<f1> CS <f2> (Contains String) : f1 contém a cadeia f2.
<f1> NS <f2> (Contains No String) : negação da anterior.<f1> CP <f2> (Contains Pattern) : f1 corresponde ao padrão f2.
<f1> NP <f2> (Contains No Pattern) : negação da anterior.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 12/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Também podemos utilizar operadores especiais:IF <f1> BETWEEN <f2> AND <f3>. Para validar ranges
IF <f1> IS INITAL. Para validar valores iniciais.
Para executar diferentes instruções em função do conteúdo de um campo, podemos utilizar a sentençaCASE.
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 umbloco de instruções se ocorrer a troca de valor de um certo campo durante o acesso aos dados.
ON CHANGE OF <campo>.…
ENDON.
8.2. Blocos de Repetição
Para realizar processos repetitivos, podemos utilizar DO e WHILE.
A instrução DO permite executar um bloco de instruções tantas vezes quanto se especifique.
DO <n> TIMES.… ENDDO.
A instrução WHILE permite executar um bloco de instruções enquanto se cumpra uma condição.
WHILE <cond>.… ENDWHILE.
8.3. Sentenças de Controle
As sentenças abaixo são utilizadas para finalizar o processamento de um bloco ou processo.
- CHECK <cond>.- EXIT.- STOP.- LEAVE.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 13/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
9. Tabelas Internas As tabelas internas são utilizadas para guardar vários registros de dados com a mesma estrutura namemória.
9.1. Como Declarar Tabelas Internas
Exemplo de uma maneira de declaração de tabelas internas:
DATA: BEGIN OF <tabela> OCCURS <n>,<Def.Campo>,… END OF <tabela>.
9.2. Carregando uma Tabela Interna
APPEND: Insere um registro na tabela interna com os valores carregados na área de trabalho.
APPEND <tabint>.
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>.
9.3. Ordenando uma Tabela Interna
Para classificar uma tabela interna utilizamos SORT.
SORT <intab>.
SORT <intab> BY <campo1> .... <campo n>. SORT ... ASCENDING. o DESCENDING.
9.4. Processamento de uma Tabela Interna
Podemos percorrer uma tabela interna com a instrução LOOP ... ENDLOOP.LOOP AT <intab> ( WHERE <cond>). ENDLOOP.
LOOP AT<intab> FROM <inicio> TO <fim>.
… ENDLOOP.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 14/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
9.5. Leitura de Registro de uma Tabela
Podemos buscar um registro em uma tabela sem a necessidade de percorrer toda a tabela.
READ TABLE <intab>.
READ TABLE <intab> WHIT KEY <clave>.
READ TABLE <intab> WITH KEY <clave> BINARY SEARCH.
READ TABLE <intab> INDEX <num>.
9.6. Modificando Tabelas Internas
Para modificar os registros existentes em uma tabela interna:
MODIFY <intab> (INDEX <i>).
INSERT <intab> (INDEX <i>).
DELETE <intab> (INDEX <i>).
Outras instruções para tabelas internas:
9.7. Outras Instruções para Tabelas Internas
CLEAR <intab>.
REFRESH <intab>.
FREE <intab>.
DESCRIBE TABLE <tab>LINES <contador_entradas>OCCURS <valor_occurs>.
10. Dicionário de DadosO dicionário de dados (D.D.) é uma fonte de informação centralizada.
Os distintos objetos do dicionário de dados estão estruturados em:
Os elementos de dados descrevem o significado de um campo independente da tabela.
Os domínios descrevem o campo de valores possíveis.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 15/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
11. Outros Aspectos do Dicionário de Dados
11.1. Controle de Mandante
O controle é automático (desde que a tabela possua o campo mandante). Sempre se processará omandante em uso.
11.2. Sentenças em SQL Nativo
Podemos executar qualquer sentença de SQL permitida pelo gerenciador da base de dados sobre oqual o sistema R/3 tenha sido implementado, utilizando EXEC SQL. Neste caso as instruções da basede dados não estão restringidas ao subconjunto de instruções SQL ABAP.
EXEC SQL.
< Instruções SQL-Nativas>.
ENDEXEC.
11.3. Chave Primária
Uma tabela deve ter pelo menos um campo que identifique o registro. Este(s) campo(s) é chamado de
chave ou chave primária. Os dados da chave primária devem ser únicos na tabela.
Tomando como exemplo a tabela MARA (Dados gerais de material), temos como chave os camposMANDT e MATNR. Isto significa que, para um determinado mandante, apenas um registro para cadamaterial poderá ser gravado.
Se passarmos agora para a tabela MARC (Dados de centro para material), onde a chave é compostapelos campos MANDT, MATNR e WERKS, podemos gravar mais de um registro para um mesmomaterial (para centros diferentes).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 16/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
11.4. Indices
Os índices são criados para otimizar o processo de busca de registros segundo um critério de seleção.Exemplo: Na tabela MARA, existe um índice para busca dos materiais segundo seu tipo.
Obs: A criação de um índice deve ser efetuada segundo criteriosa avaliação. Apesar de ajudar nabusca dos registros, a existência do índice prejudica a performance do banco na criação de novosregistros.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 17/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
11.5. Relacionamento
Em bancos de dados relacionais, como o próprio nome indica, as tabelas estão relacionadas. Algunscampos de uma tabela são os responsáveis pela ligação com outra(s) tabela(s).
Exemplo:
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 18/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
12. Instruções SQL de ABAP ABAP tem um subconjunto de sentenças SQL para sua aplicação sobre as tabelas da base de dadosSAP.Exemplo: SELECT, INSERT, UPDATE, MODIFY, DELETE, COMMIT WORK, ROLLBACK WORK.
12.1. Select
A sentença SELECT é a instrução fundamental para ler a informação da base de dados. Podemos leruma 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 oumodificado 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>.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 19/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
DELETE FROM <tab> FROM TABLE <intab>.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 20/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
IV. SQVI / Query1. SQVI (QuickViewer)
Criação de “relatório” para uso pessoal. O “relatório” fica disponível apenas ao usuário que efetuou suacriação.
Transação SQVI
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 21/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Acionando “Voltar” (F3)
Selecionar os campos de seleção e os campos da lista.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 22/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
ExecutandoTela de Seleção
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 23/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Lista
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 24/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
2. Query
O “relatório” criado fica disponível a todos os usuários que possuam acesso ao infoset ligado à query.
Para criar uma query se faz necessário:- Infoset: Base de Informação;- Grupo de Usuários: usuários que terão acesso ao infoset.
Ou seja, precisamos do conjunto: QUERY (SQ01) + INFOSET (SQ02) + Grupo de Usuários (SQ03).
2.1. Infoset (Transação SQ02)
No infoset definimos as informações, tabelas e campos, disponíveis para utilização em uma query.
Informar o nome da tabela base e avançar.
Como exemplo utilizaremos a tabela SPFLI.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 25/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Inserindo uma nova tabela ( ).
Teremos:
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 26/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Acionar o botão Infoset ( ) para seguir com a definição dos campos:
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 27/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Para incluir um campo, basta arrastá-lo ao grupo desejado.
Após a definição dos campos, gerar o infoset ( ).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 28/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
2.2. Grupo de Usuários (Transação SQ03)
Ao grupo de usuário, efetuamos a atribuição dos infosets que poderão ser utilizados pelo grupo e,também, dos usuários que fazem parte do grupo.
Atribuição – Infosets
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 29/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Atribuição – Usuários
2.3. Query (Transação SQ01)
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 30/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Na query definimos quais serão os parâmetros de seleção e as colunas de saída do relatório.
Efetuar a seleção dos campos (Tela de Seleção e Lista de Saída).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 31/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Testar
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 32/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
OBS:- Área de trabalho
Área standard permite a utilização da transação START_REPORT. A transação START_REPORT é utilizada para associar a query criada a uma transação.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 33/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
V. LSMW (Legacy System Migration Workbench)Transação para criação de programas de carga de dados.
Definir o nome do Projeto, do Subprojeto e do Objeto.
Acionar o botão Executar.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 34/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
No passo “Maintain Object Attributes” definimos qual a carga e como ela será efetuada.
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.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 35/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
No passo “Maintain Source Fields” definimos os campos da(s) estrutura(s).
No passo “Maintain Structure Relations” efetuamos a ligação entre a(s) estrutura(s) de entrada e a(s)estrutura(s) de carga.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 36/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
No passo “Maintain Field Mapping and Conversion Rules” efetuamos a amarração entre os cam posorigem e destino.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 37/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
O passo “Maintain Fixed Values, Translations, User -Defined Routines” não é obrigatório. Este passo
serve para a criação de constantes, rotinas (forms) e traduções. Os objetos criados aqui ficamdisponíveis para todo o projeto.
O passo “Specify Files” é utilizado para indicar a origem do(s) arquivo(s) de entrada e onde serãogravados os dados importados e convertidos. É neste passo que definimos também o padrão doarquivo importado (separado por tabulação, separado por “;”, etc). ‘
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 “Main tainField 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 “MaintainObject Attributes” a opção DI (Direct Input). Escolhendo, por exemplo, a opção Batch Input, teríamosapós a opção “Display Converted Data” as opções “Create Batch Input Session” e “Run Batch InputSession”.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 38/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
VI. SHDB (Batch Input Transaction Recorder)Transação utilizada para efetuar o mapeamento (telas e comandos) de uma transação.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 39/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
VII. BAPI (BAPI Explorer)Business Application Programming Interface
Na transação BAPI, é possível procurar uma bapi de acordo com a área de negócio.
Identificando um campo em uma bapi
Utilizando como exemplo a bapi para criação de “Pedido de Compra” - BAPI_PO_CREATE1.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 40/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Visualizando os campos da estrutura de importação, BAPIMEPOHEADER, temos:
- Obtendo detalhes do campo “Pedido” (acionando F1 e depois Informação Técnica):
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 41/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Efetuando um click duplo sobre o elemento de dados EBELN:
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 42/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Observe que o nome informado em “Nome componente default” é o mesmo utilizado na estrutura de
importação BAPIMEPOHEADER.
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 camponú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”.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 43/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
VIII. Exit / Badi / Field ExitExit, badi e field-exit são utilizadas para inserir códigos “Z” no processamento de transações standard.
Exit e badi possuem o mesmo conceito, diferenciam-se apenas na maneira de implementação. Sãoacionadas durante algum evento na transação standard como por exemplo a gravação de umdocumento, a liberação de uma ordem, etc.
Field-exit normalmente é utilizada para efetuar a validação de um campo de uma transação como porexemplo a validação do CNPJ no cadastro de cliente. A field-exit fica associada diretamente aoelemento de dados do campo que se deseja validar e pode ser ativada de maneira global (a validaçãoé efetuada em todas as transações que possuírem um campo com o elemento de dados associado à
field-exit) ou restrita (atribuída a um programa e tela específica).
Exemplo de como encontrar exit e badi para uma transação
Utilizando como exemplo a transação para criação de notas de qualidade, QM01.
Acessar a transação SE93 e exibir detalhes da transação QM01:
Efetuar um click duplo sobre o campo pacote (QQM).
Na exibição do pacote QQM, acionar o botão “Exibir lista de objetos” ( ).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 44/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Nos pacotes normalmente existem grupos de funções para “Customer Exits” (Exits) e ampliações(Badis).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 45/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
IX. DebugÉ possível efetuar um debug em um programa ABAP através do comando /H ou criando um ponto deparada no programa.
Exemplo de programa em modo de debug:
O comando “F5” executa uma etapa individual.
O comando “F6” executa uma rotina (um form, um call function, etc) de uma só vez passando parapróxima linha executável do programa.
O comando “F7” retorna para a próxima linha executável após a chamada da rotina (um form, um callfunction, etc) atual. Tomando a tela acima como exemplo, ao acionar “F7” voltaríamos para uma linhaapós a chamada do form pai (ou seja para a linha após o comando perform pai).
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 é efetuadopor completo (ou até um ponto de parada ativo, caso exista um).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 46/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Criação de “Pontos de parada”
Em modo debug:
Ativando um ponto de parada em um programa ativo:
Basta acionar o botão na linha desejada
Incluindo no programa uma linha com o comando break-point ou break <user>.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 47/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
X. Análise de PerformanceSE30: Análise tempo execução objetos ABAP
Com essa transação é possível avaliar a execução de um programa, de uma transação ou de ummódulo de função.
Abaixo exemplo da execução de um programa:
Acionando o botão “Executar”, o programa (ou transação/função) informado é iniciado.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 48/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Preencher os parâmetros e executar o programa normalmente.
Após a execução do programa, voltar para tela inicial da transação SM30.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 49/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Observe que o nome do arquivo para avaliação foi modificado. A transação SM30 gerou um arquivocom os dados da execução do programa ZTESTE_PERFORMANCE.
Acionando o botão “Avaliar”, temos o gráfico da execução:
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:
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 50/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
- ABAP: tempo gasto para execução das rotinas ABAP (chamadas de forms, atribuição de valores a
variáveis e tabelas internas, etc);- Banco de Dados: tempo gasto no acesso ao banco de dados (select, insert, delete, modify, etc);- Sistema: tempo gasto pelo sistema, por exemplo, para exibição de uma tela ou de uma mensagem.
Observe que o programa ZTESTE_PERFORMANCE está consumindo muito Banco de Dados (estágastando muito tempo em acesso aos dados).
Acionando o botão “Lista de Ocorrências” ( ) , temos os detalhes da execução:
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).
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 51/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Na lista, temos os pontos de acesso ao banco de dados e seu consumo.No exemplo acima, observe que os pontos críticos (maior consumo segundo percentual exibido) estãono programa ZTESTE_PERFORMANCE no acesso às tabelas CAUFV e RESB.Posicionando o cursor sobre a linha e acionando o botão “Exibir Texto Fonte”, é possível navegar parao ponto do programa onde a instrução é executada.
Exibição do programa:
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 52/53
Academia ABAP/SAP – www.ztreinamentos.com / [email protected]
Obs: O aconselhável é que a execução do programa esteja “balanceada”.
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.
8/17/2019 Aprendendo lógica ABAP
http://slidepdf.com/reader/full/aprendendo-logica-abap 53/53
XI. Transações ÚteisCMOD Ampliações
DB20 Atualizar estatísticas de banco dadosSE03 Ferramentas de Transport Organizer
SE18 BAdI Builder - definiçõesSHD0 Variantes de transação e de telaSM01 Bloquear Transações
SM04 Lista de usuáriosSM12 Exibir e eliminar bloqueios
SM13 Administrar registros de atualizaçãoSM37 Síntese da seleção de jobs
SM51 Lista dos sistemas SAPSMOD Administração de ampliações SAPST05 Trace
SUIM Sistema info usuário