Você está na página 1de 75

WORKSHOP ABAP

APOSTILA 1

Klima Consultoria em Informática LTDA


www.klimaconsultoria.com.br
WORKSHOP ABAP

SUMÁRIO

1. CONCEITO ERP...................................................................................................... 3
2. SAP ........................................................................................................................... 6
2.1. Arquitetura SAP ERP ........................................................................................ 8
2.2. Linguagem ABAP.............................................................................................. 9
2.3. Profissionais SAP ............................................................................................ 10
2.4. Visão dos módulos ........................................................................................... 10
3. NAVEGAÇÃO SAP .............................................................................................. 13
3.1. Transação ......................................................................................................... 14
4. AMBIENTES ......................................................................................................... 15
4.1. Requests ........................................................................................................... 15
Exemplo .................................................................................................................. 15
4.2. Objetos iniciados com Y ou Z ......................................................................... 18
4.3. Pacotes ............................................................................................................. 18
5. DICIONÁRIO DE DADOS ................................................................................... 20
5.1. Domínios .......................................................................................................... 22
5.2. Elemento de Dados .......................................................................................... 23
5.3. Tabelas ............................................................................................................. 26
5.4. Exercícios - DDIC ........................................................................................... 29
5.5. Gerador de Atualização ................................................................................... 31
5.6. Visões............................................................................................................... 33
5.7. Ajuda de Pesquisa ............................................................................................ 37
5.8. Tabela de Estrutura .......................................................................................... 40
5.9. Objetos de Bloqueio......................................................................................... 42
6. PROGRAMAS ....................................................................................................... 44
6.1. Criar o Primeiro Programa ............................................................................... 44
6.2. Declaração de Variáveis e Constantes ............................................................. 48
6.3. Parâmetros de Seleção ..................................................................................... 50
6.4. Bloco de Elementos ......................................................................................... 52

1
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.5. Operadores Aritméticos ................................................................................... 53


6.6. Exercícios – Calculadora ................................................................................. 54
6.7. Exercícios – Implementar Instrução CASE ..................................................... 55
6.8. WorkArea......................................................................................................... 55
6.9. Operadores Lógicos ......................................................................................... 56
6.10. Select Single ................................................................................................. 56
6.11. Depuração de Programas .............................................................................. 57
6.12. Exercícios – Select Single ............................................................................ 58
6.13. Criar Transação ............................................................................................ 58
6.14. Eventos ......................................................................................................... 61
6.15. Exercício - Eventos ...................................................................................... 63
6.16. Classe de Mensagem .................................................................................... 63
6.17. Form ............................................................................................................. 65
6.18. Versões de Programas .................................................................................. 66
7. TABELA INTERNA .............................................................................................. 68
7.1. Types ................................................................................................................ 68
7.2. Append ............................................................................................................. 69
7.3. Clear ................................................................................................................. 69
7.4. Modify ............................................................................................................. 70
7.5. Excluindo conteúdo da Tabela Interna ............................................................ 70
7.6. Select ................................................................................................................ 71
7.7. Select For All Entries ....................................................................................... 71
7.8. Exercícios - For All Entries ............................................................................. 72
7.9. Read Table ....................................................................................................... 73
7.10. Exercícios - Read Table ............................................................................... 74

2
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

1. CONCEITO ERP

O Planejamento de recursos empresariais ou ERP (do inglês, Enterprise


resource planning) é processo de negócio de software de gestão que permite a uma
empresa utilizar um sistema de integrado aplicativos para gerenciar o negócio e
automatizar processos relacionados ao uso da tecnologia, serviços e recursos humanos.
Através do ERP é possível monitorar todas as transações de forma integrada e
não redundante em tempo real. Por exemplo: informação da venda de um produto pelo
departamento comercial é disparada para os demais departamentos da empresa, seja de
fabricação, estoque de insumos, logística, marketing, financeiro, contabilidade entre
outros.

No final da década de 50, quando os conceitos modernos de controle tecnológico


e gestão corporativa tiveram seu início, a tecnologia vigente era baseada nos
gigantescos mainframes que rodavam os primeiros sistemas de controle de estoques –
atividade pioneira da interseção entre gestão e tecnologia. A automatização era cara,
lenta – mas já demandava menos tempo que os processos manuais – e para poucos.

3
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

No início da década de 70, a expansão econômica e a maior disseminação


computacional geraram os MRPs (Material Requirement Planning ou planejamento das
requisições de materiais), antecessores dos sistemas ERP. Eles surgiram já na forma
de conjuntos de sistemas, também chamados de pacotes, que conversavam entre si e que
possibilitavam o planejamento do uso dos insumos e a administração das mais diversas
etapas dos processos produtivos.

Seguindo a linha evolutiva, a década de 80 marcou o início


das redes de computadores ligadas a servidores – mais baratos e fáceis de usar que
os mainframes – e a revolução nas atividades de gerenciamento de produção e logística.
O MRP se transformou em MRP II (que significava Manufacturing Resource Planning
ou planejamento dos recursos de manufatura), que agora também controlava outras
atividades como mão-de-obra e maquinário.

Na prática, o MRP II já poderia ser chamado de ERP pela abrangência de


controles e gerenciamento. Porém, não se sabe ao certo quando o conjunto de sistemas
ganhou essa denominação.

O próximo passo, já na década de 80, serviu tanto para agilizar os processos


quanto para estabelecer comunicação entre essas “ilhas” departamentais. Foram então
agregados ao ERP novos sistemas, também conhecidos como módulos do pacote de
gestão. As áreas contempladas seriam as de finanças, compras e vendas e recursos
humanos, entre outras, ou seja, setores com uma conotação administrativa e de apoio à
produção ingressaram na era da automação.

A nomenclatura ERP ganharia muita força na década de 90, entre outras razões
pela evolução das redes de comunicação entre computadores e a disseminação da
arquitetura cliente/servidor – microcomputadores ligados a servidores, com preços mais
competitivos – e não mais mainframes. E também por ser uma ferramenta importante na
filosofia de controle e gestão dos setores corporativos, que ganhou aspectos mais
próximos da que conhecemos atualmente.

As promessas eram tantas e tão abrangentes que a segunda metade daquela


década seria caracterizada pelo boom nas vendas dos pacotes de gestão. E, junto com os
fabricantes internacionais, surgiram diversos fornecedores brasileiros, empresas que

4
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

lucraram com a venda do ERP como um substituto dos sistemas que poderiam falhar
com o bug do ano 2000 – o problema na data de dois dígitos nos sistemas dos
computadores.

Portanto, o software ERP é considerado um aplicativo corporativo, pois foi


projetado para gerir as necessidades originadas ao crescimento intenso das empresas
com o passar dos anos. E devido ao seu desenvolvimento, muitas vezes, requer equipes
dedicadas para personalizar e analisar os dados e para lidar com atualizações e
implantação.

