Você está na página 1de 50

Treinamento ABAP

Funcionais e Basis

Outubro / Novembro / Dezembro de 2008


Treinamento ABAP - Funcionais e Basis
Agenda

• Introdução
• mySAP ERP
• Dicionário de Dados
• Mensagens
• Tipos de Objetos (Programas)
• Entrada de dados no mySAP ERP
• Enhancements (Pontos de Alteração nos programas Standards)
• Workflow
• Dicas
• Como preencher Especificação
• Atenção com a Metodologia de Desenvolvimento
• Diversos
• Transações Úteis
• Principais tabelas do mySAP ERP por módulo

2
Introdução

3
Treinamento ABAP - Funcionais e Basis
Introdução

O objetivo desse treinamento é fornecer os


conceitos básicos do mySAP ERP e ABAP
para o auxilio no desenvolvimento das
especificações funcionais e dicas para o seu
dia-a-dia.

4
mySAP ERP

5
Treinamento ABAP - Funcionais e Basis
Agenda

• Instâncias
• Client ou Mandante
• Change-Request
• Liberar e Transportar Request
• Resumo Geral

6
Treinamento ABAP - Funcionais e Basis
mySAP ERP

• Instâncias
– Entende-se por instância uma instalação de um sistema mySAP ERP
• Desenvolvimento
• Qualidade
• Produção
• Client ou Mandante
– Cada instância subdivide-se em mandantes (o mesmo que client). Um
exemplo prático da utilização de mandantes acontece no ambiente de
desenvolvimento. Trabalha-se sempre com pelo menos dois mandantes. No
primeiro são feitas as configurações, mas não temos dados pertinentes ao
negócio. A isto chamamos “client aberto”. No segundo temos os dados, mas
não temos abertura para fazer alterações. A isto chamamos “client fechado”.
• Change-Request
• Liberar e Transportar Request
– SE09 - Ordem de Workbench (ABAP)
– SE10 - Ordem de Customizing (Funcional)

7
Treinamento ABAP - Funcionais e Basis
mySAP ERP
• Resumo
– O sistema mySAP ERP trabalha com múltiplas instâncias e
mandantes.
– Para se efetuar uma customização no sistema mySAP ERP, os
passos são os seguintes:
• cria-se uma change-request no ambiente (instância) de
desenvolvimento;
• desenvolvedores efetuam alterações e atribuem à request;
• após a liberação de todas as tarefas libera-se a request para
transporte;
• o responsável pede ao profissional de basis que transporte a
request para o ambiente de qualidade;
• Valida-se a alteração contra os dados consistentes do ambiente de
QA;
• Caso não se consiga atingir os objetivos, volta-se ao passo 1, e
ficamos com duas requests referentes à
alteração/desenvolvimento.
• atingindo o objetivo esperado, solicita-se ao profissional de basis
novo transporte, desta vez para o ambiente de produção. 8
Dicionário de Dados

9
Treinamento ABAP - Funcionais e Basis
Dicionário de Dados

• O dicionário de dados do mySAP ERP envolve tudo o que se


refere aos dados e tipos de dados.
– Tabela Transparente
– Visão
– Estruturas
– Campos Chave
ATENÇÃO: Não é aconselhado o acesso às tabelas sem os campos chaves,
pois teremos uma grande perda de desempenho.
– Índices
– Tipos de dados
– Domínios, Elementos de Dados, Campos, Tabelas e Registros

10
Treinamento ABAP - Funcionais e Basis
Dicionário de Dados

• O dicionário de dados do mySAP ERP envolve tudo o que se


refere aos dados e tipos de dados.
– Tabela Transparente
• Domínio
• Elementos de Dado
• Campo
• Tabela
• Registro

– Visão
Duas ou mais tabelas transparentes podem ser unidas compondo uma
visão. Visões integram as tabelas e permitem um melhor acesso aos
seus conteúdos. Externamente, uma visão tem o mesmo comportamento
de uma tabela transparente. Podendo ser visualizada nas transações
SE11 e SE16.

11
Treinamento ABAP - Funcionais e Basis
Dicionário de Dados

