Professional Documents
Culture Documents
ACADEMIA ABAP
2008
INDICE
TRANSAES R/3 8
TABELAS 12
Para criar um tabela transparente: 12
Academia ABAP - 2008
TABELA CUSTOMIZADA 16
Etapas para gerar automaticamente via R/3 tratamento para manipular Tabela Customizada 16
COMO CRIAR A MANUTENO DA TABELA CUSTOMIZADA 19
PARA ACESSAR A MANUTENO DA TABELA VIA TRANSAO CUSTOMIZADA. 22
TABELAS DE VERIFICAO 28
MENSAGEM 29
Classe de mensagem: 29
Mensagem p/ usurio 30
REPORT 30
Sequncia para criao do Report: 30
OPERADORES LGICOS 31
VARIVEIS: 32
CONSTANTES 32
ESTRUTURA CONDICIONAL: 32
IF 33
CASE 33
2
Academia ABAP - 2008
Loops de repetio 33
WHILE 34
DO 34
CHECK 35
PARAMETERS 35
SELECT-OPTIONS: 35
COMANDO HOTSPOT ON 38
COMANDO HIDE 38
COMANDO AT LINE-SELECTION 38
CRIAR TRANSAO 39
CRIANDO INCLUDES 47
PASSO PARA CRIAO DE UMA VIEW: 47
SUBSTRING 49
PARAMENTROS DE SELEO 49
RADIOBUTTON 49
CHECKBOX 49
RANGE 49
TRANSLATE 50
CONCATENATE 50
SPLIT 50
SHIFT 50
3
Academia ABAP - 2008
SUB ROTINAS 51
MACHCODE OBJECT 51
SET PF-STATUS 51
Habilitar/Desabilitar botes e funes de um PF-STATUS dinamicamente 52
SELECTION-SCREEN 54
AT USER-COMMAND 55
UTILIZAO DE CONES 56
HELP-REQUEST 56
VALUE-REQUEST 56
CRIAO DE FUNES 56
SET CURSOR 68
4
Academia ABAP - 2008
TAB STRIP 70
Criao de tabs trips 70
Para fazer scroll em uma tabstrip (navegar entre as pginas clicando nas abinhas) sem ativar o PAI.
71
Para fazer scroll em uma tabstrip ativando o PAI 71
FIELD SYMBOLS 72
SAP TRANSACTION 73
ATUALIZAO SNCRONA 74
ATUALIZAO ASSNCRONA 74
LUW (Logical Unit of Work Unidade lgica de trabalho) 74
FUNES STANDARD 78
Para trabalhar com Notas Fiscais: 78
Para se obter a BOM de um material 79
Para testar o status de uma ordem 79
Para criar jobs dentro de um programa abap 79
Funo que calcula diferena entre datas/horas 79
Executar comandos do UNIX 79
READ_TEXT 80
POPUP SCREEN 80
TEXTOS 82
GERAL 82
Funes para converso de unidades/medidas 85
PERFORMANCE E ERROS 87
5
Academia ABAP - 2008
BATCH INPUT 88
CALL TRANSACTION 88
DIRECT INPUT 88
Delivered BDC 89
APPLICATION LINK ENABLE 89
ELETRONIC DATA INTERCHANGE 89
REMOTE FUNCTION CALL 89
BUSINESS APPLICATION PROGRAMMING INTERFACE (BAPI) 89
RELATRIOS E FORMULRIOS 90
ABAP QUERY 90
REPORT WRITER e REPORT PAINTER 90
INFORMATION SYSTEM 90
SAPScript 90
ENHANCEMENTS 91
COMANDOS UTIS 91
MOVE-CORRESPONDING 91
SUM, AVG, MIN e MAX 91
UPDATE TASK 92
Para mandar um relatrio direto para a impressora 92
Para concatenar variveis em um nico parmetro utilizar o &: 92
COMENTRIOS 92
NDICE 92
CDIGO MORTO 92
DICAS E TRUQUES 92
Converses 92
Tabelas internas e dicionrio 93
Como buscar resoluo do vdeo 94
Gravar objetos locais para request 94
Funo que cria match-code tipo estrutura de rvore para dados de catlogo 95
CARACTERSTICAS HERDADAS 96
6
Academia ABAP - 2008
EXEMPLOS 99
Exemplo de matchcode dinmico dependendo de outro match code 99
Exemplo criao de JOB 99
Exemplo envio SAPOFFICE 99
Exemplo do uso de field-symbol 99
Relatrio chamando job 99
Enviar e-mail atravs do R/3 99
Documentaes na Internet: 99
7
Academia ABAP - 2008
TRANSAES R/3
AL11 Lista diretrios do SAP
AL21 Dados estatsticos sobre o cdigo do programa
8
Academia ABAP - 2008
9
Academia ABAP - 2008
10
Academia ABAP - 2008
QMEL Nota QM
11
Academia ABAP - 2008
TABELAS
Para criar um tabela transparente:
12
Academia ABAP - 2008
13
Academia ABAP - 2008
Salvar e Ativar.
Domnio (zdo_nome_xx) ?
criao de tipo, campo auxiliar que define tamanho e tipo do campo
OBSERVAOES:
14
Academia ABAP - 2008
15
Academia ABAP - 2008
TABELA CUSTOMIZADA
Etapas para gerar automaticamente via R/3 tratamento para manipular
Tabela Customizada
Definir o Grupo de Funo a ser utilizado pelo Repository Object (tcode SE80).
Selecionar o objeto.
16
Academia ABAP - 2008
ZCONTROLE.
17
Academia ABAP - 2008
18
Academia ABAP - 2008
Definir as
opes
tcnicas e
<Salvar>.
19
Academia ABAP - 2008
20
Academia ABAP - 2008
21
Academia ABAP - 2008
22
Academia ABAP - 2008
23
Academia ABAP - 2008
Definir os parmetros da
tabela a ser atualizada .
24
Academia ABAP - 2008
DELETE:
Deleta registros da tabela.
DELETE <tab-int>. ou
DELETE <tab_int> INDEX <nro_registro>. ou
DELETE <tab_int> WHERE <cond> = <valor>.
Delete from <tab tranparente> where cod = xxx.
REFRESH / CLEAR:
Deleta todos os registros da tabela.
REFRESH <tab_int>.
CLEAR <tab_int>[].
CLEAR <tab_int> ( Limpa Header Line ou seja cabealho)
FREE:
Libera tabela da memria.
FREE <tab_int>.
COLLECT:
Agrupa valores de uma tabela.
Ex. it_pedido (cd_forn, cd_pedido, cd_mat, valor)
It_totais (cd_forn, valor)
LOOP AT IT_PEDIDO.
It_totais-forn = it_pedido-cod_forn.
It_totais-valor = it_pedido-valor
COLLECT it_totais.
ENDLOOP.
MODIFY:
Modifica registros na tabela interna.
Ex.: LOOP AT it_aluno WHERE it_aluno-bolsa < 10.
25
Academia ABAP - 2008
CLEAR it_aluno-bolsa.
MODIFY it_aluno.
ENDLOOP.
SORT:
Ordena registros da tabela.
Para cada SORT faa o LOOP correspondente. A ento iniciar novo SORT e
LOOP, e assim por diante.
READ:
Sempre deve-se utilizar BINARY SEARCH nos comandos READ TABLE itab
WITH KEY.
UPDATE:
Atualiza (modifica) dados na tabela transparente
26
Academia ABAP - 2008
INSERT :
Insero de dados na tabela transparente
INSERT INTO ZXXXXX VALUES IT_XXXXX. ( Onde ZXXXXXX = tabela
transparente e IT_XXXXX uma estrutura (ou tabela interna) contendo os
valores a serem inseridos.
Ex.:
It_aluno-cod = 1001.
It_aluno-nome = Maria.
INSERT INTO ZTBALUNOS VALUES IT_ALUNO.
DESCRIBE TABLE:
Nmero de registros da tabela. O comando DESCRIBE a maneira mais eficiente
de determinar o nmero de registros de uma tabela interna.
27
Academia ABAP - 2008
TABELAS DE VERIFICAO
Usadas para consistir a entrada de dados em uma tabela transparente, baseado nos
dados j existentes em uma outra tabela transparente. o modo de criar no R/3,
chaves estrangeiras.
Informe o nome da
tabela de verificao
no campo apropriado.
O boto Gerar
Proposta,
Verifica se existem
campos em comum
(mesmo domnio)
entre as tabelas e faz
o relacionamento
28
Academia ABAP - 2008
MENSAGEM
Classe de mensagem:
Ir a SE91 e ....
29
Academia ABAP - 2008
Mensagem p/ usurio
REPORT
Sequncia para criao do Report:
3. Declarao de constantes;
4. Declarao de variveis;
30
Academia ABAP - 2008
5. Inicializao;
6. Tela de seleo;
10. Subrotinas.
OPERADORES LGICOS
AND
OR
NE ou <>
>
<
>=
31
Academia ABAP - 2008
<=
=
VARIVEIS:
CHAR Type c
INTEIRO Type i
Valor c/ decimal Type p decimals <n. de casas decimais>
CHAR (0 a 9) Type N
Valores Hexa Type X
Data Type D
Ex: v_data type D.
v_data like sy-datum.
CONSTANTES
Sintaxe:
ESTRUTURA CONDICIONAL:
IF
if <condio>.
Comandos.
Else.
Endif.
32
Academia ABAP - 2008
If <condio>.
Commandos
Else if <condio>.
Comandos
Else if <condio>.
Comandos
Else.
Commandos
Endif.
CASE
Case <variavel>.
When <valor>:
Commandos
When <valor2> :
Commandos
Others:
Comandos
Endcase.
Loops de repetio
Exemplo 1 :
ENDLOOP.
LOOP AT ITAB.
CHECK T_ABC = KVAL.
ENDLOOP.
Exemplo 2 :
Loop at <TI>.
comandos
33
Academia ABAP - 2008
Endloop.
AT LAST
Verifica ultimo registro permitindo somatrios e totalizaes.
AT NEW
Verificar antes de acessar o registro se diferente do ltimo lido permitindo
quebras.
Ex. AT NEW <nome_campo>.
PERFORM Imprime_cabecalho.
ENDAT.
AT END
Verificar depois de acessar o registro se o prximo diferente do registro
atual.
PERFORM Imprime_subtotal.
ENDAT.
WHILE
While <condi>.
comandos
Endwhile.
DO
CHECK
34
Academia ABAP - 2008
CHECK <condio>.
SELECT .....
PERFORM imprime_aluno.
PARAMETERS
Um parmetro serve para a criao de uma varivel com a interveno do usurio,
ou seja, a varivel recebe um valor que o usurio vai digitar.
Sintaxe:
PARAMETERS: <nome> LIKE <tb>-<campo> .
Type c.
PARAMETERS: <nome> LIKE <tb>-<campo> OBLIGATORY.
SELECT-OPTIONS:
Com esse comando o usurio no precisa de digitar as opes, pois vazio, ele
entende que para buscar todos os dados do banco.
CONTINUE
EXIT
Sai do loop.
Ex.
LOOP AT <tabela interna>.
CONTINUE.
ENDIF.
IMPRIMA_ALUNO
ENDLOOP.
36
Academia ABAP - 2008
37
Academia ABAP - 2008
COMANDO HOTSPOT ON
Usado no commando WRITE para identificar que o campo permitir duplo click
(mozinha de seleo)
COMANDO HIDE
Guardar o contedo do campo na linha selecionada (HOTSPOT).
COMANDO AT LINE-SELECTION
Ex.: AT LINE-SELECTION.
DATA: l_cursor(20).
38
Academia ABAP - 2008
IF l_cursor = <nome_campo1>.
....
ELSEIF l_cursor = <nome_campo2>.
....
ENDIF.
CRIAR TRANSAO
Transao uma combinao de caracteres que codifica uma tarefa, atividade,
funcionalidade, etc.
Ir na SE93:
39
Academia ABAP - 2008
40
Academia ABAP - 2008
Exibio imediata
Tabela origem Com restrio para
dos dados listas grandes. Mostra
campo p/ limitar
quantidade
Depend conjto valores
Se lista > 100
registros, mostra
campo limitador de
Campos que quatidade. Se < 100,
apareceram mostra imediatamente
Campo ser
na lista exportado para
o parmetro
Entrar SE11
41
Academia ABAP - 2008
Campos da viso
42
Academia ABAP - 2008
Usa-se a viso criada no seu programa, como se fosse uma tabela transparente
comum.
Pode-se dar um select em seus campos, pode-se joga-la para uma tabela
interna, etc. S no pode atualizar (inserir, modificar ou eliminar) dados da viso.
A vantagem de usar a viso, que ela j um join de vrias tabelas. Quando for
feita a seleo (select * from viso, p.e.), os dados j viro filtrados de acordo
com os parmetros do join.
Pode-se tambm declarar tabelas internas like a viso: DATA IT_TABELA LIKE
ZVISAO OCCURS 0...
Imagine uma situao onde deve-se fazer um join de cinco tabelas, para doze
programas diferentes.
Uma situao interessante criar uma viso das cinco tabelas (o join ser
programado na viso) e nos doze programas, fazer o select da viso, ao invs
das tabelas.
Selecionar tabelas;
Selecionar campos ( todos os campos chaves presentes )
Ligao entre tabelas;
Condies de seleo;
43
Academia ABAP - 2008
44
Academia ABAP - 2008
45
Academia ABAP - 2008
Salvar e ativar.
46
Academia ABAP - 2008
CRIANDO INCLUDES
Programa categoria I que pode ser chamado por vrios programas. Pode ter
funes, definio de dados, trechos de processamento. A existncia do comando
INCLUDE ZACIXXX em um programa, desvia o processamento para o include
referenciado ZACIXXX e volta para o programa que chamou.
1 Entrar na Se38
2 Escrever no fonte:
47
Academia ABAP - 2008
48
Academia ABAP - 2008
SUBSTRING
Para variveis tipo CHAR ou DATA.
SY-DATUM = 20031110
VAR = ACADEMIA.
SY-DATUM(4) = 2003
VAR(2) = AC
SY-DATUM+4(2) = 11
VAR+2 = ADEMIA
SY-DATUM+6(2) = 10
VAR+2(3)ADE
PARAMENTROS DE SELEO
RADIOBUTTON
Parameters: rb_bot1 radiobutton group gr1, Cria dois botes (do tipo rdio)
Rb_bot1 radiobutton group gr1. de seleo mutuamente
exclusiva.
Parameters: rb_bot3 radiobutton group gr2, Cria dois botes (do tipo rdio)
Rb_bot4 radiobutton group gr2. de seleo mutuamente
exclusiva.
CHECKBOX
Ex.
AT SELECTION-SCREEN.
IF <condicao>.
MESSAGE <texto>.
RANGE
Montar intervalos de seleo (semelhante ao SELECT OPTIONS)
RANGE <nome_range> FOR <nome_campo>.
Ex:
A estrutura criada na verdade uma tabela
RANGES RG_DATA FOR EKKO-AEDAT interna e pode ser tratada como tal:
Ex.: rg_data-sign = I.
Cria a seguinte estrutura rg_data-options = EQ.
rg_data-low = 20031010.
SIGN OPTIONS LOW HIGH rg_data-high = 20031231.
append rg_data.
VAR = YYXX.
TRANSLATE VAR USING YAXB Resultado: AABB
VAR = aaa
TRANSLATE var USING UPPER CASE.
CONCATENATE
Agrupar valores.
Ex.:var1 = HEITOR.
Var2 = CARLOS.
CONCATENATE var1 var2 INTO var3 SEPARETED BY SPACE.
Resultado VAR3 = HEITOR CARLOS
SPLIT
Desagrupar valores.
SHIFT
Extrair valores de variveis
50
Academia ABAP - 2008
SUB ROTINAS
PERFORM (<nome_prog>) <nome_rotina>. Chama uma subrotina de um outro
programa
vn_var1 = 50.
vn_var2 = 100.
PERFORM calcula USING vn_var1 vn_var2 CHANGING vn_var1.
.
.
FORM calcula USING vn_valor1 vn_valor2 CHANGING vn_valor1.
ENDFORM.
MACHCODE OBJECT
Cria mathcode para parmetros.
SET PF-STATUS
Esse o comando que chama a funo do boto. Deve-se clicar duas vezes no
campo sxxx(que um nmero que ns definimos previamente) e criar o objeto.
Neste momento a tela te joga para a criao do cone. ( localizado na lgica
principal logo aps o star-of-selection, antes das chamadas de funo)
Cria uma interface de usurio (com menus, botes, teclas de funo, barra de
ferramenta) para uma aplicao. (No nosso caso, um report).
51
Academia ABAP - 2008
Texto que
aparecer ao lado
do cone, no
boto
Lembrar de incluir o cdigo
de funo standart para os
botes de voltar, cancelar e
sair!
52
Academia ABAP - 2008
* BIN_FILESIZE =''
* CODEPAGE =''
FILENAME = vc_nomearq
FILETYPE = 'ASC'
* MODE =''
* WK1_N_FORMAT =''
* WK1_N_SIZE =''
* WK1_T_FORMAT =''
* WK1_T_SIZE =''
* COL_SELECT =''
* COL_SELECTMASK =''
* NO_AUTH_CHECK =''
* IMPORTING
* FILELENGTH =
TABLES
DATA_TAB = it_arquivo
* FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR =1
FILE_WRITE_ERROR =2
INVALID_FILESIZE =3
INVALID_TYPE =4
NO_BATCH =5
UNKNOWN_ERROR =6
INVALID_TABLE_WIDTH =7
GUI_REFUSE_FILETRANSFER =8
CUSTOMER_ERROR =9
OTHERS = 10.
WS_UPLOAD
Carrega arquivo.
53
Academia ABAP - 2008
* CONVERSION_ERROR =1
* FILE_OPEN_ERROR =2
* FILE_READ_ERROR =3
* INVALID_TYPE =4
* NO_BATCH =5
* UNKNOWN_ERROR =6
* INVALID_TABLE_WIDTH =7
* GUI_REFUSE_FILETRANSFER =8
* CUSTOMER_ERROR =9
* OTHERS = 10
OBSERVAES:
SELECTION-SCREEN
Selection-screen begin of line. Define uma linha no Selection-
Selection-screen end of line. screen. Tudo que estiver dentro
deste bloco, sair na mesma linha
No On line:
Intercepta toda ao feita pelo usurio atravs da Status Gui (interface de usurio).
UTILIZAO DE CONES
Incluir biblioteca de cones no programa:
INCLUDE <ICON>
Exemplo de utilizao:
Write: Aluno abaixo da mdia, ICON_RED_LIGHT as icon.
55
Academia ABAP - 2008
HELP-REQUEST
Evento invocado quando tecla-se F1 em algum campo de seleo (da tela de
seleo).
Ex.:
VALUE-REQUEST
Evento invocado quando tecla-se F4 (ou clica-se em ao lado de campo de
seleo (da tela de seleo).
Exemplo:
CRIAO DE FUNES
Encapsulamento de um trecho de programao que pode ser chamado por vrios
programas, receber, alterar e devolver dados. chamado atravs do comando CALL
FUNCTION. Construdo atravs do function builder transao SE37.
Ex.:
Se o parmetro vai
sofrer modificaes
e ser devolvido para
o programa, indique
aqui
56
Academia ABAP - 2008
58
Academia ABAP - 2008
60
Academia ABAP - 2008
Para se fazer uma verificao no contedo de algum campo em uma tela, enviar
uma mensagem de erro, e garantir que o campo esteja ativo novamente para edio,
usa-se:
O mdulo referido ser executado se o campo em questo tiver algum valor que no
seja o inicial.
61
Academia ABAP - 2008
62
Academia ABAP - 2008
Cabealho de colunas;
Desenhar na tela um objeto tipo Table control (Lembrar de definir um control xxx
tipo tableview)
63
Academia ABAP - 2008
64
Academia ABAP - 2008
No programa
if ok_code = 'P--'.
tc_001-top_line = 1.
elseif ok_code = 'P-'.
tc_001-top_line = tc_001-current_line - 1.
elseif ok_code = 'P+'.
tc_001-top_line = tc_001-current_line + 1.
elseif ok_code = 'P++'.
tc_001-top_line = tc_001-lines - sy-loopc.
endif.
endmodule. " pula_pagina INPUT
65
Academia ABAP - 2008
No mdulo de funo
FORM paginacao_100
USING value(p_okcode) TYPE c
value(p_linhas_tc) TYPE i
value(p_linhas_it) TYPE i
CHANGING p_top_line TYPE i.
CASE p_okcode.
* Posiciona na primeira pgina
WHEN 'P--'.
p_top_line = 1.
66
Academia ABAP - 2008
endloop.
MODULE Controle_tela.
ENDLOOP.
67
Academia ABAP - 2008
if wc_field = 'TI_OPER-FORMULA'.
clear wc_field.
wi_line = tc1002-current_line - 1.
endif.
SET CURSOR
Permite definir, em uma tela, o campo e a posio no campo que o cursor ser
posicionado:
68
Academia ABAP - 2008
69
Academia ABAP - 2008
TAB STRIP
Tabstrip permitem exibir diferentes componentes de uma aplicao em uma
nica tela. Seu design intuitivo permite usurios navegar facilmente entre os
componentes.
Partes de um Tabstrip
Nome da
aba do
tabstrip
Funo que
ser passada
Pgina
para o sy-
do
ucomm
rea de tabstrip
quando a
subscreen
aba for
pressionada
Nome da
rea de
subtela
(subscreen)
Pode-se associar uma rea de subtela para cada pgina do tabstrip ou uma rea
comum a vrias pginas.
Nas reas de subscreen so mostrados os dados atravs de telas tipo Subtela.
Click click na abinha de cada pgina, e colocar o cdigo de funo para todas as
pginas (o cdigo que ser recebido pelo OK_CODE, atravs do SY-UCOMM.
Criar dentro de cada pgina um objeto tipo sub-rea (um para cada pgina ou um
para todos.)
70
Academia ABAP - 2008
Para utilizar uma sub-rea para todas as pginas, crie o objeto na primeira
pgina, e nas seguintes, nos atributos do pgina (duplo clique nela), colocar o
nome da subrea criada para a primeira pgina no campo Objeto de referncia
Para fazer scroll em uma tabstrip (navegar entre as pginas clicando nas
abinhas) sem ativar o PAI.
Exemplo da codificao
No top include
data: vc_tela like sy-dynnr value 0002, Define 0002 como a tela inicial
ok_code like sy-ucomm,
Para receber o sy-ucomm. Associa-lo primeira tela
vc_tab like sy-ucomm value TAB1. Pgina da tabstrip que ser chamada
primeiro. O TAB1 o cdigo de funo definido para uma das pginas do tabstrip
71
Academia ABAP - 2008
FIELD SYMBOLS
Referem-se a ponteiros de memria so estruturas de dados que armazenam
endereos de memria. O valor de um ponteiro uma posio de memria,
enquanto que, por exemplo, a de um inteiro um nmero.
SAP TRANSACTION
Uma SAP Transaction, ou transao SAP consiste de passos de dilogo (dialog
step). Um passo de dilogo comea quando o usurio interfere de algum modo
em uma tela, de modo que ela ative o PAI (um ENTER, uma tecla de funo,
clica duas vezes ou escolhe um item de menu). O passo de dilogo termina
quando a prxima tela mostrada.
E.x:
ATUALIZAO SNCRONA
No final de cada dialog step, o R/3 atualiza automaticamente todas as
requisies de atualizaes na base de dados. Imagine que na tela 100 voc
programou a insero de dados e eliminao de dados da sua tabela
ZTBALUNOXX. Quando voc der um enter e o programa passar para a tela 200,
ser inserido na sua tabela o registro do modo como voc programou e ser
eliminada da sua tabela, o registro que voc especificou.
ATUALIZAO ASSNCRONA
Algumas vezes imperativo que os dados no sejam atualizados no banco de
dados, quando mudar de tela. Imagine a seguinte situao: Voc tem que fazer
vrias atualizaes dentro do seu programa (inserir um registro, modificar outro,
eliminar outros dois e inserir mais um). Essas atualizaes so feitas por vrias
telas diferentes. E mais, se uma dessas atualizaes no for bem sucedida (voc
tentou inserir um registro com chave duplicada, por exemplo.), nenhuma das
outras atualizaes pode ser feita. Pelo default do R/3, que atualizao
sncrona, se der erro em uma atualizao qualquer, J ERA!
Na minha seqncia de telas (meu programa) posso ter quantos LUW que quiser.
Programo-os de acordo como (e quando) quero atualizar minha base de dados.
Se todas minhas atualizaes forem ok, executo o comando COMMIT WORK. Se
der erro em alguma atualizao, executo o comando ROLLBACK WORK.
74
Academia ABAP - 2008
Muitas vezes, a durao do lock provido pelo R/3 no suficiente para minha
aplicao.
Imagine que eu tenha que ler um cdigo de aluno, fazer uma poro de consultas
e s depois atualiza-lo. Enquanto eu tiver fazer as consultas, ningum mais
deveria acessa-lo para modifica-lo ou elimina-lo.
75
Academia ABAP - 2008
76
Academia ABAP - 2008
O R/3 j sugere
que o lock seja
feito pela chave
primria
Para usar
O campo it_alunos-aluno conter o cdigo do aluno que ser bloqueado
Para bloquear
Para desbloquear
call function 'DEQUEUE_EZ_ABC'
exporting
mode_abc = 'E'
mandt = sy-mandt
serie_despacho = it_alunos-aluno
77
Academia ABAP - 2008
Parametros principais:
- Program: caminho do programa (ex. C:\WINDOWS\NOTEPAD.EXE).
- Command: linha de comando (ex. o nome do arquivo).
FUNES STANDARD
Para trabalhar com Notas Fiscais:
78
Academia ABAP - 2008
CALL 'SYSTEM'
ID 'COMMAND' FIELD p_com
ID 'TAB' FIELD t_arq_usudel-*sys*.
IF T_ARQ_USUDEL[] IS INITIAL.
ENDIF.
READ_TEXT
O nome do texto simplesmente a chave completa da tabela em questo,
existe uma dificuldade de descobrir o ID e o Objeto a serem passados.
Para acess-los facilmente, bastar clicar (2x) sobre o texto na transao em
79
Academia ABAP - 2008
que ele aparece, (o modo editor ser acionado) em seguida ir no menu: Saltar
-> Cabealho e pronto, os campos necessrios esto nesta tela.
POPUP SCREEN
POPUP_TO_CONFIRM_STEP
Cria um box de mensagem com confirmao
POPUP_TO_CONFIRM_WITH_MESSAGE
Cria um box de mensagem com confirmao E 5 LINHAS
POPUP_TO_CONFIRM_WITH_VALUE
Cria Box de Dialogo com passagem de valores como parametro.
POPUP_TO_DECIDE
Cria box de dialogo com opes especificadas.
POPUP_TO_DECIDE_WITH_MESSAGE
Cria Box de dialogo com opes especificas
80
Academia ABAP - 2008
POPUP_TO_DISPLAY_TEXT
Cria Box de Seleco com 2 linhas e Boto
POPUP_TO_SELECT_MONTH
Cria um Box de Seleo para Ms e Ano
POPUP_WITH_TABLE_DISPLAY
Cria um Box de seleo, a partir de uma tabela passada como parmetro e
retorna qual a opo selecionada pelo usurio.
POPUP_TO_CONFIRM
Exibe uma caixa de textos para confirmao
POPUP_TO_DISPLAY_TEXT
Exibe texto em caixa de textos modal
POPUP_TO_INFORM
Cria caixa de informao
POPUP_TO_CONFIRM_LOSS_OF_DATA
Box de Dialogo
TEXTOS
SAVE_TEXT
Salva Textos Longos
81
Academia ABAP - 2008
READ_TEXT
Realiza Leitura de Textos Longos no R/3
COMMIT_TEXT
Grava Textos Longos
INIT_TEXT
To load long text into SAP
LIST_TO_ASCII
Converte Relatrios Abap para o formato ASCII
GERAL
RSTXPDFT4
Converter ordem de spool para PDF
RSTXLDMC
Importar figura (TIF) como texto
RSTXSCRP
Download de sapscript
YS_DESBLOQ_INTERFA
Desbloquear interface
RSTXR3TR
Transporte de sapscript
Ex. Par - Sistema file = servidor
- formato = binrio
- file = /usr/sap/trans/tmp/PARK9000.scp
RP_CALC_DATE_IN_INTERVAL
Adiciona/subtrai anos/mses/dias de uma data
RP_LAST_DAY_OF_MONTHS
Determina ultimo dia do ms
RS_REFRESH_FROM_SELECTOPTIONS
Seleciona Valores de um Select-Options
RS_VARIANT_CONTENTS
Retorna valores de uma varivel em uma tabela interna
RZL_SLEEP
Para o Processamento do programa de 1 a 5 Segungos
82
Academia ABAP - 2008
SAPGUI_PROGRESS_INDICATOR
Exibe uma barra de Status, utilizando o SAP GUI
SD_DATETIME_DIFFERENCE
Retorna a diferena entre duas datas e Hora
SO_WIND_SPOOL_LIST
Exibe um Bowse com as impresses do usurio que esto no Spool.
TERMINAL_ID_GET
Retorna o Nmero IP e o nome do Terminal que o usurio esta logado.
TH_ENVIRONMENT
Retorna Informaes sobre o sistema operacional do Servidor SAP.
TH_POPUP
Exibe uma mensagem para o usurio Especificado, em qualquer client.
TH_USER_INFO
Retorna informaes sobre o usurio que esta logado.
TH_USER_LIST
Retorna informaes de usurios conectados a determinado Servidor
UPLOAD
Abri arquivos na estao Local
WS_DOWNLOAD
Salva Tabela interna na estao de trabalho local
WS_EXECUTE
Executa programas na estao de trabalho
WS_FILE_DELETE
Deleta arquivos na estao de trabalho
WS_FILENAME_GET
Mostra um Browser para Selecionar Arquivos
WS_MSG
Cria um box de dialogo com uma mensagem no padro Visual Basic
WS_UPLOAD
Carrega dados de arquivos na estao de trabalho para uma tabela interna.
WS_VOLUME_GET
Retorna o Nome do Volume da unidade de disco da estao de trabalho
WWW_LIST_TO_HTML
Salva o contedo de um relatrio em uma tabela interna no Formato HTML
EPS_GET_DIRECTORY_LISTING
Retorna uma tabela interna com os arquivos de determinado diretrio do
servidor.
83
Academia ABAP - 2008
F4_DATE
Exibe um calendrio pop-up para escolha
HOLIDAY_GET
Retorna os feriados existentes entre um intervalo de data, baseado no
calendrio da fbrica
MONTH_NAMES_GET
Retorna uma tabela interna com os nomes dos meses.
HOLIDAY_GET
Testar se dia til.
DAY_ATTRIBUTES_GET
Testar se dia til (atributos do dia)
QPK1_GP_CODE_SELECTION
Match-code em estrut. de rvore para dados de catlogo.
SPELL_AMOUNT
Retorna valor por extenso
NUMERIC_CHECK
Verifica se varivel numrica
LOAN_TABLECONTROL_SCROLLING
Controlar scroll de uma table control.
DYNP_VALUES_READ
L os valores informados na tela
GET_DYNPRO_LIST
L os valores informados na tela. Na tela standard gerada pelo gerador de
atualizao de tabelas, s consegui usar este
HELP_VALUES_GET_NO_DD_NAME
Montagem de matchcode dinmico
RS_VARIANT_CONTENT
Funo para leitura de variantes (Ver tabelas VARI e VARID)
84
Academia ABAP - 2008
OBSERVAO:
Estes valores podem ser RANGES ou PARMETROS; FIXOS ou VARIVEIS.
Em qualquer campo de autorizao, o (*) eqivale a todas as entradas possveis;
Criando Autorizaes;
Caminho: R/3FerramentasAdministraoAtualizao UsurioAutorizao
Transao SU03;
Seleciona, novamente, a Classe de Objetos desejado;
Consultar os Objetos existentes, conforme passo anterior;
Optar pelo objeto de interesse;
Consultar as Autorizaes j existentes para este objeto;
Poder ser criado novas autorizaes...
Atualizar Perfil:
Caminho: R/3 FerramentasAdministraoAtualizao UsurioPerfil;
Transao SU02;
Criao;
Digite o nome do perfil a ser criado;
Clicar em ENTER ou GERAR REA TRAB.;
Exibir uma lista vazia;
Clicar em Criar, colocar descrio;
Perfil individual1 ou coletivo2;
Exibio/Modificao;
Digitar o nome do Perfil;
Clicar ENTER ou GERAR REA TRAB.;
Exibir a lista contendo a autorizao selecionada;
Clicar em MODIF, EXCLUIR,...
REPORT ZZZTESTE.
AT SELECTION-SCREEN ON P_CARR.
AUTHORITY-CHECK OBJECT 'S_CARRID'
ID 'CARRID' FIELD P_CARR
ID 'ACTVT' FIELD '02'.
IF SY-SUBRC NE 0.
MOVE 'No Autorizado' TO V_RESULT.
ENDIF.
START-OF-SELECTION.
WRITE V_RESULT.
PERFORMANCE E ERROS
Tips and Tricks - Clicando neste boto poder ser feita comparao entre
comandos Select (diferentes tipos). Dando double-click sobre um dos exemplos voc
passar para outra tela, onde voc visualizar a medida do tempo em
microsegundos de ambos, servindo de base de comparao.
OBS: A ferramenta de Runtime Analysis emite um Warning para mquinas com mais
de um processador, neste warning adverte para o fato de no ser precisa para
mquinas com mais de um processador, porm mesmo assim aconselhamos o uso
pois em termos proporcionais para se encontrar os gargalos do programa a
preciso perdida dispensvel.
SQL Trace - pode ser utilizada para trilhar a lgica de aplicao e verificar possveis
pontos de correo. Voc poder visualizar os comandos de acesso a banco de
dados, obter informaes sobre um comando especfico, visualizar os ndices que
esto sendo utilizados.
Extended Program Check - outra facilidade que deve ser empregada visando
manter o seu cdigo o mais correto possvel. Nesta opo voc poder selecionar os
itens que voc deseja que sejam checados e o sistema apontar o seu parecer.
Para tanto basta clicar os itens e o pushbutton PERFORM CHECK Selecionando
uma linha voc poder ver os detalhes, bem como posicionando o cursor em uma
linha e clicando o pushbutton DISPLAY ALL CHANGES.
87
Academia ABAP - 2008
CALL TRANSACTION
DIRECT INPUT
O mecanismo de direct input apresenta a melhor performance dentre os dois
anteriores. Essencialmente, este mtodo utiliza um arquivo seqencial e
funes especiais que processam os dados existentes neste arquivo e que
atualizam as tabelas do sistema R/3 diretamente. A experincia vivenciada em
outros projetos tem mostrado que as funes de direct input apresentam
inmeros bugs que provocam incosistencias nas tabelas do sistema. Este
mtodo no dever ser utilizado para a construo das interfaces. Caso o
mecanismo de call transaction no apresente a performance adequada em
alguma interface especfica, uma soluo baseada em direct input poder ser
estudada, demandado, entretanto, testes exaustivos face aos problemas de
consistncia mencionados.
Delivered BDC
O mecanismo de delivered BCD representa um conjunto de programas,
fornecidos juntamento com o sistema R/3, que objetivam reduzir o esforo
envolvido no desenvolvimento de novos programas para a transferncia de
dados. A experincia tem mostrado que alguns destes programas apresentam
tima performance (usam direct input), porm sofrem dos problemas de
consistnciam mencionados. Alm disso, os delivered BDC utilizam arquivos
de transferncia com formato fixo, estabelecido pela SAP. Este mecanismo
no dever ser utilizado para a construo de interfaces, em virtude dos
problemas discutidos.
88
Academia ABAP - 2008
RELATRIOS E FORMULRIOS
ABAP QUERY
INFORMATION SYSTEM
89
Academia ABAP - 2008
Ferramenta para gerao de relatrios que permite ao usurio final criar listas
com layouts especficos e frmulas (Anlise Flexvel), apresentar resultados
atravs de grficos (Anlise Standard), entre outras facilidades. Outras
informaes podem ser encontradas na documentao do sistema R/3 no
tpico LIS - Logistics Information System.
SAPScript
ENHANCEMENTS
1) Para que um field-exit funcione necessrio que o profile parameter
abap/fieldexit esteja com o valor YES.
Para modificar os valores de um profile parameter utiliza-se a transao RZ11.
1) Quando o frontend sair do ar, para recuperar o que estava fazendo, entrar no
logon do SAP, digitar o user e a senha, no teclar enter, opo de menu Usurio /
Aceitar sesso. Caso o mesmo usurio estiver mais de uma vez na mesma
instncia isto no funciona.
90
Academia ABAP - 2008
Para transportar textos standard devemos criar uma request manual e no editor
inserir as entradas:
R3TR TEXT <objeto>,<nome do texto>,ST (ID),S (Idioma)
Exemplo:
PgmID Obj Obj.name
R3TR TEXT TEXT,WHIRPOOL-2,ST,E
R3TR TEXT TEXT,LOGO_57_MM ,ST,E
R3TR TEXT TEXT,LOGO_57_MM ,ST,P
COMANDOS UTIS
MOVE-CORRESPONDING
Exemplo:
Procure usar as funes de clculo do SELECT ao invs de usar lgicas para obter
os resultados acima.
UPDATE TASK
Sempre que possvel utilize a atualizao via UPDATE TASK para programas
dialog
Comandos
COMENTRIOS
NDICE
91
Academia ABAP - 2008
Cada ndice criado diminui a performance dos inserts e dos updates nas
tabelas. No geral, tabelas onde so feitos muitos inserts e updates, devero
ter poucos ndices. Da mesma forma, tabelas onde h muitos selects, podero
ter mais ndices. Uma mdia de 3 ndices por tabela aceitvel.
CDIGO MORTO
DICAS E TRUQUES
Converses
Ou utilizar a funo:
Call Function 'PERIOD_AND_DATE_CONVERT_OUTPUT'
Exporting
Internal_Date = varivel like sy-datum
Internal_Period = 1
Importing
External_Date = varivel char(10) .
92
Academia ABAP - 2008
Isso indica que existem duas funes standard para converter o valor
desse campo:
Lado Esquerdo:
93
Academia ABAP - 2008
94
Academia ABAP - 2008
exporting
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_callback_pf_status_set = 'F_SET_STATUS'
it_fieldcat = gt_fieldcat
No AT USER-COMMAND.(por exemplo)
* Testa de o checkbox foi marcado
DO.
ADD 1 TO VI_CONT.
READ LINE VI_CONT.
IF sy-lisel+5(1) = 'X' AND sy-lisel+16(1) = 'X'.
()
CARACTERSTICAS HERDADAS
Algumas caractersticas associadas a um objeto podem ser herdadas de uma classe
superior. Sempre que utilizar a funo de classificao de caractersticas, assinalar com X o
parmetro inherited_char. a garantia de que as caractersticas herdadas sero
selecionadas.
95
Academia ABAP - 2008
Ajuda de pesquisa...
96
Academia ABAP - 2008
Para resolver esse problema, existe uma conta que pode ser feita com a varivel
sy-srows.
v_limite = sy-srows - 8.
97
Academia ABAP - 2008
EXEMPLOS
Exemplo de matchcode dinmico dependendo de outro match code
Ver programa YSRCS_REDEFINICAO_MODAL
Documentaes na Internet:
http://ifr.sap.com/
98
Academia ABAP - 2008
99