Vantagens do ERP

• Redução de atividades manuais


• Otimizar processos
• Eliminar a redundância de dados
• Reduzir os limites de tempo de resposta no processamento
• Informações confiáveis
• Incorporação de melhores práticas (codificadas no ERP)
• Reduzir o tempo dos processos gerenciais

Desvantagens do ERP

• Alto custo financeiro durante a implantação


• Dependência do fornecedor
• Aumento da carga de trabalho dos servidores da empresa e extrema
dependência dos mesmos
• Requer mudanças substanciais na organização e nos seus processos

• Processo de implementação é longo e complexo

5
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

2. SAP

Os passos iniciais para que a SAP viesse ao mundo iniciaram em 1972, na


cidade de Mannheim, Alemanha, quando cinco engenheiros, ex-funcionários da IBM:
Dietmar Hopp, Hans-Werner Hector, Hasso Plattner, Klaus Tschira e Claus
Wellenreuther, decidiram criar sua própria empresa de desenvolvimento de sistemas,
chamada: Sistemas, Aplicativos e Produtos para Processamento de Dados ou SAP AG
(do inglês: Systems, Applications and Products in Data Processing). Os engenheiros
tinham a visão de desenvolver um software aplicativo padrão para processos de
negócios em tempo real.

Um ano depois, o primeiro componente de contabilidade financeira estava


pronto, formando a base para o contínuo desenvolvimento de outros componentes de
software para aquilo que mais tarde veio a ser conhecido como sistema “R/1”. O “R” é a
primeira letra de “real-time data processing” (processamento de dados em tempo real).
Perto do fim da década, surgiu o SAP R/2 (Realtime System Version 2), o primeiro
produto importante da SAP, um conjunto de módulos de software destinado a
mainframes, que em 1995 já era utilizado por mais de 2000 empresas.

Com o surgimento de novos conceitos, a SAP foi atualizando seu produto, até a
criação do SAP R/3, em 1989. Os produtos R/2 e R/3 não representam versões de um
mesmo sistema, trata-se na verdade de produtos diferentes. O R/2 era um conjunto de
módulos de software destinado a mainframes, enquanto o R/3 foi desenvolvido para o
ambiente cliente/servidor.

O SAP R/3 é um sistema que oferece um conjunto de módulos com diversas


aplicações de negócio. Os módulos são integrados e contém a maior parte das
funcionalidades necessárias às grandes corporações, incluindo manufatura, finanças,
vendas e distribuição e recursos humanos. Cada módulo é responsável por diversos

6
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

processos de negócio, cada um deles baseado em práticas consagradas no mundo dos


negócios. A configurabilidade do sistema é tornada possível pelo grande número de
tabelas que administram desde a estrutura corporativa até a política de desconto
oferecida aos clientes. O sistema oferece o processamento de informações em
verdadeiro tempo real ao longo da empresa onde estiver implementado.

Em 1995, a SAP AG tinha mais de 6.600 colaboradores ao redor do mundo.


Nesse mesmo ano, a SAP liderava o mercado de softwares para ambiente
cliente/servidor. Além disso, a SAP ocupava a quinta posição no ranking das empresas
de software. Hoje, mais de 180.000 empresas possuem o produto da SAP
implementado.

Um dos motivos do sucesso da SAP é o montante investido em pesquisa e


desenvolvimento e as alianças estratégicas que forma com outros desenvolvedores de
sistemas. Estes parceiros criam add-ons (programas complementares) que adicionam
funcionalidades ao software de gestão. Este tipo de união permite que a SAP foque seus
esforços nos seus principais produtos.

Em 1995, a SAP chegou ao Brasil. Para que possa ser corretamente utilizado,
todos os softwares comercializados passam por um processo chamado de localização,
ou seja, a adequação do sistema para atender à legislação brasileira.

7
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

2.1. ARQUITETURA SAP ERP

A SAP baseou a arquitetura do SAP ERP ECC em um modelo de cliente/servidor de


três camadas.

• SERVIDOR DE APRESENTAÇÃO: É a interface de interação do usuário


com o servidor de Aplicação, essa camada de Apresentação é denominada de
FRONTEND.
O FRONTEND recebe os comandos do usuário e envia para processamento,
após o processamento o servidor de Aplicação retorna dados para exibição.
Atualmente é utilizado como Servidor de Apresentação o SAPGUI, Browser,
etc.

8
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

• SERVIDOR DE APLICAÇÃO: O servidor de Aplicação é um conjunto de


executáveis que interpreta e gerencia programas em ABAP. Os programas são
executados nesse servidor.
A chamada é feita no servidor de Apresentação e o processamento é feito no
servidor de Aplicação.

• SERVIDOR DE BANCO DE DADOS: O servidor de Banco de Dados aceita


as solicitações de dados feita pelo servidor de Aplicação. As solicitações são
controladas pelo SGDB (Sistema Gerenciador de Banco de Dados) que realiza a
transferências de dados entre o servidor de Banco de Dados e o Banco.
Exemplo de banco de dados: Oracle, MS SQL, Progress...

2.2. LINGUAGEM ABAP

ABAP (Advanced Business Application Programming) é uma linguagem de


programação de alto nível desenvolvida pela SAP. A sintaxe é semelhante ao
Cobol, e em 1999 com a versão R/3 4.5 passou a suportar programação
orientada a objetos.

O ABAP foi desenvolvido em C e o ambiente SAP foi todo desenvolvido em


ABAP. Todos os programas em ABAP residem dentro da base de dados do
SAP. Não são armazenados em arquivos separados como programas Java ou
C++.

9
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

2.3. PROFISSIONAIS SAP

Para a área de atuação SAP existe três linhas de profissionais: Funcional,


BASIS e ABAP.

• FUNCIONAL: Os consultores funcionais são profissionais que detém o


conhecimento sobre os processos de uma determinada linha de negócio, e como
estes estão mapeados nos aplicativos. Em geral, os funcionais são especialistas,
que trabalham próximos aos clientes, na definição dos processos de negócio e
utilização do sistema.

• BASIS: O administrador BASIS é responsável pela gestão do ambiente SAP. As


responsabilidades desse profissional incluem configuração, monitoramento,
ajuste e resolução de problemas no ambiente técnico SAP.

• ABAP: O profissional ABAP é responsável por escrever soluções relacionadas


as funcionalidades do SAP. Ou seja, são especialistas cujas atribuições são:
conceber, desenvolver e testar programas criados para os módulos do SAP, em
função de solicitações de profissionais especialistas.

2.4. VISÃO DOS MÓDULOS

O ERP da SAP é dividido em diversos módulos que são integrados e contém


a maior parte das funcionalidades necessárias às grandes empresas, incluindo
manufatura, finanças, vendas e recursos humanos. Cada módulo é responsável
por milhares processos, cada um deles baseado em práticas no mundo dos
negócios.