– Estrutura
Muitas vezes confundidas com tabelas transparentes, as estruturas são
utilizadas como base para outros objetos que contenham dados, mas a
estrutura em si não contém dados. Uma estrutura se assemelha muito a
uma tabela transparente por ter o mesmo formato (uma série ordenada
de campos), mas a diferença é que as tabelas contêm dados, enquanto a
estrutura não.
Uma estrutura pode ser criada para servir como formato para campos
estruturados em tabelas, parâmetros, outras estruturas, tabelas internas
ou variáveis em programas ABAP, etc.

– Campos Chave
Compreendem-se por campos chave aqueles que identificam um registro na
tabela, ou seja, são eles que garantem a unicidade dos dados.
Ex.: Para acessar um registro de cliente (tabela transparente KNA1) é
necessário fornecer sua chave que é o código do cliente (campo
KUNNR).
Uma característica importante é que tecnicamente você pode ter dois
clientes com o mesmo nome (que não é chave), mas não pode ter dois
clientes com o mesmo código (que é chave).
12
Treinamento ABAP - Funcionais e Basis
Dicionário de Dados

ATENÇÃO: Não é aconselhado o acesso às tabelas sem os campos chaves,


pois teremos uma grande perda de desempenho.

– Índices
• São “ponteiros” criados para agilizar o acesso aos dados das tabelas sem a
utilização dos campos chaves.

– Tipos de dados

13
Mensagens

14
Treinamento ABAP - Funcionais e Basis
Mensagens

– Classe de Mensagem
• Uma classe de mensagem é um “pacote” que contem diversas
mensagens, geralmente do mesmo processo ou modulo.

– Tipos de Mensagens

15
Tipos de Objetos
(Programas)

16
Treinamento ABAP - Funcionais e Basis
Tipos de Objetos (Programas)

O ABAP é a linguagem de programação nativa do mySAP ERP, ou seja, a


maioria das funcionalidades standard´s e as novas funcionalidades são
desenvolvidas em ABAP.

A linguagem ABAP foi desenvolvida pela SAP e é utilizada apenas dentro do


mySAP ERP, ou seja, é uma linguagem proprietária.

– Report
Transação: SE38 ou SE80
• Parameter
• Select-Options

17
Treinamento ABAP - Funcionais e Basis
Tipos de Objetos (Programas)

– Report
Transação: SE38 ou SE80
• Parameter

18
Treinamento ABAP - Funcionais e Basis
Tipos de Objetos (Programas)

• Select-Options

19
Treinamento ABAP - Funcionais e Basis
Tipos de Objetos (Programas)

• Relatório ALV
E um tipo de relatório, mas gráfico que o report convencional e possui
diversas funcionalidades para interação dos usuários como, Ordenar
colunas, realizar totais e subtotais, incluir e excluir campos visíveis,
exportar para planilha excel, entre outras.

20
Treinamento ABAP - Funcionais e Basis
Tipos de Objetos (Programas)

• Includes
São programa não executáveis que contem rotinas ABAP que podem ser
utilizadas por outros programas.

• Module Pool (Tela)


Transação: SE80
Nesta categoria se enquadram aplicações que normalmente chamamos de
“telas”.
Permitem uma maior interação com o usuário. Podem também ser
chamados de programas “On-line”. Um exemplo de module-pool é a
transação MM01 (Mestre de Materiais), onde se pode incluir no sistema
os dados de um material. Pode-se utilizar nesses programas toda uma
diversidade de componentes que dão um formato amigável à transação.

21
Treinamento ABAP - Funcionais e Basis
Tipos de Objetos (Programas)

• Sapscript
Transação SE71
O Sapscript pode ser visto como uma evolução do report. Conta com uma
interface mais requintada, elementos gráficos, vários fontes, etc. Tem
como base um programa do tipo report, que o provê com as informações
a serem apresentadas, o SapScript só trabalha com parte visual do
relatório.

• SmartForms
Transação Formulário: smartforms / Tabulações: smartstyles
O SmartForms pode ser visto como uma evolução do Sapscript. Conta com
uma interface técnica e com facilitadores para o desenvolvedor, podendo
também fazer impressão colorida de letras, linhas e fundos.

