Escolar Documentos
Profissional Documentos
Cultura Documentos
ÍNDICE:
INTRODUÇÃO:........................................................................................................................... 3
SOBRE ESSA APOSTILA:........................................................................................................ 6
DIAMANTE:................................................................................................................................. 6
R3 COMO UM SISTEMA ABERTO À COMUNICAÇÃO: ....................................................... 6
ARQUITETURA: ......................................................................................................................... 7
O MIDDLEWARE BASIS: .......................................................................................................... 9
SAP ON LINE SERVICE SYSTEM: ........................................................................................ 10
CONCEITO DE MANDANTE:.................................................................................................. 10
CHANGE REQUEST:............................................................................................................... 11
UNIDADES LÓGICAS COM SEUS MANDANTES -> DESENHO. ...................................... 12
OBJETOS ‘Z’ E ‘Y’: .................................................................................................................. 13
CLASSE DE DESENVOLVIMENTO OU PACOTE: .............................................................. 13
PROGRAMAS STANDARD DO SAP:.................................................................................... 13
FIELD EXITS ............................................................................................................................. 13
SCREEN EXIT........................................................................................................................... 17
USER-EXIT................................................................................................................................ 17
TRANSAÇÕES IMPORTANTES AO DESENVOLVIMENTO: ............................................. 18
ENTRADAS POSSÍVEIS NO CAMPO DE COMANDO: ....................................................... 18
TELAS DE SELEÇÃO:............................................................................................................. 19
PARAMETER:........................................................................................................................... 20
DECLARAÇÃO DE VARIÁVEIS: ............................................................................................ 22
CATEGORIA SIGNIFICADO ADEQUADO PARA ........................................................................ 23
MENSAGENS: .......................................................................................................................... 24
TRANSAÇÃO: .......................................................................................................................... 25
DEBUGGER:............................................................................................................................. 26
TIPOS DE TABELAS: .............................................................................................................. 27
DICIONÁRIO (DDIC). ............................................................................................................... 28
ATUALIZADOR DE TABELA.................................................................................................. 30
TABELA INTERNA................................................................................................................... 32
HEADER LINE .......................................................................................................................... 32
MODULARIZAÇÃO:................................................................................................................. 36
COMANDO WRITE: ................................................................................................................. 37
TABELA SYST: ........................................................................................................................ 37
COMMIT WORK/ROOLBACK WORK: .................................................................................. 38
LOOP – ENDLOOP: ................................................................................................................. 40
IF, ELSE, ENDIF: ...................................................................................................................... 41
CASE: ........................................................................................................................................ 42
INSERT. ..................................................................................................................................... 42
SORT. ........................................................................................................................................ 43
MODIFY. .................................................................................................................................... 44
1
Material de treinamento – Conceitos ABAP
DELETE..................................................................................................................................... 44
CLEAR:...................................................................................................................................... 44
INCLUDE :................................................................................................................................. 45
UPDATE: ................................................................................................................................... 47
CONCATENATE: ..................................................................................................................... 47
WS_UPLOAD E WS_DOWNLOAD: ....................................................................................... 48
WORK ÁREA: ........................................................................................................................... 49
SELECT:.................................................................................................................................... 50
SELECT <RESULT> FROM <TABLES> INTO <TARGET> WHERE <CONDITION>. .................. 50
SELECT SINGLE – LEITURA DE UM ÚNICO REGISTRO. ............................................................ 50
SELECT....ENDSELECT – LEITURA DE MÚLTIPLAS LINHAS; .................................................. 50
SELECT....FROM...INTO....FOR ALL ENTRIES IN <ITAB>...WHERE....<F1> EQ <ITAB>-
<FX>........................................................................................................................................... 51
SELECT......UP TO <N> ROWS................................................................................................ 51
SELECT <T1>~<F1> <T2>~<F1> FROM <T1> INNER JOIN <T2> ON <T1>~<F3> EQ
<T2>~<FX> INTO ...WHERE... ................................................................................................. 51
SUBMIT: .................................................................................................................................... 53
EXPORT IMPORT: ................................................................................................................... 53
READ TABLE: .......................................................................................................................... 54
MODULE POOL: ...................................................................................................................... 55
CALL SCREEN:........................................................................................................................ 56
LEAVE: ...................................................................................................................................... 56
TABLE CONTROL: .................................................................................................................. 57
COLUNA DE MARCAÇÃO:..................................................................................................... 58
CRIAÇÃO DE BOTÔES EM TELA: ........................................................................................ 59
TABSTRIP:................................................................................................................................ 59
CARGAS EM BANCO DE DADOS:........................................................................................ 62
1 - DIRECT INPUT ........................................................................................................................ 62
2 - BATCH INPUT ......................................................................................................................... 62
3 – CALL TRANSACTION ............................................................................................................. 63
4 – BAPI..................................................................................................................................... 65
SAPSCRIPT:............................................................................................................................. 65
2
Material de treinamento – Conceitos ABAP
INTRODUÇÃO:
Os passos iniciais para que o SAP viesse ao mundo começaram a ser dados em 1972, na
cidade de Waldorf, na Alemanha, quando cinco engenheiros, funcionários de uma multinacional ,
decidiram criar sua própria empresa de desenvolvimento de sistemas: a SAP AG. Isso mesmo,
SAP não é apenas o nome do pacote de gestão mais falado no mundo, é também o nome da
empresa que o desenvolveu.
O nome da empresa era na verdade uma acrossemia (nome formado pelas iniciais de uma
série de palavras). As iniciais SAP significam Systeme, Anwendung und Programme (Sistemas,
Aplicações e Produtos). O AG era a abreviação de Agentur, um termo em alemão que quer dizer
Sociedade Anônima.
O primeiro produto importante da nova empresa foi o SAP R/2 (Realtime System Version
2), um conjunto de módulos de software destinado a mainframes, que em 1995 ainda era utilizado
por mais de 2000 empresas.
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 mais de 1000 processos de negócio, cada um deles baseado em
práticas consagradas no mundo dos negócios. A configurabilidade do sistema é tornada possível
por 8000 tabelas que administram desde a estrutura corporativa até a política de desconto
3
Material de treinamento – Conceitos ABAP
Em 1995 o SAP chegou ao Brasil, mas para que pudesse ser utilizado no nosso pais ele
passou por um processo chamado de customização, que nada mais é que a alteração do sistema
de modo a atender a legislação fiscal brasileira .
Quando o SAP chegou ao Brasil com força total em 1991 as empresas de consultoria já
sabiam que esta ferramenta seria um ótimo instrumento para aumentar suas receitas. Sendo
assim, um ano antes elas começaram a montar a infraestrutura necessária para implementar o
pacote no Brasil. Gerentes mais experientes eram enviados ao exterior para saber como os
departamentos dedicados a implementação do SAP eram estruturados fora do país. Outro objetivo
destas viagens era conhecer a metodologia de implementação e as ferramentas utilizadas em
locais onde a experiência com o sistema fosse maior. Além disso os escolhidos para estas tarefas
passavam por cursos onde eram introduzidos ao pacote de gestão que estava para invadir o
mundo corporativo brasileiro.
Mas os preparativos para a chegada do SAP ao Brasil não envolviam apenas os gerentes
das chamadas "Big Six", havia um enorme trabalho de bastidores, deixado a cargo dos sócios
destas empresas. O resultado seria a formação de um sistema de parceria entre a SAP e as
empresas de consultoria segundo o qual o foco da SAP seria a venda do sistema, deixando a
implementação na mão de seus parceiros.
Estas pessoas foram então enviadas para os Estados Unidos, para tomar parte na tão
falada academia de SAP. O que era a Academia de SAP ? Era um curso de 5 semanas onde os
profissionais aprendiam como configurar o sistema e como executar uma série de transações. Os
especialistas em Interquadram faziam, em sua maioria, o curso do módulo FI/CO. Os entendidos
em MMX faziam academia de MM ou PP. Ao fim das cinco semanas de curso os participantes
deviam fazer um estudo de caso e uma prova. Para receber o certificado de implementador, o
aluno deveria ter aproveitamento de 70%. Ao voltar da academia os profissionais eram
imediatamente alocados em projetos.
4
Material de treinamento – Conceitos ABAP
Como a demanda por especialistas era maior que a oferta, as consultorias iniciaram
grandes processos de contratação. Avalanches de curriculum chegavam aos escritórios. Entre os
remetentes havia até mesmo enfermeiros . Os envelopes eram distribuídos em 4 pilhas:
- Demais
As consultorias realmente não exigiam experiência com SAP, pois o processo de formação
dos contratados seria financiado por elas mesmas. Cabe ressaltar que apenas empregados de
empresas de consultoria podiam tomar parte na academia. Em resumo os participantes eram
escritos no curso por seus empregadores.
E assim o mercado do SAP foi crescendo. À medida que mais e mais empresas utilizavam
o sistema, eram formados mais profissionais de implementação de SAP. Muitos funcionários de
empresas que passaram por implementações acabaram indo para o mercado de consultoria.
5
Material de treinamento – Conceitos ABAP
DIAMANTE:
SAP/R3 é um sistema que pode agregar diversos módulos que por sua vez
possuem diversas funcionalidades, todas integradas seguindo o conceito de
tabelas relacionais.
6
Material de treinamento – Conceitos ABAP
ARQUITETURA:
Princípios cliente/servidor
7
Material de treinamento – Conceitos ABAP
Three-tier, onde cada serviço tem o seu próprio host. Nesta configuração é
possível ainda assegurar uma divisão de carga na camada de aplicação,
garantindo que determinados hosts fiquem dedicados para aplicações específicas.
Por exemplo dedicar um host para servidor de aplicação dos usuários de MM,
ganhando com isto performance na distribuição dos serviços. A configuração
three-tier é a mais recomendada em R/3 por garantir a melhor distribuição de
carga e escalabilidade nos grandes sistemas.
8
Material de treinamento – Conceitos ABAP
O MIDDLEWARE BASIS:
9
Material de treinamento – Conceitos ABAP
Através do portal SAPnet na WEB podemos procurar uma nota que pode
ser aplicada ao erro encontrado. Não existindo uma nota específica para o
problema devemos abrir uma OSS que é uma comunicação à SAP de um possível
problema no R3. Essa OSS então é analisada pelos profissionais da SAP que nos
informam qual o possível problema, qual a solução e se realmente não existir uma
nota específica a SAP trata de providenciar uma (cria uma nova nota e a divulga).
CONCEITO DE MANDANTE:
10
Material de treinamento – Conceitos ABAP
CHANGE REQUEST:
11
Material de treinamento – Conceitos ABAP
REQUEST REQUEST
12
Material de treinamento – Conceitos ABAP
Não podem ser alterados. Caso haja essa necessidade a SAP disponibiliza
EXITS para codificação ABAP. Os programas STANDARD são “fechados”.
Temos então:
13
Material de treinamento – Conceitos ABAP
14
Material de treinamento – Conceitos ABAP
Código desenvolvido
function field_exit_auart.
*"----------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" VALUE(INPUT)
*" EXPORTING
*" VALUE(OUTPUT)
*"----------------------------------------------------------------------
data: w_auart like vbak-auart.
w_auart = input.
export w_auart to memory id 'w_auart'.
output = input.
endfunction.
15
Material de treinamento – Conceitos ABAP
• Elemento de dados.
• Status (ativo ou inativo).
• Programa (nome do programa específico ou global)
• Tela (número da tela do programa na qual a exit estará ativa)
• Numeração para quando tivermos a exit ativa para mias de uma tela ou
programa.
• Descrição herdada do elemento de dados.
Também é importante destacar que para cada função que for criada para a
field exit específica deveremos associar um grupo de funções. A dica é criar
um grupo de funções para cada field exit criada.
16
Material de treinamento – Conceitos ABAP
17
Material de treinamento – Conceitos ABAP
- em um modo adicional
Entrar: /oxxxx (xxxx = código de transação).
18
Material de treinamento – Conceitos ABAP
Entrar: /n.
Atenção: modificações não gravadas são perdidas sem aviso
Entrar: /i.
Entrar: /o.
Entrar: /ns000.
Logoff do sistema:
Entrar: /nend.
Entrar: /nex.
Atenção: modificações não gravadas são perdidas sem aviso.
TELAS DE SELEÇÃO:
19
Material de treinamento – Conceitos ABAP
Por exemplo, a tela de seleção poderia ser usada antes de acessar o banco
de dados, para restringir o volume de dados lidos.
PARAMETER:
OBLIGATORY
DEFAULT
AS CHECKBOX
RADIOBUTTON GROUP B1
Exercício.
Criar um REPORT utilizando todas as opções acima com PARAMETERS.
Combinar com os já apresentados
SELECT-OPTIONS:
Exemplo:
20
Material de treinamento – Conceitos ABAP
SELECT-OPTIONS:
SO_PED FOR EKKO-EBELN.
21
Material de treinamento – Conceitos ABAP
DECLARAÇÃO DE VARIÁVEIS:
Sintaxe:
TYPE <ABAP-data-type> .
DATA: < varname> TYPE <user-definied.type>.
LIKE <ABAP-dictionary-object>.
22
Material de treinamento – Conceitos ABAP
- Categoria de dados
2 tipos: Predefinidos
Definidos pelo usuário
- Predefinidos
No Abap existem 8 categorias de dados predefinidos:
• Numéricos:
• Alfanuméricos:
Categoria Significado
N texto numérico
C texto (caracter)
D data
T horário (time)
X hexadecimal
23
Material de treinamento – Conceitos ABAP
Exemplo:
Numero de posições
MENSAGENS:
- Texto padrão:
- Texto personalizado:
Tipos de mensagens:
A – Abend
W - Warning
I - Information
S – Status
E – Erro.
X – Exit (termina com short dump).
Exercício.
01 – Criar um report em que os parameters de entrada sejam exibidos em
mensagens (testar todos os tipos).
TRANSAÇÃO:
Depois de entrar no sistema R/3 existem 3 níveis: nível SAP, nível Work
Área e nível de aplicação. Uma transação é um processo em nível de aplicação.
25
Material de treinamento – Conceitos ABAP
DEBUGGER:
• Pontos de parada
26
Material de treinamento – Conceitos ABAP
TIPOS DE TABELAS:
• Tabela Transparente
Existe uma tabela física no banco de dados para uma tabela transparente.
Todos os dados empresariais e dados de aplicação são arquivados em
tabelas transparentes.
Exemplo:
Todas as nossas tabelas do PW.ce.
EKKO – Cabeçalho do documento de compras.
EKPO - Item do documento de compras.
27
Material de treinamento – Conceitos ABAP
objetivo de que certos dados sejam visualizados sempre que for chamada
uma view
associada a eles.
A maior utilidade deve-se ao fato de criar uma consulta default e toda vez
que se quiser visualizar os dados não será necessário “reinventar a roda”,
ou seja, montar todo o select novamente.
Imagine uma consulta que manipule 10 tabelas e 40 campos será que há
necessidade de ficar refazendo toda vez? Claro que não, crie uma view e
toda vez que haja necessidade faça uma chamada a ela!
Uma view não é utilizada apenas para visualização dos dados, caso se crie
uma view de apenas uma tabela, tem-se a opção de efetuar alterações
(update, insert e delete) na mesma replicando assim os dados para a tabela
de onde a view foi gerada.
DICIONÁRIO (DDIC).
SE11 – MOSTRAR.
Transação onde podemos criar, alterar, exibir eliminar objetos como:
Tabelas transparente, visões, estruturas, elementos de dados, domínios,
ajudas de pesquisa e objetos de bloqueio.
28
Material de treinamento – Conceitos ABAP
Exercício:
1 - Criar as tabelas ZTALUNO, ZTCLASSE, ZTPROF.
Exercício:
1 – Criar CE entre a tabela de alunos e a tabela de classe onde:
ZTALUNO-CLASSE -> ZTCLASSE-CLASSE.
Todos os valores entrados em uma tela que possui valores fixos são,
automaticamente, comparados com esses valores fixos.
29
Material de treinamento – Conceitos ABAP
Exercício:
1 – Criar uma estrutura para cada tabela transparente criada (ZTALUNO,
ZTCLASSE, ZTPROFESSOR)
ATUALIZADOR DE TABELA.
30
Material de treinamento – Conceitos ABAP
31
Material de treinamento – Conceitos ABAP
TABELA INTERNA.
CONCEITOS:
1 - São espaços de memória criados por um programa ABAP que só podem
ser utilizadas enquanto um programa está sendo utilizado.
HEADER LINE
O usuário pode declarar uma tabela interna com uma linha de cabeçalho
através do suplemento WITH HEADER LINE.
Para evitar erros, recomenda-se que o usuário crie tabelas internas sem
linha de cabeçalho. Entretanto, nas tabelas internas com linhas de cabeçalho é
quase sempre possível usar uma sintaxe reduzida para certas operações.
As tabelas internas são descritas através de vários atributos, um dos quais é o tipo
de linha. O tipo de linha determina a estrutura dos registros de dados que podem
ser armazenados em uma tabela interna.
32
Material de treinamento – Conceitos ABAP
AA 0017 2,572
LH 0400 6,162 Dados
Outro atributo das tabelas internas são as chaves, que ajudam a identificar
as entradas da tabela. O importante na definição de uma chave é a seqüência de
seus campos.
Por exemplo, a chave CARRID CONNID é diferente de CONNID CARRID.
Existem dois tipos diferentes de acesso aos dados no Abap: com índice e
com chave.
Acesso com índice: Significa usar o índice do registro de dados que o
sistema mantem para acessar os dados.
Acesso com chave: significa usar o termo de pesquisa, em geral uma chave
da tabela ou uma chave da tabela genérica, para ter acesso aos dados.
- Categorias de Tabelas
Comando Efeito
33
Material de treinamento – Conceitos ABAP
O sistema permite usar tabelas internas sempre que houver uma seqüência
de entradas ou linhas de mesmo tipo. Isto ocorre quase sempre quando um
programa precisa de uma copia interna de uma determinada tabela do banco de
dados.
A instrução APPEND deve ser utilizada para preencher uma tabela interna.
Exemplos de criação.
Debugar e mostrar vazia.
Passar os parameters para dentro da ITAB. Mostrar APPEND -> explicar
header line.
Exercício:
34
Material de treinamento – Conceitos ABAP
OU
OU
Exercício:
Internal tables are a dynamic data structure. Their memory requirements are met
in blocks. The initial memory allocation (hereafter called the OCCURS area), can
be controlled using the " OCCURS n" or "INITIAL SIZE n " addition in the table
definition (see DATA, TYPES). Once the OCCURS area is full, the next block to be
created is twice as big as the OCCURS area (as long as this is not greater than 8
KB). All further blocks are then created with a constant size of 12 KB.
You can leave it to the system to determine the size of the OCCURS area by
specifying n = 0. In this case, the system allocates only a "small" portion of memory
at the first INSERT or APPEND statement. "OCCURS 0" or "INITIAL SIZE 0"
means that 16 <= n <= 100 (depending on the line width).
It only makes sense to specify a concrete value of n > 0 when you know exactly
how many entries the table will have, and you want to set up the OCCURS area
exactly. This can be particularly important if you want to nest internal tables (where
an "outer" internal table contains one or more other internal tables in each line, and
the "inner" tables only have a few entries (no more than 5, for example).
35
Material de treinamento – Conceitos ABAP
MODULARIZAÇÃO:
CONCEITOS:
Organização do programa:
INITIALIZATION.
START-OF-SELECTION.
END-OF-SELECTION.
TOP-OF-PAGE.
Form – Perform.
A estrutura Form / Perform é muito utilizada com qualquer tipo de programa,
com ela executasse a modularização do código fonte através de blocos de
processamento.
Exemplo:
36
Material de treinamento – Conceitos ABAP
COMANDO WRITE:
CONCEITO:
Serve tanto para mover dados tanto para saída de dados em tela.
Criar no END-OF-SELECTION a saída da tabela ZTPROF.
Separadores do WRITE -> Cabeçalho de saída.
FORMAT COLOR. INTENSIFYED ON/OFF.
Criar e mostrar a saída de dados da tabela interna ZTPROF.
Exercício:
1 – Criar o evento end-of-selection, o FORM de saída, o cabeçalho da
saída, a saída dos dados e fazer a formatação de cores.
TABELA SYST:
CONCEITO:
Tabela interna do sistema SAP/R3 que exibe controles internos
importantes para o processamento dos Programas ABAP.
Uma visão completa dos campos da tabela Syst é importante para que o
profissional ABAP fique alerta sobre quais os eventos que ele pode controlar
dentro do sistema, abaixo seguem alguns exemplos:
37
Material de treinamento – Conceitos ABAP
Commit Work é uma técnica utilizada para salvar dados em um BD, esta
gravação é física, ou seja, os dados são “jogados” diretamente nas tabelas, para
confirmar as operações efetuadas no insert, update, etc. Normalmente deixamos o
SAP fazer este gerenciamento de gravação pois ele consiste todos os dados em
todas as tabelas, replicando assim as alterações.
Exemplo I:
Program .............................................
Module User_Command Input.
38
Material de treinamento – Conceitos ABAP
............................................................
............................................................
Case save_ok.
When ‘BACK’.
....................................
....................................
Message Axxxx.
ROLLBACK WORK.
When ‘SAVE’.
....................................
....................................
COMMIT WORK.
EndCase.
EndModule.
Exemplo II:
Rollback Rollback
O programa SAP R/3 utiliza lock nas tabelas por motivo de consistência
dados; em tempo de execução podem existir 2 ou mais pedidos de alteração
quase ao mesmo tempo em um campo X.
Exemplo:
39
Material de treinamento – Conceitos ABAP
- ENQUEUE_<Nome da Tabela>.
Para a liberação da mesma é chamado um outro objeto:
- DEQUEUE_<Nome da Tabela>.
Outro detalhe a ser observado é que antes de se utilizar os objetos, os mesmos
devem ser criados no ABAP Dictionary. A criação destes objetos poderá ser
efetuada para a manipulação de 1 ou N tabelas, vale lembrar apenas que se
houver manipulação em N tabelas deve antes existir um relacionamento entre
elas.
LOOP – ENDLOOP:
Sintaxe básica:
Exercício:
01 – Dar LOOP nas tabelas internas criadas nos exercícios passados e
debugar.
02 – Dar LOOP com condições. (EX: Salário do professor maior que
R$1000,00).
40
Material de treinamento – Conceitos ABAP
Sintaxe básica:
IF condiçao1.
Seqüência de comandos X
.
ELSE.
Seqüência de comandos Y
.
ENDIF.
Exercício:
01 – Criar um novo REPORT onde:
Mudar a descrição de tela dos parâmetros utilizados para que fiquem com a
aparência do cabeçalho abaixo.
41
Material de treinamento – Conceitos ABAP
ATENÇÃO:
CASE:
INSERT.
Sintaxe básica:
42
Material de treinamento – Conceitos ABAP
INSERT dbtable.
Adiciona 1 registro na tabela de banco de dados.
Exercício:
01 – Utilizando o exercício anterior realizar a gravação dos dados da tabela
interna e após a gravação exibir uma mensagem do tipo I (informação) dizendo se
o registro corrente foi gravado ou não.
SORT.
Sintaxe básica:
Exercício:
01 – utilizar o exercício anterior e exibir a saída do relatório organizando por
nome do aluno e sexo -> ASCENDING e DESCENDING.
43
Material de treinamento – Conceitos ABAP
MODIFY.
Sintaxe básica:
MODIFY dbtable.
MODIFY dttable FROM itab.
Exercício:
01 – Com o exercício anterior alterar todos os nomes dos alunos para a
constante ‘JOSÉ DA SILVA’.
DELETE.
Sintaxe básica:
CLEAR:
44
Material de treinamento – Conceitos ABAP
Sintaxe básica:
CLEAR itab.
CLEAR itab[].
CLEAR wa.
INCLUDE :
INCLUDE zi_0001.
INCLUDE <icon>
Exercício:
45
Material de treinamento – Conceitos ABAP
CÓDIGO DO PROFESSOR
NOME DO PROFESSOR
SALÁRIO
MOEDA
• Com código do professor obrigatório.
ATENÇÃO:
Função para obtenção do nome do dia da semana:
RH_GET_DATE_DAYNAME
LAY-OUT DE SAÍDA:
46
Material de treinamento – Conceitos ABAP
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
– INFORMAÇÃO.
UPDATE:
CONCATENATE:
Exemplo:
Data: v_nome(15) type c value ‘JoãoMariaJose’.
Data: v_concatenado(40) type c.
47
Material de treinamento – Conceitos ABAP
WS_UPLOAD e WS_DOWNLOAD:
Exemplo de utilização:
LOOP AT itab_prof.
MOVE:
itab_prof-mandt TO zprof-mandt,
itab_prof-codprof TO zprof-codprof,
itab_prof-nomeprof TO zprof-nomeprof,
itab_prof-dtnasc TO zprof-dtnasc,
48
Material de treinamento – Conceitos ABAP
itab_prof-waers TO zprof-waers,
itab_prof-salario TO v_salario,
v_salario TO zprof-salario.
INSERT zprof.
ENDLOOP.
Exemplo de utilização:
Exercício:
01 – Apagar o conteúdo das tabelas ZTALUNO, ZTCLASSE e ZTPROF
utilizando DELETE.
02 – Carregar as tabelas internas de alunos, professores e classe com os
arquivos texto correspondentes.
03 – Carregar as tabelas transparentes de alunos, professores e classe
com as tabelas inernas.
04 – Com uma das três tabelas internas carregadas utilizar a função
WS_DOWNLOAD e gravar o arquivo com a nomenclatura
C:\saida_ddmmaaaa_hhmmss.txt
WORK ÁREA:
Assim como a declaração tables, podemos criar uma área de memória para
uma estrutura de dados declarada na qual podemos manipular dados de
‘cabeçalho’, não podendo portanto armazenar mais do que uma linha de
informação.
49
Material de treinamento – Conceitos ABAP
SELECT:
Variações
50
Material de treinamento – Conceitos ABAP
Exercício:
LAY-OUT:
TABELA DE ALUNOS:
51
Material de treinamento – Conceitos ABAP
TABELA DE PROFESSORES:
TABELA DE PROFESSORES:
LAY-OUT:
LAY-OUT:
52
Material de treinamento – Conceitos ABAP
TOTAL DA LISTAGEM: XX
SUBMIT:
Sintaxe básica:
SUBMIT report.
EXPORT IMPORT:
Sintaxe básica:
EXPORT work_area to memory id ‘MEM1’.
EXPORT variável to memory id ‘MEM2’.
Onde MEM1 e MEN2 são nomes qualquer dados por nós que se
referenciarão automaticamente como endereços de memória no R/3.
53
Material de treinamento – Conceitos ABAP
READ TABLE:
A instrução READ TABLE <itab> deve ser utilizadas para ler entradas
individuais da tabela. Todas as entradas de tabela lidas são colocadas na header
line.
Sintaxe básica:
Onde INDEX n aponta para o número do registro que queremos ler dentro
da itab.
Exercício:
54
Material de treinamento – Conceitos ABAP
MODULE POOL:
Controles:
55
Material de treinamento – Conceitos ABAP
Exercício:
CALL SCREEN:
LEAVE:
Pode ser:
LEAVE PROGRAM.
LEAVE TO SCREEN ‘xxx’.
56
Material de treinamento – Conceitos ABAP
TABLE CONTROL:
Uma table control é uma área na tela na qual o sistema mostra os dados
em forma tabular. Ela é processada usando um loop.
Exercício:
01 – Criar um programa module pool com uma tela e um GRID com os
campos nome, data de nascimento, salário e moeda da tabela de professor.
57
Material de treinamento – Conceitos ABAP
ATENÇÃO:
Devemos declarar o grid no TOP:
Controls: Nome_do_grid type tableview usind screen ‘0100’.
Devemos declarar a tabela interna para guardar os dados vindos da tabela
transparente e dar loop no PBO e PAI:
MODULE STATUS_0100.
loop at itab_prof
CURSOR tbc100-CURRENT_LINE.
MODULE CARREGA_PROF.
endloop.
*
PROCESS AFTER INPUT
MODULE USER_COMMAND_0100.
loop at itab_prof.
endloop.
COLUNA DE MARCAÇÃO:
Devemos clicar no flag ‘C/ col. Marc’ nos atributos da table control.
Exercício:
01 – Com a table control do exercício anterior criar coluna de marcação e
atualizar os dados da table control para a tabela interna.
58
Material de treinamento – Conceitos ABAP
Exercício:
01 – Criar um botão de INSERIR no exercício anterior. Testar se na table
control existe alguma linha selecionada. Se não: dar mensagem de informação
dizendo que não há linhas selecionadas.
Se o registro (chave) já existir na tabela de professores deveremos dar uma
mensagem informando “O registro não será inserido”. Caso não exista o registro
deverá ser gravado na tabela de professores o registro selecionado.
TABSTRIP:
Nome dado às tela com abas, como se fossem orelhas de navegação, vide
tela abaixo:
59
Material de treinamento – Conceitos ABAP
Onde:
Tela principal:
Tela obrigatória onde conterá as chamadas das subtelas. Essa tela pode ter
campos como cabeçalho ou não ter nada, apenas as próprias subtelas. Na tela
principal obrigatoriamente precisamos ter a chamada de subscreen no PBO e no
PAI.
Exemplo:
call subscreen:
SS_PROF including syst-cprog '0101',
SS_ALUN including syst-cprog '0102'.
MODULE USER_COMMAND_0100.
Declaração de TABSTRIP:
É a declaração de dados feita no TOP INCLUDE onde criamos a
TABSTRIP propriamente dita. É declarado como CONTROLS.
Exemplo:
controls:
ts_curso TYPE TABSTRIP .
Abas de controle:
É o nome da aba propriamente dita. O local onde serão criadas as
SUBSCREEN’s e deve ser criada dentro do SCREEN PAINTER.
No nosso exemplo os nomes das abas são: TAB_PROF e TAB_AL.
60
Material de treinamento – Conceitos ABAP
Exemplo:
Subtelas ou subscreen:
Área física criada dentro das abas de controle que contém o objeto “Área de
subtela” do screen painter.
No nosso exemplo as subscreen’s criadas tem o nome: SS_PROF e SS_ALUN.
Toda subscreen criada tem que ser referenciada a uma tela criada. No nosso
casso essas telas são 0101 e 0102. Essas telas no momento de criação são do
tipo SUBTELA.
Exercício:
61
Material de treinamento – Conceitos ABAP
1 - Direct Input
Este tipo de carga não é utilizado pois não há uma consistência dos dados
na inserção dos mesmos no SAP.
2 - Batch Input
62
Material de treinamento – Conceitos ABAP
O mapeamento dos campos que serão manipulados nas transações pode ser
feito de duas formas:
No Batch Input podemos fazer uma leitura de um arquivo .txt que conterá os
dados a serem inseridos nas transações, para isto utiliza-se a função
WS_UPLOAD. Quando o up-load é efetuado a tabela BDC serve como interface
entre o .txt e as transações, efetuando assim o gerenciamento dessa operação de
carga, incluindo neste momento a manipulação dos campos e seus respectivos
usos.
3 – Call Transaction
63
Material de treinamento – Conceitos ABAP
Chamada:
Onde:
- ‘nnnn’ = número da transação
- ‘a’ = tabela BDC – vide B.I.
- Mode:
A (default) O sistema mostra todas as telas com seus dados.
N O sitema não mostra as telas logo após a transação ter sido
processada, existe um retorno do controle programa (o valor de
UPDATE determina se haverá atualização no BD)
E Logo que um erro ocorre na tela o sistema devia para o modo A
para que sejam efetuadas as correções.
- Update:
‘c’ Controla como as atualizações do BD chamadas pela
transação são executadas.
Divide-se em 3 modos:
A (Atualização assíncrona) A transação chamada não
aguarda até que o BD atualize o que tem que ser executado mas
passa a atualização para o SAP UPDATE TASK, o programa de
Batch Input será executado mais rápido porém não se terá um
retorno se a atualização foi bem sucedida no BD.
As ferramentas de análise e correção de erros não são tão simples
de se uasr quanto as do modo síncrono.
S (Atualização síncrona) A transação chamada aguarda até
que a atualização esteja finalizada, o processamento por motivo
dessa espera fica um pouco mais lento do que no modo assíncrono
porém esta transação pode listar erros caso aconteça algum na
execução, simplificando desta forma a análise e correção dos
mesmos.
L (Local) O BD é atualizado na chamada do processo do
programa.
64
Material de treinamento – Conceitos ABAP
4 – BAPI
Exemplos de uso:
SAPSCRIPT:
65
Material de treinamento – Conceitos ABAP
1 – OPEN_FORM
66
Material de treinamento – Conceitos ABAP
2 – START_FORM
3 – WRITE_FORM
4 – END_FORM
67
Material de treinamento – Conceitos ABAP
unopened = 1
OTHERS = 2.
5 – CLOSE_FORM
Vale ressaltar ainda que na transação SE71 temos a opção Utilitários – Ativar
depurador.
Essa opção liga o debuger de SAPscript que se apresenta num lay-out um
pouco diferente do debuger conhecido para programas. Vale a pena então
ativar o debuger de SAPscript e vermos como ele se comporta.
Exercício:
Criar um report onde:
Informado o código do aluno, o report deverá chamar um formulário de
sapscript e imprimir 3 janelas onde:
Primeira janela:
RELATÓRIO DE ALUNO
Classe : XXXX
Sexo :X
68
Material de treinamento – Conceitos ABAP
Terceira janela
Rodapé do relatório
Data: XX/XX/XXXX.
Hora: XX:XX:XX
69