Alguns dos principais módulos do SAP R/3 e suas respectivas funções:

10
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

FI (Financial Accounting) - Gestão Financeira: Contabilidade geral, contas a pagar e


receber, tesouraria, tributos, consolidações e sistemas de informações de finanças.

CO (Controlling) – Controladoria: Contabilidade de classes de custos, gestão de centros


de custos, contabilidade de projetos, cálculo de resultados e controle empresarial.
Auxilia na tomada de decisão através do controle do fluxo de custos e receitas da
empresa.

AM (Account Management) - Gerenciamento De Ativos: Gestão técnica de ativos,


fixos, manutenção preventiva e de reparação, controle de investimentos e contabilidade
de ativos fixos (amortizações).

PS (Project System) - Sistemas De Projetos: Gestão de fundos e recursos, controle de


qualidade, sistema de informação de direção de projeto.

WF (Workflow) – Fluxo de trabalho: Ferramenta de suporte a todos os módulos


automatiza o processo empresarial com base em procedimentos e regras pré-definidas,
ativa-se automaticamente.

IS (Industries specific solution) - Soluções Por Indústrias: Soluções setoriais com


funcionalidades específicas para cada setor. Incorpora as melhores práticas
empresariais, possui prática total de setores empresariais.

SD (Sales and Distribution) - Vendas e Distribuição: Gestão de marketing, gestão de


pedidos de compra, gestão de compras, gestão de entregas, faturamento e sistema de

11
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

informação de venda. Permite otimizar todas as atividades pertinentes à vendas,


entregas e cobranças.

MM (Materials management) - Gerenciamento De Materiais: Gestão de estoque, gestão


de ordens de serviços, gestão de compras, gestão de serviços, controle de faturamento,
avaliação de fornecedores e sistema de informação de compras além de suportar as
atividades de suprimentos e inventário.

PP (Production Planning) - Planejamento e Produção: Usado para planejar e controlar


as atividades e manufatura da empresa contém listas de materiais, horas de produção,
centro de trabalho, planificação de vendas expedições, controle de fabricação, cálculo
de custos de produção e sistema da informação para fabricação.

QM (Quality Management) - Gerenciamento de Qualidade: Inspeções de qualidade


(compras, vendas, fabricação e estoque), planificação de qualidade e sistema de
informação da qualidade.

PM (Plant Maintenance) - Gerenciamento De Manutenção: Gestão de serviços


técnicos, planificação da manutenção, listas de materiais da manutenção e sistema de
informação da manutenção.

HCM (Human Capital Management) - Recursos Humanos: Processamento de


vencimentos, gestão de tempos, proc. despesas de viagens, recrutamento, empréstimos,
gestão de cadastros, gestão empresarial, ferramentas de análises, sistema de informação
para RH.

12
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

3. NAVEGAÇÃO SAP

Esses sãos os símbolos do SAP GUI (Graphical User Interface), para iniciar o sistema é
necessário executar.

Em seguida é aberta a janela com as conexões, com o SAPLOGON é possível acessar


qualquer servidor da SAP.

Tela inicial de Logon do SAP.

Mandante é uma unidade independente do sistema, possuindo seus próprios ambientes


de dados.

13
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Tela principal do SAP

3.1. TRANSAÇÃO
Cada funcionalidade do SAP pode ser acionada por uma opção no menu
principal ou por um código que servirá como atalho para essa opção. Esse atalho é
denominado de transação.

Todo programa em ABAP deve possuir uma transação para que demais usuários
possam acessar.

Principais transações para o ABAP:

Transação Descrição
SE09 e SE10 Manutenção de request
SE11 Dicionário de dados
SE16 e SE16N Exibição de dados de tabela
SE24 Editor de classes
SE30 Análise em tempo de execução
SE37 Editor de funções
SE38 Editor de programa ABAP
SE39 Editor de programa com tela dividida
SE71 Formulário SAPSCRIPT
SE80 Navegador de objetos ABAP
SE91 Classe de mensagem
SE93 Transações
ST05 Análise de performance
ABAPDOCU Documentação de ABAP e exemplos
SHDB Registrador de transação
SMARTFORMS Formulário SMARTFORMS

14
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

4. AMBIENTES

Um sistema de projeto SAP standard é dividido em três ambientes:


Desenvolvimento, Qualidade e Produção.

Desenvolvimento Qualidade Produção

Ambiente de Ambiente onde todos Ambiente onde


implementação. os testes finais são ocorrem as atividades
realizados. e transações diárias.

4.1. REQUESTS

Transações SE09/SE10

As requests são utilizadas no SAP para permitir a gravação de modificações no


sistema. Através da criação e liberação de uma request, a alteração realizada é validada
e é integrada no ambiente de produção.

EXEMPLO

Criação de uma request

Passo 1: Para criar uma nova request, acesse a transação SE09 ou SE10 e clique no
item mostrado na imagem abaixo.

15
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Passo 2: Escolha a opção Ordem de workbench.

Passo 3: Informe a descrição da request. Geralmente, cada empresa adota um padrão


para facilitar o entendimento. Exemplo: MM_NOMESOLICITANTE_DATA-
DESCRIÇÂO.

16
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Para várias tarefas, pode ser utilizado o mesmo nome. Isso deve ser utilizado,
quando as tarefas estiverem relacionadas. Exemplo: Tarefas distintas solicitadas por
uma única ordem de serviço.

Visualização e liberação de uma request

O processo de visualização e liberação de requests é realizado por funcionários


previamente autorizados.

Passo 1: Acesse a transação SE09 ou SE10.

Passo 2: Libere inicialmente as tarefas relacionadas a request (TASK), clicando sobre a


TASK e em seguida no botão de liberação. Esse método deve ser realizado para todas as
atividades que devem ser liberadas. Caso todas as tasks sejam liberadas, a request
também pode ser liberada, pelo mesmo procedimento.

17
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

4.2. OBJETOS INICIADOS COM Y OU Z

Os nomes de todos os programas, tabelas, domínios e elementos de dados


criados no SAP devem iniciar com Y ou Z. Todos os outros caracteres (A, B, C,
...) são reservados pela SAP. Ao tentar criar um objeto desrespeitando essa regra
será emitida uma mensagem de erro.

4.3. PACOTES

Transação SE80

Os objetos (tabelas, programas, etc) de desenvolvimento são organizados


logicamente dentro do repositório de objetos no ambiente SAP. Essa organização é feita
por pacote, por exemplo: Pacotes por módulos (MM, FI, CO, etc), pacote por integração
com outro sistema, pacote por projeto, etc.

O pacote que o objeto está gravado não influencia em seu funcionamento, caso
um objeto seja gravado em um pacote errado vai continuar funcionando normalmente
afetando somente na gestão.