22
Treinamento ABAP - Funcionais e Basis
Tipos de Objetos (Programas)

• Módulo de Função
Transação SE37
É um Módulo de programa parametrizável e reutilizável. Muito útil para
rotinas que podem ser usadas em vários pontos do sistema.

• Query
São relatórios que o próprio usuário pode montar através das transações
SQ.., fazendo uso de visões, banco de dados lógico, tabelas
transparentes ou programas ABAP como fonte de dados. Existe um
controle de acesso por grupo de usuários. É necessário cuidado com as
queries, pois se elaboradas sem o devido cuidado podem acabar se
tornando processamentos muito pesados gerando quedas de
performance no servidor.

23
Entrada de Dados
mySAP ERP

24
Treinamento ABAP - Funcionais e Basis
Entrada de dados no mySAP ERP

• Call Transaction
É um mecanismo que permite a entrada automática de dados nas telas do
mySAP ERP. Desta forma garante-se a integridade das informações, pois
elas passam pelas mesmas validações que seriam feitas se um usuário
as estivesse digitando. Uma utilização muito comum é fazer com que o
processamento de uma transação dispare um processamento automático
em outra transação. O segundo processamento fica automatizado, e será
executado de forma transparente ao usuário. É como se ele mesmo
tivesse digitado as informações.

• Batch Input
Segue o mesmo princípio do call transaction, porém é feito em batch.
Geralmente é utilizado para carga de dados e utilizado em ambiente &
implantação. Funciona da seguinte maneira: um programa (geralmente
tipo report) gera várias entradas de call transaction que ficam
armazenadas em uma pasta de batch-input. Essa pasta pode ser
processada posteriormente no momento oportuno na transação SM35.
Esse processamento conta com vários mecanismos para tornar a carga
mais consistente.

25
Treinamento ABAP - Funcionais e Basis
Entrada de dados no mySAP ERP

• Idoc
É uma forma de comunicação entre sistemas baseada na arquitetura ALE.
Consiste na troca de documentos eletrônicos baseados em layout pré-
definidos. Geralmente utilizado para integrarem diferentes instancias de
MYSAP ERP. Ex.: A instancia A emite um pedido de compra para a
instância B. Um IDOC é enviado da instancia A para a instancia B. Ao
receber o IDOC a instancia B gera automaticamente um documento de
vendas para a instancia A. Essa comunicação pode ser feita também com
sistemas não mySAP ERP.

• BAPI - Businness Application Program Interface


Transação BAPI
Consiste em uma função que representa determinada ação no sistema.
Ex.: Criar um material.
As BAPI's foram desenvolvidas pela SAP para permitir que sistemas
externos possam se comunicar com o mySAP ERP. No entanto elas
podem ser usadas também internamente. Alterando informações via
BAPI garantimos a integridade relacional sem os problemas de
performance do Call Transaction.

26
Treinamento ABAP - Funcionais e Basis
Entrada de dados no mySAP ERP

• CATT - Computer Aided Test Tool


Transação eCATT
É uma ferramenta que tem como objetivo agilizar o processo de testes de
transações. Isso é feito gerando uma gravação correspondente ao
preenchimento dos dados que se faz na transação. A cada vez que se for
testar a transação executa-se essa gravação, que faz o teste
automaticamente. Algumas vezes pode ser usa como ferramenta para
carga de dados, pois permite que a origem dos dados inseridos na
transação seja externa. Difere do batch-input por não dispor de recursos
de programação (ex. converter algum campo).

• LSMW Legacy System Management Workbench


Transação: LSMW
O LSMW é uma ferramenta para suporte de migração de dados dos
sistemas não SAP — também conhecidos como Sistemas de Legado
(ES) — para o mySAP ERP. Normalmente tem o mesmo tipo de
aplicação do batch-input, mas trata-se de uma ferramenta mais moderna.

27
Enhancements

28
Treinamento ABAP - Funcionais e Basis
Enhancements

