Escolar Documentos
Profissional Documentos
Cultura Documentos
ÍNDICE
CAPÍTULO 1 - Introdução ao SAP ................................................... 3
O que é ERP? .................................................................................................. 3
O que é SAP? .................................................................................................. 5
Transações ...................................................................................................... 7
Diferentes tipos de Usuários SAP ..................................................................... 8
Introdução à Programação Básica em ABAP .................................................... 8
Transação SE38 .............................................................................................. 9
Ordem Tarefa request e Package(Development class) ..................................... 9
Exemplos e Exercícios ...................................................................................... 10
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 1
ÍNDICE INTRODUÇÃO AO ABAP
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 2
CAPÍTULO 1 INTRODUÇÃO AO SAP
1 INTRODUÇÃO AO SAP
O que é o ERP?
O ERP (Enterprise Resources Planning) ou Sistema Integrado de Gestão de
Empresa é um agrupamento coerente de softwares que lhe proporcionam visão das
operações de sua empresa em tempo real.
O ERP lhe mostra como está sua empresa a cada instante, desde que sua equipe
introduza nele as informações relevantes para a descrição de sua empresa.
Conceitos Básicos
Os sistemas ERP são compostos por uma base de dados única e por módulos que
suportam diversas atividades das empresas. A figura abaixo apresenta uma estrutura típica
de funcionamento de um sistema ERP. Os dados utilizados por um módulo são
armazenados na base de dados central para serem manipulados por outro módulos.
Os módulos citados na figura abaixo estão presentes na maioria dos sistemas ERP. Além
deles, alguns sistemas ERP possuem módulos adicionais, tais como: Gerenciamento da
Qualidade, Gerenciamento de Projetos, Gerenciamento de Manutenção, entre outros.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 3
CAPÍTULO 1 INTRODUÇÃO AO SAP
Por esse motivo, a decisão de implantação de um sistema ERP só deve ser tomada
após uma análise detalhada dos processos da empresa e das funcionalidades dos
sistemas ERP. Além disso, é muito importante que as empresas considerem, desde o
início da implantação, os impactos que a redefinição dos processos e a introdução do
sistema terão na estrutura, cultura e estratégia da organização.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 4
CAPÍTULO 1 INTRODUÇÃO AO SAP
O que é SAP?
Os softwares SAP rodam em mais de 36 mil instalações, espalhadas por 120 países, e são
atualmente utilizados por empresas de todos os tamanhos, incluindo mais da metade das
500 maiores empresas do mundo. Air France, Audi, Bayer, BMW, Bosch, Burger King,
Deutsche Bank, Heineken, Honda, KPMG, Lufthansa, MLP, Nestlè, Nokia, Osram, Pfizer,
Siemens, Texaco Worlwide, Visteon, Wuerth, barnesandnoble.com, Westell Technology e
Streamline.com estão entre o rol de clientes SAP.
A SAP emprega um total de 6.655 desenvolvedores de software ao redor do globo. Como
complemento ao maior centro de desenvolvimento na matriz da SAP, em Walldorf,
Alemanha, a rede de laboratórios de desenvolvimento da empresa tem escritórios em Palo
Alto (EUA), Tokyo (Japão), Bangalore (Índia) e Sophia Antipolis (França), assim como nas
cidades alemãs de Berlim, Karlsruhe e Saarbruecken.
Fonte: www.sap.com.br
Para acessar o SAP, de um duplo clique com o botão direito do mouse no ícone SAPLogon
na Área de Trabalho, ou acesse pelo caminho: Iniciar → Programas → Sap Front End →
SAPLogon. Você verá a seguir a seguinte tela:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 5
CAPÍTULO 1 INTRODUÇÃO AO SAP
Neste exemplo, temos ao todo 8 instâncias, e cada instância pode ter um determinado
número de client’s(mandantes).
Instância X Client(Mandante)
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 6
CAPÍTULO 1 INTRODUÇÃO AO SAP
Client (Mandante) – É definido como sendo uma unidade independente do SAP, em termos
técnicos, organizacionais e comerciais. Isto é, possuem suas próprias configurações, dados
de aplicação e dados cadastrais (master data).
Instância Mandante
QAS – testes 320
310
300
SO1 - Desenvolvimento 220
210
Uma instancia de Trabalho, geralmente possui mais de um mandante, onde são trabalhados
simultaneamente diferentes frentes de trabalho do projeto. A intenção dessa divisão é que
possa trabalhar somando valores, sem que haja conflitos e interesses. Por exemplo, durante
um projeto o mandante para customização de ABAP deve ser diferente dos outros, pois
trabalha muito com testes e alterações constantes, o que inviabiliza outros tipos de serviços.
Se essa divisão muitas vezes ajuda, algumas vezes atrapalha. Geralmente as massas de
dados são diferentes nos mandantes, e o comportamento principalmente nos testes dos
produtos customizados pode ser diferente.
Transações
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 7
CAPÍTULO 1 INTRODUÇÃO AO SAP
Basis (DBA) – O DBA (Data Base Administrator) do SAP se chama Basis, este usuário
tem a finalidade de controlar toda à parte de base de dados do Sistema SAP, como por
exemplo, crescimento de tabelas, verificar o tempo dos processos em execução, verificar
o tempo de execução dos programas.
O que é ABAP?
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 8
CAPÍTULO 1 INTRODUÇÃO AO SAP
Transação SE38
Para todas as ações efetuadas no ABAP como, por exemplo, criação de programas, criação
de transações, etc..., o ABAP cria uma REQUEST, ou uma ordem de modificação. Esta
request, nada mais é do que um número onde se encontra a alteração ou criação de
programas no ABAP.
Para controlar estas alterações, o ABAP cria também as chamadas Package. Estas são
pastas que servem para organizar as lista de request (alterações) realizadas nos programas.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 9
CAPÍTULO 1 INTRODUÇÃO AO SAP
A package $TMP foi criada para armazenar os objetos desenvolvidos localmente pelo
programador, portanto, não estão relacionados com uma request.
Exemplos e Exercícios
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 10
CAPÍTULO 1 INTRODUÇÃO AO SAP
Para criar um programa novo escolha programas no campo e nomeie seu programa,
lembrando que os programas devem começar com a letra Z ou Y. Esta configuração foi
adotada pela SAP para distinguir os programas criados pelos usuários dos programas
criados pela própria SAP.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 11
CAPÍTULO 1 INTRODUÇÃO AO SAP
Exemplo número um
WRITE: '111111'.
WRITE: '222222',
'333333'.
WRITE: /'111111'.
WRITE: 15 '333333'.
WRITE: / TEXT-001.
ULINE.
ULINE 8(6).
SKIP.
SKIP 2.
WRITE: 8 SY-LANGU.
WRITE: / SY-DATUM UNDER SY-LANGU.
Neste exemplo, apresentamos o comando write, uline, skip e variáveis do sistema como sy-
langu, sy-datum.
Atenção ao cabeçalho do programa:
REPORT Z_EXERC_1 – Programa do tipo report com o Nome Z_EXERC_1
NO STANDARD PAGE HEADING – não apresenta cabeçalho padrão.
MESSAGE-ID ZSADUP. – código de mensagens com o nome de Zsadup.
Como resultado, teremos a seguinte execução:
WRITE:/ 'normal'.
FORMAT INTENSIFIED OFF.
WRITE:/ 'negrito'.
FORMAT COLOR 1.
WRITE: /'fundo azul'.
FORMAT COLOR OFF.
FORMAT INTENSIFIED ON.
WRITE: /'normal'.
Variações do comando format.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 12
CAPÍTULO 1 INTRODUÇÃO AO SAP
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 13
CAPÍTULO 1 INTRODUÇÃO AO SAP
Exercício 1
Exercício 2
Resolução do exercício 1
SKIP 5.
ULINE.
ULINE 30(29).
WRITE: /37 TEXT-001.
SKIP.
WRITE: 30 'Dia', 49 SY-DATUM,
/'hora' UNDER 'Dia', SY-UZEIT UNDER SY-DATUM.
SKIP.
ULINE 30(29).
ULINE.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 14
CAPÍTULO 1 INTRODUÇÃO AO SAP
Resolução do exercício 2
SKIP 4.
ULINE 4(88).
WRITE: /4 '|', 5 TEXT-001, 68 '|', 77 SY-DATUM, 91 '|'.
FORMAT INTENSIFIED OFF.
WRITE: 70 'Data:', / ' '.
ULINE 4(88).
WRITE: /5 'Nome:', 70 'Usuário:'.
FORMAT INTENSIFIED ON.
WRITE: 4 '|', 11 'Solution Center', 68 '|', 79 SY-UNAME, 91
'|', / ' '.
ULINE 4(88).
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 15
CAPÍTULO 1 INTRODUÇÃO AO SAP
ANOTAÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 16
CAPÍTULO 1 INTRODUÇÃO AO SAP
ANOTAÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 17
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
2 COMANDOS, INSTRUÇÕES
E MENSAGENS
Exemplo 1.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 18
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Classe de Mensagens
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 19
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
000 é o número da mensagem criada na classe de mensagem ZTEXT (Pode variar entre
000 até 999).
Exemplo 2.
IF P_SOMA = 'X'.
RESULT = P_OPER1 + P_OPER2.
WRITE RESULT.
ENDIF.
IF P_SUB = 'X'.
RESULT = P_OPER1 - P_OPER2.
WRITE RESULT.
ENDIF.
IF P_DIV = 'X'.
RESULT = P_OPER1 / P_OPER2.
WRITE RESULT.
ENDIF.
IF P_MULT = 'X'.
RESULT = P_OPER1 * P_OPER2.
WRITE RESULT.
ENDIF.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 20
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 21
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Estas Mensagens são os erros em tempo de execução, são conhecidos domo “Dump” e
terminam a execução do programa que apresenta este tipo de erro. Outro tipo de Dump, por
exemplo, quando tentamos colocar um valor em uma variável, se este valor for maior que o
tamanho que foi estipulado na variável o dump ocorre.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 22
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Mensagens do tipo: S (success) avisa que determinada parte do programa foi executada
com sucesso e inicializa a próxima fase.
Elementos de texto
Os Elementos de texto são “Mascaras” que deixam as interfaces com o usuário mais
amigáveis.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 23
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Em vez de:
É recomendado:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 24
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Data: <nome da variável(de preferência comece com v_ )> like / type <tipo de variavel>.
Constants: <nome da constante (de preferência comece com c_ )> like / type <tipo de
variavel> value <valor da constante>.
Obs: Nada impede de você usar os operadores tanto para caractere como para variáveis
numéricas, porém para melhorar o entendimento, usamos a convenção acima.
Criação de Transações(SE93)
Esta é a transação para criação de transações. Um caminho mais fácil é pela transação
SE80 clicar com o botão direito do mouse no programa -> Create -> Transaction. Não
esquecer o Short Text.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 25
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Após o Preenchimento da tela anterior, faremos então a seleção do programa para qual
nossa transação apontará. (Para os casos de programas tipo report a tela default e sempre
1000).
Exemplos e Exercícios
Tela de entrada
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 26
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Saída do programa:
case v_oper2.
when '+'.
RESULT = P_OPER1 + P_OPER2.
v_oper = 'Soma'.
when '-'.
RESULT = P_OPER1 - P_OPER2.
v_oper = 'Subtração'.
when '/'.
IF P_OPER2 = ''.
message e012 with text-001.
STOP.
ELSE.
RESULT = P_OPER1 / P_OPER2.
v_oper = 'Divisão'.
ENDIF.
when '*'.
RESULT = P_OPER1 * P_OPER2.
v_oper = 'Multiplicação'.
when others.
message e012 with text-000.
endcase.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 27
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 28
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
ANOTAÇÕES
ANOTAÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 29
CAPÍTULO 2 COMANDOS, INSTRUÇÕES E MENSAGENS
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 30
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
3 TABELAS INTERNAS
E ESTRUTURADAS
Uma estrutura é equivalente a uma tabela interna, porém só possui um registro, sendo
assim uma estrutura é um conjunto de variáveis.
Uma tabela interna, funciona como uma tabela transparente, ela é diferente de uma
estrutura pois pode armazenar mais que um registro, conforme segue, o modelo para uma
tabela interna i_tab:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 31
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
OU
Tables <Nome da estrutura >
Esta declaração serve apenas para variáveis dom o mesmo nome das tabelas
transparentes.
OU
DATA: begin of <Nome da estrutura>,
<campos da estrutura>,
end of <Nome da estrutura>.
Ou
DATA: begin of <Nome da tabela interna> occurs 0,
<campos da tabela>,
end of < Nome da tabela interna >.
O comando select , é o responsável pela capturar dos dados no Banco de Dados e inseri-los
em uma variável interna do programa ABAP.
Os modelos básicos do comando que veremos neste curso são:
Select <Campos> From < Tabela Standart> into <Estrutura> .
<Execuções>
EndSelect .
Este comando funciona como uma seqüência de comandos para acessar o banco de dados
(comportando-se como um looping). Ele também permite uma clausula de condição
(WHERE), porém não é obrigatória.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 32
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
Select <campos> From < Tabela Standart> into table <Tabela interna>.
Este comando só realiza uma busca na base de dados, trazendo todos os valores de uma
vez só. Ele também permite uma clausula de condição (WHERE), porém não é obrigatória.
Para melhor entendimento dos conceitos que acabamos de ler, vamos implementar o
seguinte programa exemplo:
Exemplo 1:
REPORT z_exerc_1 MESSAGE-ID zsadup.
* Declarando estruturas
TABLES spfli.
WRITE: / wa_spfli-carrid,
wa_spfli-connid,
wa_spfli-countryfr,
wa_spfli-cityfrom,
wa_spfli-airpfrom.
ENDSELECT.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 33
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
SKIP.
ULINE.
SKIP.
Atenção para a tabela interna i_tab2 e para a Estrutura wa_spfli1, ambas não possuem
todos os campos da tabela original.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 34
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 35
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
Esta condição que acrescentamos anteriormente poderia ser uma informação passada pelo
usuário para executar algum tipo de relatório, portanto, para o Exemplo 3:
Exemplo 3:
REPORT Z_EXERC_3 MESSAGE-ID ZSADUP.
tables: t005s.
select * from t005s where land1 = p_pais.
write : / t005s-bland.
endselect.
Resultado:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 36
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
if sy-subrc ne 0.
message e012 with text-003.
endif.
Lembrando que no(not equal) ou <> podem ser usados, pressione F1 para abrir o help-
Abap.
Este comando é principalmente usado para tratamento de dados em tabelas internas, por
exemplo, após um comando de Select/ into table, é necessário realizar um loop nesta tabela
interna para ver o seu conteúdo em um relatório.
O modelo deste comando segue abaixo:
Loop at <Tabela interna>
<Rotinas e tratamento>
Endloop.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 37
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
Quando declaramos as tabelas internas conforme o capítulo 3.1, por default, elas possuem
uma linha especial, esta linha é chamada de Header Line. O Header Line funciona como
uma estrutura da própria tabela, toda alteração, movimentação ou leitura de dados nas
tabelas internas possuem uma rotina, onde a tabela transfere o registro o Header Line para
poder processá-lo.
Portando, após realizar uma movimentação de dados para uma tabela interna não esqueça
de utilizar o comando modify.
Exemplos e Exercícios
1) Para este exercício, vamos executar o exemplo 3 afim de obtermos a seguinte saída:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 38
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
uline (14).
If v_cor = 1.
FORMAT color 1.
v_cor = 0.
else.
FORMAT color 2.
v_cor = 1.
endif.
endselect.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 39
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
write: /''.
uline 1(14).
if sy-subrc ne 0.
message i000.
stop.
Endif.
tables: spfli.
i_spfli-carrid = spfli-carrid.
i_spfli-connid = spfli-connid.
append i_spfli.
endselect.
if sy-subrc ne 0.
message e000.
endif.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 40
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
loop at i_spfli.
write:/ i_spfli-carrid, i_spfli-connid.
endloop.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 41
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
ANOTAÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 42
CAPÍTULO 3 TABELAS INTERNAS E ESTRUTURADAS
ANOTAÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 43
CAPÍTULO 4 DEPURAÇÃO
4 DEPURAÇÃO
Comando Select-Options
O comando select-options se assemelha ao comando parameters apresentado
anteriormente, porém se trata de um parâmetro de entrada de valor mais completo,
pois o mesmo abilita a possibilidade de armazenar em uma variável um intervalo de
valores, conforme visto abaixo:
Ao clicar na seta ao lado de cada intervalo a seguinte tela é mostrada contendo 4 pastas:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 44
CAPÍTULO 4 DEPURAÇÃO
Pasta Ranges:
- Verde: Aqui você pode escolher intervalos de valores para incluir na sua seleção.
- Vermelho: Aqui você pode escolher intervalos de valores para excluir da sua seleção.
Atentar quando o botão da seta estiver sinalizado com o quadradinho verde, indicando que
existe pelo menos uma seleção realizada nas quatro pastas...
Veremos agora a sintaxe deste comando juntamente com algumas extensões mais
importantes...
Pode-se acrescentar alguns parâmetros a mais neste comando, verifique o help F1 para
maior detalhes, os mais conhecidos são:
No intervals: exclui o range de dados.
No-extension: exclui a seta para detalhamento da seleção.
Variante de Programa
Imagine você, que exista um programa com muitos parâmetros de entrada, (parameters e
select-options), e você executa este relatório mais que uma vez por dia. Nestas condições
existe uma ferramenta que evita a digitação de todos os parâmetros de entrada toda a vez
que executamos o programa, esta ferramenta se chama variante.
Para gravar uma variante, você (após entrar com os valores) pode clicar no botão salvar, ou
seguir o caminho: Goto > Variants > Save as Variant.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 45
CAPÍTULO 4 DEPURAÇÃO
A seguinte tela aparecerá, onde você só precisará preencher os seguintes campos: Variant
name e Description. Precionando novamente o botão salvar para salvar a variante.
Pressionando este botão você terá a relação de todas as variantes que o programa possui.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 46
CAPÍTULO 4 DEPURAÇÃO
Comando Select-Screen
O Comando select-screen, será futuramente utilizado para consistências dos valores
lançados pelo usuário na tela, neste primeiro momento utilizaremos este comando para
melhor visualização e separação dos campos de interação do usuário.
Este comando também permite uma estrutura em arvore, ou seja, você tem a possibilidade
de abrir um bloco dentro de outro bloco, como comandos IF´s encadeados, conforme segue:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 47
CAPÍTULO 4 DEPURAÇÃO
O que é Debugger?
O debugging é uma ferramenta que funciona em tempo de execução, fazendo com que o
programa seja executado passo a passo pelo programador.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 48
CAPÍTULO 4 DEPURAÇÃO
Comandos Principais
A informação que temos logo abaixo da primeira seqüência de botões, é uma barra com
mais alguns botões que será explicado adiante, porém, abaixo desta barra existe um visor
que mostra o programa principal no campo Main Program, e uma rotina ou um Include do
programa apareceria no campo Source code of, caso o programa possua alguma dessas
rotinas.
Ao lado temos um controle de paginação e o número da linha onde o cursor esta
posicionado.
A tela abaixo mostra o programa propriamente dito e em qual será a próxima instrução que
será executada, lembrando que, a instrução apontada pela seta não foi executada ainda.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 49
CAPÍTULO 4 DEPURAÇÃO
Como default, quanto se inicializa uma operação de Debugger o campo Fields já consta
flegado, mostrando para o usuário, na parte inferior da tela um conjunto de 4 campos onde
conseguimos visualizar todas as variáveis do programa em tempo de execução, juntamente
com seus valores.
Porém não conseguimos visualizar o conteúdo das tabelas internas, para isso usamos o
botão Table conforme abaixo.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 50
CAPÍTULO 4 DEPURAÇÃO
Watchpoints são pontos de paradas específicos usados para, por exemplo, parar uma
execução de um looping em uma tabela interna em algum determinado registro. Suponha
que, dentro de um loop em uma tabela interna, com aproximadamente 1000 registros,
ocorrem diversas consistências de valores, e justamente em uma linha desta tabela esta
ocorrendo um erro. Se esta linha for a linha 888 um watchpoint pode ser inserido para fazer
o programa parar justamente um registro anterior à execução da linha que deu o erro, para
podermos acompanhá-lo passo a passo.
Exemplos e Exercícios
1) O primeiro exercício deste capitulo é realizar o comando Debugger em todos os
programas realizados até agora.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 51
CAPÍTULO 4 DEPURAÇÃO
ANOTAÇÕES
ANOTAÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 52
CAPÍTULO 4 DEPURAÇÃO
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 53
CAPÍTULO 5 FUNÇÕES
5 FUNÇÕES
Funções são rotinas prontas de programação, elas em sua maioria permitem uma entrada,
podendo ser uma variável ou uma tabela interna e retornam também uma variável ou tabela
interna para o programa.
Transação SE37
A transação SE37 é a transação responsável pela criação e testes das funções do sistema.
Neste módulo não trabalharemos a construção de funções, iremos focar no teste de funções
e como utilizá-las no programa.
Para este módulo os flap´s mais importantes são:
Import = Nesta pasta existem todos os parâmetros que devemos informar na função para
sua execução.
Export = Nesta pasta existem as variáveis ou tabelas de retorna da função.
Source code = Nesta pasta se encontra o código fonte da função.
Este botão é utilizado para realizar o teste em uma função, no caso da função
WEEKDAY_GET, ela não necessita de um parâmetro de entrada, pois a mesma retorna o
dia da semana atual. O retorno desta função é numérico, sendo que os resultados possíveis
são 0-1-2-3-4-5-6, respectivamente Domingo, segunda..., sábado.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 54
CAPÍTULO 5 FUNÇÕES
A função Gui_dowload gera um arquivo com o conteúdo de uma tabela interna segue abaixo
os parâmetros de entrada e saída.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 55
CAPÍTULO 5 FUNÇÕES
Primeiramente para chamar uma função, é necessário chamar o comando CALL FUNCTION
<Nome da função>, para tornar o processo de digitação reduzido as ferramentas do sistema
ABAP Workbench possuem algumas facilidades como por exemplo o botão Pattern.
Você pode verificar que muitas linhas da função já estão comentadas, estas linha não são
comandos obrigatórios podem cada um possuí uma funcionalidade específica conforme a
utilização da função no programa.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 56
CAPÍTULO 5 FUNÇÕES
Exemplos e Exercícios
Verifique e teste pela transação SE37 como funciona as seguintes funções:
1) POPUP_TO_CONFIRM_STEP
tables: spfli.
i_spfli-carrid = spfli-carrid.
i_spfli-connid = spfli-connid.
append i_spfli.
endselect.
if sy-subrc ne 0.
message e000.
endif.
Write text-000.
loop at i_spfli.
write:/ i_spfli-carrid, i_spfli-connid.
endloop.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 57
CAPÍTULO 5 FUNÇÕES
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* IMPORTING
* FILELENGTH =
TABLES
DATA_TAB = i_spfli
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Estudo de Caso
Segue especificação:
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 58
CAPÍTULO 5 FUNÇÕES
Este programa deve apresentar um relatório dos clientes que mais gastaram dinheiro em
vôos em uma determinada compania aérea.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 59
CAPÍTULO 5 FUNÇÕES
Neste estudo de caso, consta alguns comandos que não estão especificados na apostila,
são eles....
Comando READ TABLE:
Este comando realiza a leitura na tabela interna conforme a condição estipulada na clausula
with key, portanto, este comando ao encontrar uma linha que atenda as condições
especificadas ele posiciona a linha no header-line da tabela interna.
Sintaxe:
READ TABLE <i_scustom> WITH KEY <id> = <i_sbook-customid>
Comando SORT:
Este comando realiza a ordenação da tabela interna que pode ser ascendente quanto
descendente, deve-se informar quais os campos devem ser ordenados.
Sintaxe:
SORT <i_sbook> BY <loccuram> DESCENDING/ASCENDING.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 60
CAPÍTULO 5 FUNÇÕES
*&-----------------------------------------------------------*
*& Report Z_AULA_5
*
*&
*
*&------------------- ---------------------------------------*
*&
*
*&
*
*&-----------------------------------------------------------*
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 61
CAPÍTULO 5 FUNÇÕES
v_teste = arq.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 62
CAPÍTULO 5 FUNÇÕES
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 63
CAPÍTULO 5 FUNÇÕES
ANOTAÇÕES
ANOTAÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 64
CAPÍTULO 5 FUNÇÕES
Todos os direitos autorais reservados à ICTraining – Proibida qualquer reprodução total ou parcial 65