Dica: Um pacote não é criado a cada novo desenvolvimento, caso já exista um


correspondente com a sua atividade pode indicar algum pacote já existente.

Dica 2: Os pacotes geralmente são criados no início de projeto.

18
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Para criar um pacote acessar a transação SE80

Informar o nome do pacote e pressionar ENTER, caso o pacote não exista será aberta
uma nova janela perguntando se deseja criar o pacote.

19
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Indicar o nome do pacote e pressionar ENTER.

5. DICIONÁRIO DE DADOS

Transação SE11

O Dicionário de dados do SAP ERP (Data Dictionary – DDIC) é um utilitário para


definir objetos de dados. Com o dicionário de dados, você pode criar e armazenar
objetos como tabelas, elemento de dados, domínios, visualizações, estrutura de dados e
outros.

20
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

NOTA: O Dicionário de Dados (DDIC) está dentro do SAP ERP e não é um banco
de dados veja a imagem:

O DDIC funciona como um FRONT END, pois as instruções e dados são enviadas
para os bancos de dados através do SGBD (Sistema Gerenciador do Banco de Dados).

Por exemplo, ao criar (e ativar) uma tabela o DDIC envia os comandos para o
SGBD, fazendo com que ele crie a tabela real no banco de dados.

No DDIC existem 3 tipos de tabelas: Transparentes, Cluster e Pool.

• TABELA TRANSPARENTE: São as principais tabelas de dados utilizados no


sistema, todos os dados empresariais e dados de aplicação são arquivados em
tabelas transparentes.

Existe uma tabela física no banco de dados para uma tabela transparente. O
nome da tabela e as definições lógicas são iguais no DDIC com o banco de
dados.

DICA: 98% das tabelas criadas nas customizações são Transparentes

• TABELA CLUSTER: São tabelas criadas para armazenar dados muito


grandes, por exemplo: textos contínuos. É possível agrupar várias tabelas cluster
em um cluster de tabela e isso é possível quando possuem suas chaves primárias
em comum e se os dados nessas tabelas fossem todos acessados
simultaneamente. As linhas são combinadas com base na parte da chave
primária que elas têm em comum. Assim, quando uma linha é lida de qualquer
uma das tabelas no cluster, todas as linhas relacionadas em todas as tabelas de
cluster também são recuperadas. As tabelas de cluster reduzem o número de
leituras do banco de dados e assim melhoram o desempenho.

21
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

• TABELA POOL: São tabelas para arquivar dados de controle (por exemplo,
sequências de telas, parâmetros de programa ou dados temporários). O DDIC
utiliza pools de tabela para armazenar um grande número (dezenas a milhares)
de tabelas muito pequenas (aproximadamente de 10 a 100 linhas cada uma). Os
pools de tabela reduzem a quantidade de recursos de banco de dados necessários
quando muitas tabelas pequenas têm de ser abertas ao mesmo tempo.

5.1. DOMÍNIOS
Um domínio indica as características técnicas de um campo, por exemplo o
formato (caractere, data, inteiro, etc) seu tamanho, máscara, etc.

Para criar um Domínio acessar a transação SE11.

Selecionar a opção Domínio, informar o nome e clicar em Criar.

22
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Informar Descrição, categoria de dados e número de posições

NOTA: Os Domínios são reutilizáveis.

5.2. ELEMENTO DE DADOS


O elemento de dados contém informações técnicas (Domínio) de um campo, a
documentação on-line (quando pressiona F1), a lista de valores possíveis para o
campo (MatchCode) e a descrição do campo. Os rótulos que você oferece dentro
de um elemento de dados serão exibidos na tela ao lado de um campo de
entrada.

NOTA: Os Elementos de Dados são reutilizáveis.

Para criar um Elemento de Dados acessar a transação SE11.

Selecionar a opção Categoria de dados, informar o nome e clicar no botão Criar.

23
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Marque a opção Elemento de Dados

24
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Informe a descrição e o domínio, em seguida ir na aba Denomin. Campo

Informar a descrição do texto breve, médio, longo e título.

Verificar, Gravar e Ativar

25
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

5.3. TABELAS
Uma tabela é composta de campos e para criar um campo você precisa de
elemento de dados que por sua vez está atribuída a um domínio.

CAMPO ELEMENTO DE DADOS DOMÍNIO

Os nomes de campos podem começar com qualquer caractere.


Entretanto, certas palavras são reservadas e não podem ser utilizadas como
nomes de campo. A tabela TRESE contém as palavras reservadas. Para acessá-
la, use a transação SE16.

Para criar uma tabela transparente, execute a transação SE11, informe o


nome da tabela e clique em criar.

26
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Informe a descrição, Classe de entrega, Tipo de atualização e clique em


Campos

Na aba de Campos informe o nome dos campos definindo-os através dos


respectivos elementos de dados. O primeiro campo deve ser sempre o mandante
definido pelo elemento de dados MANDT.

27
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Salve a tabela. Não ative ainda. Clique em Configurações técnicas.


Preencha a categoria de dados e categoria de tamanho

Salve novamente e clique em Voltar para retornar à tela principal de


atualização de tabelas. Ative a tabela

28
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

5.4. EXERCÍCIOS - DDIC


Criar os domínios

Criar os elementos de dados

29
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Criar as tabelas

1) Tabela ZTXX_FUNC

- Descrição: “Tabela de Funcionários” - Classe de Entrega: “A” - Marcar o check box


“Atual. Tab. Permitida”

- Definir as seguintes colunas

- Salvar

- Clicar em Opções técnicas e preencher tipo de dados com “USER1” e categoria de


tamanho com “0”.

- Salvar. Clicar em “Voltar”.

- Ativar a tabela

2) Tabela ZTXX_DEP

- Descrição: “Tabela de Dependentes” - Classe de Entrega: “A” - Marcar o check box


“Atual. Tab. Permitida”

- Definir as seguintes colunas

30
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

5.5. GERADOR DE ATUALIZAÇÃO


Permite atualizar a tabela fora de programas em ABAP, sendo possível atualizar
via transação SM30. Para que essa prática seja possível é necessária realizar
configuração na tabela transparente.

NOTA: Essa prática somente deve ser utilizada com a solicitação do Funcional.

NOTA2: Em algumas empresas (capital aberto) não permitem a atualização fora


do programa.

Para realizar essa configuração:

Indicar atualização permitida, na aba Entrega e atualização

Acessar Gerador de atualização de tabela

Indicar o grupo de autorizações. Grupo de funções e clicar no botão Procurar


nº(s) tela

31
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Clicar no botão novo

Informar pacote, request, salvar e ativar.

Acessar transação SM30, informar a tabela e clicar no botão Atual.

32
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Entrar com dados.

5.6. VISÕES
Uma visão é uma representação lógica de uma ou mais tabelas. Os dados de uma
visão não são arquivados fisicamente, mas entende-se como uma visualização
personalizada com os campos das tabelas.