• User-Exit
Transações:
CMOD – Projetos
SMOD – Ampliações
As vezes é necessário alterar em nível de programa alguma funcionalidade
de uma transação standard. Não é possível alterar diretamente o
programa standard. Para resolver este problema a SAP deixou algumas
“funções” no programa standard, em pontos estratégicos, de modo que o
desenvolvedor consegue colocar código ABAP Z trabalhando junto com o
código standard. Essas “funções” são as user-exits.

Para localizar um User-Exit acesse a transação SE16 com a visão


INFO_MODS.

29
Treinamento ABAP - Funcionais e Basis
Enhancements

• Field-Exit
Já para as field-exits não existe esse tipo de restrição. Temos field-exits para
qualquer campo que apareça na tela. O funcionamento é muito
semelhante. A diferença é que o código anexado à field-exit tem efeito
apenas no contexto do próprio campo e programa relacionado. É
normalmente utilizado para validações, gerando mensagens de erro de
acordo com o valor digitado.

CMOD

30
Treinamento ABAP - Funcionais e Basis
Enhancements

• BADI - Business Add-lns


Transação: BADI
BADI é uma técnica de enhancement baseada em ABAP Objecs. É muito
Semelhante a uma user-exit, porém às vezes existe um código standard na
BADI, que pode ser alterado se necessário.

A diferença básica entre BADI e user-exit é que a BADI pode ser


implementada em Diferentes níveis.

31
WorkFlow

32
Treinamento ABAP - Funcionais e Basis
WorkFlow

Principais Transações:
SWO1 - Business Object Builder
PFTC - Atualização de tarefas geral

Permite integrar processos através de um mecanismo de envio de


mensagens.

Ex.: Determinado documento precisa ser preenchido por duas pessoas em


Departamentos diferentes e depois passar pela aprovação de três gerentes.
Construímos um workflow de modo que quando a primeira pessoa
termina sua parte no trabalho é disparada automaticamente uma
mensagem para a segunda pessoa e assim por diante, até que a cadeia
seja concluída pelo último gerente.

33
Dicas

34
Treinamento ABAP - Funcionais e Basis
Dicas – Como Debugar

Para ver o funcionamento interno de um programa ABAP ou transação basta


digitar “/h” no campo de comando .
A interface entra em modo de debugging onde o usuário pode processar o
programa linha a linha tecle (F5) ou por bloco tecle (F6) observando seu
funcionamento interno. Para voltar ao objeto anterior tecle (F7) e para sair
do modo de debugging e voltar ao modo normal de execução basta teclar
F8 ou

35
Treinamento ABAP - Funcionais e Basis
Dicas – Como Debugar

• Campos
• Tabelas
• Pontos de Paradas
• Watchpoints
• Chamadas
• Áreas do sistema

36
Treinamento ABAP - Funcionais e Basis
Dicas – Lista de Utilizações

Evento usado para localizar onde o objeto (campos, tabelas, programas,


transações, etc).

37
Treinamento ABAP - Funcionais e Basis
Dicas – Ver nome e tipo de campo

É comum quando se faz uma especificação querer, por exemplo, em algum


relatório que apareça um campo que o usuário vê em alguma tela
standard. Para descobrir qual é esse campo nas tabelas do mySAP ERP
basta chamar o help via F1 e teclar no botão “informação Técnica”.
Neste ponto duas coisas podem acontecer:
- Pode ser que o campo seja referente a uma tabela transparente. Neste
caso é bastante simples para o programador buscar a informação.
- Pode ser que o campo seja referente a uma estrutura. Neste caso ele é
resultado do processamento feito no programa. Para identificar a origem
de seu conteúdo é necessário debugging.

38
Treinamento ABAP - Funcionais e Basis
Dicas – Como obter o nome do programa de uma transação

39
Treinamento ABAP - Funcionais e Basis
Dicas – Mapear transações - SHDB

Quando for especificar algo que envolva call-transaction/batch-input é muito


útil gerar um registro SHDB que exemplifique o preenchimento dos
campos nas telas da transação em questão. É com base nesse registro
que o programador fará a automação necessária. Pode ser feito na
transação SHDB.

40
Treinamento ABAP - Funcionais e Basis
Dicas – Cria Variantes de Tela

Na execução de reports ou transações com tela de seleção certas vezes se