A visão pode exibir ou ocultar um ou vários campos de uma tabela.

Para criar uma visão acessar a transação SE11, selecionar a opção Visão,
informar um nome para a visão e clicar no botão Criar.

33
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Selecionar a opção Visão banco de dados

34
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Indicar as tabelas que serão consideradas em sua visão e o relacionamento entre


elas.

Na aba campos, indicar quais os campos a serem exibidos na visão.

35
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Indicar uma condição para a seleção

NOTA: Essa opção não é obrigatória, deve ser utilizada quando necessário
indicar uma seleção padrão. Por exemplo, independente da tela de seleção exibir
somente os pedidos maiores que 5.000

Clicar no botão Conteúdo

Clicar no botão executar

36
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

5.7. AJUDA DE PESQUISA


Uma ajuda de pesquisa (MatchCode) de um objeto do DDIC permite definir
entradas possíveis de um determinado campo.

Para utilizar um matchcode standard é necessário descobrir o seu nome para


associa-lo ao campo desejado. Existem várias formas para encontrarmos o
matchcode:

1) No campo da tabela no dicionário de dados Entrar na transação SE11,


informar o nome da tabela e clicar em Exibir

37
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Clicar 2x sobre o campo desejado

O matchcode será exibido

38
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

2) No elemento de dados do campo Entra na se11, exibir a tabela desejada e


clicar 2x sobre o elemento de dados do campo

Na tela do elemento de dados clicar sobre a guia Características adicionais

39
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

O matchcode será exibido

5.8. TABELA DE ESTRUTURA


A tabela de estrutura auxilia a declaração de dados no programa ABAP, é
possível criar uma estrutura com dados do pedido de compras contemplando os
principais campos do processo. Dessa forma todo programa ABAP que atuar
com dados de pedido poderá herdar essas informações na declaração de
variáveis.

40
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Para criar uma Estrutura acessar a transação SE11, selecionar a opção Categoria
dados, informar um nome da estrutura e clicar no botão Criar.

Indicar Estrutura

41
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Informar os campos da estrutura

Verificar, salvar e ativar.

5.9. OBJETOS DE BLOQUEIO


O acesso simultâneo de vários usuários ao mesmo conjunto de dados, é
controlado por um mecanismo de bloqueio no sistema SAP. A definição e a
liberação de bloqueios, são efetuadas dentro dos programas, mediante a chamada
de módulos de função gerados automaticamente a partir da definição do objeto
de bloqueio.

42
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Na aba Parâm.bloqueio é possível verificar quais são os campos definidos para


controle de bloqueio.

Ao ativar um objeto de bloqueio EVVBAKE, são gerados os módulos de função


ENQUEUE_ XXX (bloqueio) e DEQUEUE_ xxx (liberação de bloqueios).

XXX = objeto de bloqueio, exemplo ENQUEUE_E_PDTC_MARA

43
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6. PROGRAMAS

Transação SE38

No SAP existe diversos tipos de programas que serão abordados no


decorrer do Workshop, porém é essencial ter a ciência que existe dois tipos
elementares de programas:

• Executável
São os programas do tipo report que podemos processar clicando no
botão executar (relógio) . Esse tipo de programa é o único que
trabalha com eventos e pode ser executado via job (processamento
background).
Exemplo de programas executáveis: Relatórios, programas de consultas,
programas de carga e extração de dados, dentre outros.
• Não executáveis
São programas que não permitem a execução e as opções mencionadas a
cima, para processar esse tipo de programa é necessário incluir uma
transação.
Exemplo de programas não executáveis: Includes, programas de
formulários, Module Pool, dentre outros.

6.1. CRIAR O PRIMEIRO PROGRAMA

44
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Para criar o primeiro programa acesse o menu Editor ABAP ou a


transação SE38, indique o nome e clique no botão criar.

NOTA: Nome do programa deve iniciar com Y ou Z, no nome do


programa pode conter número, letras e travessão ( _ ).

Indicar o título, tipo e status.

45
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Indicar o pacote

Indicar a request

Informar a sintaxe, verificar, salvar e ativar.

46
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

DICAS de atalhos:
• F1 = AJUDA!
• Ctrl + F2 = Verificar
• Ctrl + S = Salvar
• Shift + F1 = Pretty Printer
• Crtl + F3 = Ativar
• F8 = Executar

DICAS dos erros mais comuns:

• Falta de ponto no final do comando


• Falta de espaço em branco separando o comando e os argumentos
• Colocar aspas no lugar de apóstrofos

DICA: Todo programa deve possuir um comentário no cabeçalho para


auxiliar no histórico, também é sugerido comentar em todo o programa.

Para comentar a linha usar * (asterisco)

Para comentar determinada posição da linha usar “ (asterisco)

Para executar o programa pressionar F8

47
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.2. DECLARAÇÃO DE VARIÁVEIS E CONSTANTES

Use a instrução DATA para declarar as variáveis no programa, o nome


de uma variável pode conter no máximo 30 caracteres e pode conter
letras, números e travessão ( _ ).

NOTA: O ABAP não diferencia maiúsculas e minúsculas.

Exemplos de declaração:

DATA V_ENDERECO(40) TYPE C. “Variável de 40 posiç. caracter

DATA V_DATA TYPE D. “Variável do tipo data (AAAAMMDD)

DATA V_MATRNR TYPE MARA-MATNR. “Variável do mesmo tipo


do campo MATNR da tabela MARA

Para declarar várias variáveis:

DATA: V_EBELN TYPE EKKO-EBELN, “PEDIDO

V_EBELP TYPE EKKO-EBELN, “ITEM DO PEDIDO

V_WERKS TYPE T001W-WERKS, “CENTRO

V_MENGE TYPE MARA-MENGE. “QUANTIDADE

48
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Tipos de dados pré-definidos:

DICA: sempre que possível, declare variáveis com referência a algum elemento
do dicionário de dados, pois em eventuais atualizações da SAP os programas
serão atualizados automaticamente.

A declaração de constantes é semelhante à declaração de variáveis. Use a


instrução CONSTANTS, por exemplo:

CONSTANTS: C_NUM_FIXO TYPE I VALUE 100,

C_DATA_FIXA TYPE SY-DATUM VALUE ‘09021982’.

Variáveis de sistema

A linguagem Abap contém uma variável estruturada com vários


elementos que são atualizados à medida que os comandos são executados. Ela
tem o nome SYST ou SY. Veja alguns exemplos:

• SY-DATUM: data atual


• SY-UZEIT: hora atual
• SY-UNAME: código do usuário que está logado
• SY-LANGU: idioma de logon
• SY-INDEX: número inteiro representando a iteração de um loop
• SY-SUBRC: status de uma leitura de tabela de banco de dados e outros
comandos
• SY-TABIX: posição de linha na última operação em uma tabela interna

49
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.3. PARÂMETROS DE SELEÇÃO

Os Parâmetros de Seleção são os campos existentes na tela de seleção.

Os principais utilizados são: PARAMETER, SELECT-OPTIONS,


CHECK-BOX e RADIO-BUTTON.

NOTA: Consultar transação ABAPDOCU (documentação ABAP e


exemplos) para avaliar todos os tipos de parâmetros de seleção
existentes.

• PARAMETER: Apenas um campo de seleção

Sintaxe:
PARAMETERS: p_ernam TYPE eban-ernam.

50
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

• SELECT-OPTIONS: Campos com Intervalo de seleção

Sintaxe:
TABLES: eban.
SELECT-OPTIONS so_banfn FOR eban-banfn.

• CHECK-BOX: Caixas com opção se selecionar um ou mais

Sintaxe:
PARAMETERS: p_check1 AS CHECKBOX,
p_check2 AS CHECKBOX,
p_check3 AS CHECKBOX.

• RADIO-BUTTON: Várias opções para selecionar apenas um.

Sintaxe:
PARAMETERS: r1 RADIOBUTTON GROUP rad1,
r2 RADIOBUTTON GROUP rad1 DEFAULT 'X',
r3 RADIOBUTTON GROUP rad1.

Para incluir os textos de seleção, é necessário que o programa


esteja ativo, em seguida acessar o menu.

51
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Indicar os textos e ATIVAR.

6.4. BLOCO DE ELEMENTOS


Os Blocos de Elementos servem para deixar a tela de seleção mais usual
e organizada para isso usar a sintaxe:

SELECTION-SCREEN BEGIN OF BLOCK rad1

WITH FRAME TITLE text-002.

PARAMETERS r1 RADIOBUTTON GROUP gr1.

PARAMETERS r2 RADIOBUTTON GROUP gr1.

PARAMETERS r3 RADIOBUTTON GROUP gr1.

SELECTION-SCREEN END OF BLOCK rad1.

52
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.5. OPERADORES ARITMÉTICOS


É possível trabalhar com os seguintes operadores no ABAP

Exemplo: V_total = V_valor1 + V_valor2

53
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.6. EXERCÍCIOS – CALCULADORA


Criar programa calculadora

REPORT ZKLAITON2.
* Variável para calcular o resultado
DATA v_total TYPE p DECIMALS 2.
* Comando que monta uma tela para entrada de dados
* do usuário
PARAMETERS:
p_op1 TYPE p DECIMALS 2,
p_sinal(1) TYPE c,
p_op2 TYPE p DECIMALS 2.

* Evento que é disparado quando o usuário preenche a tela e


* executa o programa através da tecla "F8"
START-OF-SELECTION.

* Efetua o cálculo
IF p_sinal = '+'.
v_total = p_op1 + p_op2.
ELSE.
IF p_sinal = '-'.
v_total = p_op1 - p_op2.
ELSE.
IF p_sinal = '*'.
v_total = p_op1 * p_op2.
ELSE.
IF p_sinal = '/'.
v_total = p_op1 / p_op2.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* Imprime o resultado na tela
WRITE p_op1. "Operador 1
WRITE p_sinal. "Sinal
WRITE p_op2. "Operador 2
WRITE '='. "Texto (não é constante)
WRITE v_total. "Variável de resultado

54
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.7. EXERCÍCIOS – IMPLEMENTAR INSTRUÇÃO CASE


DESAFIO: Implementar a instrução CASE no IF de consistência dos
operadores do exercício anterior.

Exemplo instrução:

CASE V_COMANDO.

WHEN ‘INCLUIR’. Comandos

WHEN ‘MODIFICAR’ Comandos

WHEN ‘ELIMINAR’ Comandos

WHEN OTHERS Comandos

ENDCASE.

6.8. WORKAREA
No ABAP também é utilizada as variáveis estruturadas (vetor) porém são
denominadas por WORK AREA (área de trabalho).

Exemplo de declaração de WORK AREA:

DATA: BEGIN OF WA_SAIDA,


CAMPO1(20) TYPE C,
CAMPO2 TYPE D,
CAMPO3(10) TYPE P DECIMALS 2,
CAMPO4 TYPE EKKO-LIFNR,
END OF WA_SAIDA.

Também é possível declarar a WA referenciando toda a estrutura de uma


tabela:
DATA WA_MARA TYPE MARA.

55
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.9. OPERADORES LÓGICOS


É possível trabalhar com os seguintes operadores no ABAP

6.10. SELECT SINGLE


O comando SELECT é uma definição do padrão SQL (Structured Query
Language) que é usado selecionar dados das tabelas do banco de dados.

Cada banco de dados tem suas próprias sintaxes dos comandos, baseando
em um padrão mínimo (ANSI SQL). O SQL do Abap é chamado de
Open SQL.

Sintaxe simplificada de Select no ABAP:

SELECT <lista de campos>


FROM <tabela>
INTO <destino da leitura>
WHERE <condição>

O SELECT SINGLE retorna os valores do primeiro registro de uma


seleção, é utilizado para preencher variáveis ou WA.

SELECT SINGLE matnr maktx


FROM makt
INTO wa_makt
WHERE matnr EQ p_matnr.

56
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.11. DEPURAÇÃO DE PROGRAMAS


Ao depurar (Debug) um programa é possível identificar as falhas (bugs)
realizando uma execução completa ou de uma determinada rotina.

Existem várias formas de acionar o Debug no ABAP:

• Ctrl + Shift + F12


Ao clicar na linha e clicar no botão definir ponto de parada

• BREAK Usuário

• /H

Quando executar o programa a tela do Debug é acionada

57
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Para continuar a execução, existe as seguintes opções:

F5: Executa uma instrução LINHA A LINHA. Se a instrução for uma chamada
de sub-rotina/método/módulo de função, o debug mostra a primeira instrução da
sub-rotina e você continua o debug DENTRO do código da sub-rotina;

F6: Executa uma instrução. Se a instrução for uma chamada de sub-


rotina/método/módulo de função, o debug executa a sub-rotina/método/módulo
de função, mas NÃO EXIBE o código da sub-rotina/método/módulo de função
na janela de debug;

F7: Executa TODAS instruções desde o ponto de parada até o final da sub-
rotina/método/módulo de função, parando a execução do programa na primeira
instrução após a chamada;

F8: Executa todas as instruções a partir do ponto de parada atual, até encontrar
um ponto de parada.

6.12. EXERCÍCIOS – SELECT SINGLE


1) Declarar WA para as tabelas MARA e MAKT
2) Criar PARAMETER para o campo MATNR
3) Realizar select single na MARA e na MAKT com o PARAMETER
4) Exibir na tela com a instrução WRITE 4 campos da tabela MARA e o
MAKTX da tabela MAKT