torna repetitivo o preenchimento dos parâmetros de seleção. E possível
gravar os parâmetros na forma de uma variante, de modo que não seja
necessário preencher sempre as mesmas informações.

Para isso basta clicar no botão SALVAR na tela de seleção e preencher as


informações necessárias.

41
Como preencher
especificação

42
Treinamento ABAP - Funcionais e Basis
Dicas – Como preencher especificação

As especificações têm basicamente duas funções. Uma é servir como


documento de entendimento, aprovação e base para o desenvolvimento,
o outro é ficar como documentação para o cliente.

Dividem-se em duas partes principais: funcional e técnica.

Geralmente, para facilitar o manuseio, temos a parte funcional e a técnica


num mesmo documento.

43
Treinamento ABAP - Funcionais e Basis
Dicas – Como preencher especificação

• Funcional
A especificação funcional deve descrever do ponto de vista funcional a
alteração a ser feita no sistema. Servirá de base para a criação da
especificação técnica.
- Explica quais os processos envolvidos e como eles se inter-relacionam.
- Identifica qual a origem e qual o destino dos dados no processamento.
É importante que se esclareça ao máximo o processo no nível funcional,
mas no é necessário no nível técnico.

ATENÇÃO: é de suma importância o funcional fornecer uma massa de


dados para internos, pois esses testes reduzem em 80% as horas de
retrabalho dos programadores e reduzem o tempo gasto para testes
do próprio funcional.

44
Treinamento ABAP - Funcionais e Basis
Dicas – Como preencher especificação

• Técnica
Com base na especificação funcional, o consultor ABAP descreve na
especificação Técnica como a alteração será implementada no nível
técnico(programa).
Exemplo:
- A especificação funcional pede um relatório das ordens de venda.
- A especificação técnica descreve a solução técnica elaborada para atender
a solicitação: com base nas tabelas VBAK e VBAP, com interface tipo
ALV, etc.

Aqui é importante que haja um grande nível de detalhamento, mas sem


entrar no âmbito da programação de fato, onde existem outras
questões a resolver.

45
Treinamento ABAP - Funcionais e Basis
Dicas – Atenção com a Metodologia de Desenvolvimento

Ao iniciar um projeto, em qualquer cliente, devemos nos atentar na


existência de uma metodologia de desenvolvimento, onde indica todos os
padrões e nomenclaturas a serem utilizadas na
manutenção/desenvolvimento dos objetos em seu ambiente.

Abaixo alguns itens que dependem da metodologia:


- Nomes dos objetos como classe de desenvolvimento, tabelas, programas
ou transações.
- Descrições da request´s.
- Documentações (especificações funcionais e técnicas).

46
Treinamento ABAP - Funcionais e Basis
Dicas – Diversos

• Classe de Desenvolvimento
• Grupo de Autorização
• Autorithy Check
• Ativação de Objeto
• Atenção com a senha ao executar o Login
• Transações úteis
– SE03 – Ferramentas de Transport Organizer
– SE30 – Análise tempo execução objetos ABAP
– SE80 – Object Navigator
– SE84 – Object Navigator
– ST04 – Peformance Analysis
– ST22 – ABAP análise dump
– SU21 – Atualizar objetos de autorização
– SU53 – Avaliação da verificação autorização
• Principais tabelas do mySAP ERP por módulo

47
CO/FI
BKPF COSP

BSAD CSKS

BSAK CSKT

BSAS GLT0

BSID GLT1

BSIK SKA1

BSEG

BSIS

COBK

COEP
SD
J1_BBRANCH VTTK VBKA

J1_BNFDOC VTTP VBKD

J1_BNFLIN KONV VBUK

LIKP KONP VBUP

LIPS KOMV

VBAK KONH

VBAP VBPA

VBFA VBBE

VBRK VBBS

VBRP VBEP
MM
MARA MVKE EKET

MAKT MCH1 EKKN

MARM MCHA EKAB

MARC MCHB EKBE

MARD LFA1 EKBZ

MAST LFB1 MKPF

MBEW EBAN MSEG

MLGN EBKN RESB

MLGT EKKO RSEG

EBEW EKPO NAST

Você também pode gostar