6.13. CRIAR TRANSAÇÃO


Transação SE93

Todo programa customizado deve possuir uma transação, pois os usuários de


uma empresa não possuem acesso as transações de desenvolvimentos.

Acesse a transação SE93, informe o código da transação e clique em Criar

58
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Informe a descrição, escolha a opção de transação de diálogo e pressione


ENTER

NOTA: Todo programa Executável deve selecionar a segunda opção:


Programa e tela de seleção (transação de report).

59
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Informe o nome do programa, a tela inicial e clique em gravar

60
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.14. EVENTOS
Os eventos controlam a lógica e o fluxo de processamento de um programa,
Por exemplo: É possível determinar qual rotina será acionada ao processar
uma transação ou a rotina que será acionada quando clicar no botão executar.

Alguns eventos

• INITIALIZATION: O que será acionada ao processar o


programa, antes de abrir a tela. Exemplo de utilização: Reiniciar
variáveis (receber data do servidor, recuperar usuário, etc).
• AT SELECTION-SCREEN: O que será processado na tela de
seleção. Exemplo consistir se o número do pedido existe para não
executar o relatório em vão.
• START-OF-SELECTION: O que será executado quando clicar
no relógio.
NOTA: Esse é o principal evento
• END-OF-SELECTION: O que será executado após a rotina do
evento START-OF-SELECTION, exemplo imprimir relatório.
• TOP-OF-PAGE, o que será feito no cabeçalho da página.
• AT LINE-SELECTION: O que será executado quando o usuário
der dois cliques em determinada linha de um relatório.
• AT USER-COMMAND: Recuperar a ação do usuário.

Implementar o programa a seguir.

61
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

REPORT zteste_report.

DATA v_ebeln TYPE ekko-ebeln.

DATA v_matnr TYPE ekpo-matnr.

* Parâmetros de entrada

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME.


PARAMETERS p_ebeln TYPE ekko-ebeln OBLIGATORY. "Pedido

PARAMETERS p_matnr TYPE ekpo-matnr OBLIGATORY. "Material

SELECTION-SCREEN END OF BLOCK bl1.

* Consiste o pedido

AT SELECTION-SCREEN ON p_ebeln.
SELECT SINGLE ebeln
INTO v_ebeln
FROM ekko
WHERE ebeln = p_ebeln.

IF sy-subrc NE 0.
MESSAGE e398(00) WITH 'Pedido não existe'.
ENDIF.

* Consiste todos os campos da tela (PARAMETERS/SELECT-OPTIONS)

AT SELECTION-SCREEN.
SELECT SINGLE matnr
INTO v_matnr
FROM ekpo
WHERE ebeln = p_ebeln
AND matnr = p_matnr.

IF sy-subrc NE 0.
MESSAGE e398(00) WITH 'Material informado não existe no pedido'.
ENDIF.

START-OF-SELECTION.

WRITE v_ebeln.

WRITE v_matnr.

62
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.15. EXERCÍCIO - EVENTOS


Implementar evento na tela de seleção da calculadora para validar se não está
preenchendo caracteres diferentes de número nos operadores e caracteres
diferentes de + - * / no sinal.

6.16. CLASSE DE MENSAGEM


Transação SE91

No ABAP é usual organizar as mensagens em uma classe permitindo que vários


programas herdam essas informações.

É usual criar classes por módulos ou por projetos.

NOTA: Na classe de mensagem é possível trabalhar com diferentes idiomas.

Para criar uma classe de mensagem acessar a transação SE91, indicar um nome e
clicar em criar.

Indicar a descrição da classe e clicar na aba Mensagens

63
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Indicar as mensagens e gravar

NOTA: Na classe de mensagem não tem a opção de ATIVAR.

Para utilizar a classe no programa é possível definir a mesma como padrão, mas
essa definição não é obrigatória.

64
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Para utilizar a mensagem indicar a instrução MESSAGE no código:

MESSAGE e001.

Caso não utilize a definição padrão também é possível acionar a classe:

MESSAGE e001(ZMM01).

NOTA: É possível acionar várias mensagens de classes diferentes em um


programa, mas somente uma classe pode ser padrão.

6.17. FORM
Uma sub-rotina é uma seção de código reutilizável. É como uma mini-programa
que pode ser chamado de outro ponto em seu programa ou mesmo de outros
programas. Dentro dele você pode definir variáveis, executar instruções,
escrever saída e outros. Para definir uma sub-rotina, utilize a instrução FORM
para indicar o início de uma sub-rotina e utilize ENDFORM para indicar o seu
fim. O nome de uma subrotina não pode exceder 30 caracteres. Para chamar uma
sub-rotina, utilize a instrução PERFORM.

DICA: Um bom programa possui uma boa modularização. Ela traz clareza ao
código e facilidade de manutenção.

65
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

6.18. VERSÕES DE PROGRAMAS


Para comparar o versionamento das versões de um programa acionar a
administração de versões

66
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

É possível analisar todo o histórico de alterações do programa

Funcionalidades:

• Comparar versões
• Comparar versões em ambientes diferentes (DEV, QAS, PRD)
• Voltar versão do programa (Request)
• Exibir versões anteriores

67
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

7. TABELA INTERNA

Uma tabela interna é uma tabela temporária armazenada na memória do servidor


do aplicativo. Ela é criada e preenchida por um programa durante a execução e é
descartada quando o programa termina. Como uma tabela de banco de dados,
uma tabela interna consiste em uma ou mais linhas com uma estrutura idêntica,
mas, diferentemente de uma tabela de banco de dados, ela não pode armazenar
dados após o término do programa. Utilize a tabela interna como um
armazenamento temporário para a manipulação de dados.

É possível trabalhar com uma tabela interna de duas maneiras:

• Tabela interna com header line, é quando a tabela consiste em um corpo


de linhas e uma linha de cabeçalho.
Declaração da tabela interna com a linha de cabeçalho:
DATA: T_EKKO TYPE TABLE OF EKKO WITH HEADER LINE.

• Tabela interna sem header line utilizando WA, é quando a tabela consiste
em um corpo de linha e trabalha com uma WA para atuar como linha de
cabeçalho.
Declaração da tabela sem a linha de cabeçalho.
DATA: T_EKKO TYPE TABLE OF EKKO,
WA_EKKO TYPE EKKO. “ Work área
ou
WA_EKKO LIKE LINE OF T_EKKO.

NOTA: Nas versões mais recentes do SAP (ECC 5.0 ou superior) não é
recomendo criar tabelas internas com header line devida a performance de
manipulação de dados.

7.1. TYPES
É recomendado trabalhar com TYPES (tipos) na declaração das
estruturas, dessa maneira a manutenção do código será otimizada.

Ao declarar os tipos, as tabelas internas poderão assumir suas estruturas.

68
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

Exemplo de declaração de types:

TYPES: BEGIN OF TY_EKKO,


EBELN TYPE EKKO-EBELN,
AEDAT TYPE EKKO-AEDAT,
LIFNR TYPE EKKO-LIFNR,
END OF TY_EKKO.

Declaração da tabela interna:

DATA: TI_EKKO TYPE TABLE OF TY_EKKO.

DATA: WA_EKKO TYPE TY_EKKO.

7.2. APPEND
Para incluir informações na tabela interna utilizar a instrução APPEND.

Por exemplo:

Sem Header Line

WA_EKKO-EBELN = ‘123456’.
WA_EKKO-AEDAT = SY-DATUM.
WA_EKKO-LIFNR = ‘1000056’
APPEND WA_EKKO TO TI_EKKO.

Com Header Line

TI_EKKO-EBELN = ‘123456’.
TI_EKKO-AEDAT = SY-DATUM.
TI_EKKO-LIFNR = ‘1000056’
APPEND TI_EKKO.

7.3. CLEAR
A instrução CLEAR limpa a tabela interna ou a WA, é necessário ter
ciência do comportamento de acordo com a tabela.

Sem Header Line

CLEAR TI_EKKO. “ Limpa todo o conteúdo da tabela interna

Com Header Line

CLEAR TI_EKKO. “ Limpa a header line da tabela interna

69
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

7.4. MODIFY
Para modificar o conteúdo de uma ou mais linhas de uma tabela interna,
utilize a instrução MODIFY.

Sem Header Line

MODIFY TI_EKKO FROM WA_EKKO.

Com Header Line

MODIFY TI_EKKO.

7.5. EXCLUINDO CONTEÚDO DA TABELA INTERNA


Para excluir o conteúdo de uma tabela interna, você poderá utilizar as
seguintes instruções: FREE, REFRESH, CLEAR e DELETE.

• FREE: Exclui todas as linhas da tabela interna e libera a memória


ocupada por ela, exemplo: FREE TI_EKKO.
• CLEAR e REFRESH: Elimina todas as linhas da tabela interna.
Para tabelas internas com linha de cabeçalho, CLEAR limpa a
linha de cabeçalho. Estes comandos não liberam a memória usada
pelas tabelas
• DELETE: É possível excluir linhas com condições, por exemplo:
DELETE TI_EKKO WHERE EKPO = ‘1234’.
Ou eliminar a linha dentro de um LOOP, exemplo:
LOOP TI_EKKO...
IF...
DELETE TI_EKKO.
ENDIF...
ENDLOOP.

70
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

7.6. SELECT
Para realizar a seleção de dados em uma tabela interna deve incluir
TABLE para o destino da seleção.

Exemplo: Selecionar dados do pedido


SELECT *
INTO TABLE ti_ekko
FROM ekko
WHERE ebeln = p_ebeln.

Exemplo 2: Selecionar dados do pedido indicando as colunas

SELECT ebeln aedat lifnr


INTO TABLE ti_ekko
FROM ekko
WHERE ebeln = p_ebeln.

7.7. SELECT FOR ALL ENTRIES


Quando for realizar o JOIN de tabelas é possível utilizar o INNER JOIN
ou o FOR ALL ENTRIES. No ABAP por questões internas de
performance utilizamos o FOR ALL ENTRIES, porém isso é discutível
de acordo com a necessidade. A recomendação é para quando o volume
de informações ser ALTA utilizar o FOR ALL ENTRIES, quando for
uma seleção simples é aceitável a utilização do INNER JOIN.

Exemplo utilização do FOR ALL ENTRIES

SELECT matnr brgew ntger


INTO TABLE ti_mara
FROM mara
WHERE matnr IN so_matnr.

IF ti_mara IS NOT INITIAL.


SELECT matnr maktx
INTO TABLE ti_makt
FROM makt
FOR ALL ENTRIES IN ti_mara
WHERE matnr eq ti_mara-matnr.
ENDIF.

71
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

NOTA: Sempre que utilizar o FOR ALL ENTRIES verificar se a tabela


não está vazia. Caso seja feita o select com a tabela vazia todos os
registros da tabela serão lidos e consequentemente sérios problemas de
performance.

Exemplo utilização do INNER JOIN

SELECT mara~matnr
makt~maktx
mara~brgew
mara~ntgew
INTO TABLE ti_saida
FROM mara
INNER JOIN makt
ON makt~matnr = mara~matnr
WHERE mara~matnr IN so_matnr
AND makt~spras = sy-langu.

7.8. EXERCÍCIOS - FOR ALL ENTRIES


Criar um programa

Criar o SO_EBELN para EKKO-EBELN

Declarar tabelas internas para:

CAMPOS RELACIONAMENTO
EKKO-EBELN EKKO-EBELN = SO_EBELN
EKKO-AEDAT
EKKO-LIFNR
EKPO-EBELN EKPO-EBELN = EKKO-EBELN
EKPO-EBELP
EKPO-MATNR
EKPO-MENGE
EKPO-WERKS
LFA1-LIFNR LFA1-LIFNR = EKKO-LIFNR
LFA1-NAME1
MAKT-MATNR MAKT-MATNR = EKPO-MATNR
MAKT-MAKTX

72
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

7.9. READ TABLE


Para localizar e ler uma única linha de uma tabela interna, utilize READ
TABLE, exemplos:

1) Recuperando uma linha da tabela interna TI_EKKO para o pedido


‘12345’.

Sem Header Line

READ TABLE TI_EKKO WITH KEY EBELN = ‘12345’ BINARY


SEARCH.
IF SY-SUBRC = 0.
WRITE:/ TI_EKKO-EBELN.
ELSE.
WRITE:/ ‘Não encontrado’.
ENDIF.

Com Header Line

READ TABLE TI_EKKO INTO WA_EKKO WITH KEY EBELN =


‘12345’ BINARY SEARCH.
IF SY-SUBRC = 0.
WRITE:/ WA_EKKO-EBELN.
ELSE.
WRITE:/ ‘Não encontrado’.
ENDIF.

NOTA: BINARY SEARCH (busca binária) otimiza a leitura das


informações, para seu funcionamento é necessário que a tabela a ser lida
esteja ordenada.

NOTA: SEMPRE QUE POSSÍVEL USAR BINARY SEARCH.

73
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP

7.10. EXERCÍCIOS - READ TABLE


No programa criado no exercício do item 7.8

Criar uma tabela TI_SAIDA com a estrutura a baixo, e preencher com a


instrução READ TABLE.

CAMPOS
EKKO-EBELN
EKKO-AEDAT
EKKO-LIFNR
EKPO-EBELN
EKPO-EBELP
EKPO-MATNR
EKPO-MENGE
EKPO-WERKS
LFA1-LIFNR
LFA1-NAME1
MAKT-MATNR
MAKT-MAKTX

74
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada

Você também pode gostar