Você está na página 1de 83

SUMRIO

DEFINIO BSICA R/3 - SAP.....................................................................................................................................4


PRINCIPAIS CARACTERSTICAS...............................................................................................................................5
CONCEITOS......................................................................................................................................................................6
NAVEGAO BASICA...................................................................................................................................................8
DICIONRIO DE DADOS.............................................................................................................................................1
DATA BRO!SE OU TAB"E CONTENTS.................................................................................................................1#
EDITOR ABAP/4.............................................................................................................................................................13
CRIAO DE PROGRAMAS NOVOS.......................................................................................................................15
PROGRAMAO...........................................................................................................................................................16
E"EMENTOS DE TE$TO.............................................................................................................................................1%
EVENTOS........................................................................................................................................................................#1
TABE"AS INTERNAS...................................................................................................................................................#4
TABE"A S&ST ' S& (.....................................................................................................................................................#)
REPORTS.........................................................................................................................................................................#%
REPORTS INTERATIVOS............................................................................................................................................3
BATC* INPUT................................................................................................................................................................31
GERAO DE AR+UIVO TE$TO.............................................................................................................................33
SUBROTINAS POO".....................................................................................................................................................34
COMANDOS E$TERNOS.............................................................................................................................................35
GRFICOS......................................................................................................................................................................36
BIB"IOTECA DE FUN,ES........................................................................................................................................3)
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5671-7000 www.complex.inf.br
Pg. 2
MENU PAINTER............................................................................................................................................................3%
-OBS..................................................................................................................................................................................41
DEBUGGING...................................................................................................................................................................43
TRANSPORTES E RE+UESTS....................................................................................................................................44
NO,ES DE MODU"E POO".....................................................................................................................................46
TRANSA,ES................................................................................................................................................................48
AUTORI.A,ES...........................................................................................................................................................4%
USER-E$ITS....................................................................................................................................................................5
NO,ES DE SAPSCRIPT.............................................................................................................................................5#
ADMINISTRAO / MONITORAMENTO...............................................................................................................54
PRO-ETO FINA"...........................................................................................................................................................55
PROGRAMA/ .C$1...............................................................................................................................................56
PROGRAMA/ .C$#...............................................................................................................................................5)
PROGRAMA/ .C$3...............................................................................................................................................5%
PROGRAMA/ .C$4...............................................................................................................................................63
PROGRAMA/ .C$5...............................................................................................................................................68
PROGRAMA/ .C$6...............................................................................................................................................)
PROGRAMA/ .C$)...............................................................................................................................................)3
PROGRAMA/ .C$8...............................................................................................................................................)5
PROGRAMA/ .C$%...............................................................................................................................................)5
PROGRAMA/ .C$1...............................................................................................................................................)6
PROGRAMA/ .C$11...............................................................................................................................................))
PROGRAMA/ .C$1#...............................................................................................................................................)8
PRINCIPAIS TABE"AS GEN0RICAS........................................................................................................................81
PRINCIPAIS TABE"AS MM 1 PP..............................................................................................................................81
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 3
PRINCIPAIS TABE"AS FI 1 CO................................................................................................................................8#
PRINCIPAIS TABE"AS SD..........................................................................................................................................8#
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 4
DEFINIO !"ICA #$% & "A'
Trata-se de um software integrado de gesto empresarial, o qual atende a maioria dos setores (ndustrial,
Revenda, Bancrio, etc... ). Por muitos confundido como "A', o software chama-se R/3, sendo "A' o
nome da empresa alem a qual o desenvolveu.
nicialmente estava voltado para plataformas de grande porte ( R/2 ), sendo que a maioria das implantaes
atualmente se do em ambientes UNX ou NT, com front end WNDOWS.
O ambiente de desenvolvimento e a linguagem de programao chamam-se ABAP, tambm conhecido at
o release 3.0F como ABAP/4, uma linguagem exclusiva do software R/3, a qual interpreta os comandos e
os converte quando necessrio em comandos SQL ( padro de extrao de Bancos de Dados ), sendo
assim o R/3 pode ser implementado com qualquer Banco de Dados padro SQL ( na maioria dos casos
ORACLE, NFORMX, SYBASE, etc... ), convertendo desde de comandos de extrao at comandos de
criao de base de dados. O banco de dados completamente transparente para o desenvolvedor.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 5
'#INCI'AI" CA#AC(E#)"(ICA"
Por ser um software integrado, onde todos os mdulos so dependentes ( principais mdulos MM
Materiais, PP Produo, SD Vendas/Distribuio, F Contabilidade, CO Controlling, PM
Manuteno, HR Recurso Humanos / Folha de pagamento ), existe a necessidade de se conhecer um
pouco de cada mdulo para se domin-lo ( tanto para usurios finais, como para desenvolvedores).
Possui um grande controle para a segurana, a qual trabalha a nvel de perfis de usurios com transaes
pr-definidas para utilizao.
Permite a customizao via USER-EXTS, as quais so pr-existentes em alguns programas, podendo ou
no serem acionadas pelo cliente, no gerando re-trabalho na poca de upgrades.
Exige-se normalmente dos profissionais desenvolvedores, uma metodologia de trabalho e documentao
mais parecida com a poca dos grande portes.
Trabalha-se com no mnimo duas mquinas, uma para desenvolvimento e uma para produo, mantendo-
se a integridade dos programas e das parametrizaes, via transporte ( Requests ).
O ABAP possui grande abertura no que tange a comunicaes, entre aplicativos OLE, e at mesmo com
outras linguagens tipo Visual Basic, C++ etc... Atualmente a grande novidade a nvel de comunicao do
R/3 com o mundo externo, so as BAP's ( Business Aplication Programing nterface ), orientao a objetos
do ABAP.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 6
CONCEI(O"
MANDANTE Em uma mesma mquina pode-se Ter mais de um mandante ( client ) com o R/3, Trata-se
uma diviso lgica de informaes, num mesmo espao fsico, com o tempo ir se perceber que muitas
coisas so dependentes de mandantes e outras no. Por exemplo o primeiro campo de 95 % das tabelas
o campo mandante, logo, quando nos logamos em um mandante 'n', no iremos acessar as informaes
desta tabela armazenadas para o mandante 'n+1'. Por outro lado os programas desenvolvidos em uma
mquina iro estar disponveis para todos os mandantes.
TRANSAO So cdigos alfanumricos, os quais esto relacionados com programas on-line
( Relatrios, Batch input, gerao de arquivo texto etc... ), mdulos de dilogo ou sub-menus. Alm de
agilizar a chegada ao programa pretendido, so a base para a montagem dos perfis de usurios finais.
(Uma vez dominadas, muitas pessoas acabam digitando a transao ao invs de percorrer o Menu ).
ABAP WORKBENCH ( Transao S001 ) Ambiente de desenvolvimento, onde se cria/altera dicionrios
de dados, programas, funes, Menus, etc ... ABAP -> Advanced Business Application Programming.
IMG ou CUSTOMIZING Parametrizao bsica de todo o ambiente funcional do "A', como Empresas,
Estruturas de Empreendimentos, Plantas das Fbricas, Bancos, Moedas, etc ...
CLASSE DE DESENVOLVIMENTO * Ou development Class, trata-se da forma a qual o programa, o
dicionrio de dados, a transao etc.. sero gravadas para o R/3, ou seja normalmente sugere-se ger-los
em Objeto Local ( $TMP ), para futuramente ( depois de testes ) desloc-los para uma classe de
desenvolvimento possibilitando-se o transporte deste objeto para outras mquinas.
REQUEST * Sempre que um objeto estiver em uma classe de desenvolvimento diferente de $TMP, todas
as alteraes deste precisaro de um request, o qual ser transportados para outras mquinas mantendo-
se assim a integridade.
PROGRAMAS ON-LINE * Trata-se dos programas de manipulao de dados, na maioria das vezes
somente para extrao em arquivo texto, ou relatrio. Tambm so programas on-line, os Batch nputs (os
quais alteram a base por executar transaes ), mas principalmente divergem dos mdulos de dilogo
( Mdulo Pool ).
+OD,-E 'OO- So a grande maioria de programas que manipulam telas e fazem manuteno de
dados ( Standard ) tipo ncluso, Alterao e Excluso. Possui alguns conceitos novos tipo PBO e PA, os
quais sero explanados mais adiante.
BATCH INPUT So programas que executam de forma automtica ( todos os registros de um arquivo
texto por exemplo ), qualquer transao do R3.
VARIANTES So valores fixo pr-definidos, para qualquer tela de seleo de parmetros de programas,
ou seja, quando um usurio sempre informa os mesmos dados, ou para execuo de um job. Difere do
perfil de usurio > Manuteno de dados, o qual fixa dados para qualquer tela, para um usurio.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 7
STATUS ndica qual a transao, nome do programa, tela e outras informaes, a qual o processo em
questo se refere.
CLASSE DE MENSAGENS Diviso fsica das Mensagens de erros e/ou sucessos para os diversos
mdulos e sub-divises.
ANLISE DE DUMPS Normalmente so gerados dumps, quando se ocorre um erro no previsto, tipo
"Zero Divide. Caminho para anlise de dumps gerados: Ferramentas > Administrao > Monitoramento >
Anlise Dump
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 8
NA.E/AO A"ICA
Duplo clique no cone abaixo:
Aparecer a seguinte tela para LOGN:
Deve-se informar o Mandante, Usurio, Senha e o dioma desejado. Para alterar a senha informar os
mesmos dados e clicar Nova Senha.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 9
A tela seguinte ser o Menu Principal do R/3: ( Neste Menu esto todos os Mdulos Funcionais e mais o
ambiente de desenvolvimentos: Ferramentas > ABAP/4 Workbench ).
Consultar navegao Bsica em Ajuda Ampliada, Working With R/3, Getting Started with R/3, Learning the
basics.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 10
FE##A+EN(A" AA'$0 WO#1ENC2
DICION!#IO DE DADO"
Caminho: Ferramentas > ABAP/4 Workbench > Dictionary. ( SE11 )
Este o ambiente de dicionrio de dados, display, criao e alterao de tabelas, e principalmente pela
ferramenta de Data Browse Utilitrios > Table contents ( tambm disponvel na transao SE16 ).
Escolha display de uma tabela qualquer por exemplo T001W ( Tabela de Centros ), para uma familiarizao
com alguns conceitos. ( Trata-se de uma tabela de 53 campos, dependente de mandante, com a chave
primria de um s campo WERKS ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 11
Muita coisa funciona no ABAP/4, com duplos cliques, por exemplo, dando duplo clique no DATA ELEMENT
"NAME1, similar a voltar uma tela escolher o radio buttons Elemento de Dados com o nome "NAME1.
Podemos tambm navegar pelas tabelas que possuem chave estrangeira da tabela que estamos. No caso
a T001W, possui chave estrangeira somente da tabela T000 ( Tabela de Mandantes ).
Data Element Trata-se de um referncia a qual pode ser a mesma para diferentes campos de diferentes
tabelas, onde se define labels ( curtos e longos ) para o campo, e principalmente referencia-se ao domnio
dele. ( domain ).
Domain Trata-se como o prprio nome diz do domnio da informao que este campo pode conter. Este
domnio pode ser uma outra tabela ou um domnio fixo.
____________________________________________________________________________________
Exerccio:
Criar uma Tabela Transparente, com o nome ZTAB1_XX, na classe de desenvolvimento $TMP, onde XX
o nmero do aluno, com os seguintes campos:
_ Codigo numc(3)
_ Nome char(30)
OBS.: Ser necessrio criar dois Data Elements e dois Domains, ateno para o campo Mandante, para
Chaves Externas, Parmetros Tcnicos e ndice Primrio. ndicar Delivery class "C' e Tab.Maint.Allowed =
''. A nomenclatura dos data elements dever ser ZEL99_XX e dos domnios dever ser ZDM99_XX, onde
99 um nmero sequencial e XX o nmero do aluno.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 12
DA(A #OW"E ou (A-E CON(EN("
Ferramenta de extrao de dados das tabelas da base ou transao SE16.
____________________________________________________________________________________
Exerccio:
Verificar para a Tabela T001W, o contedo dos registros, na opo Utilitrios > Table Contents ( do
Dicionrio ). Perceber que o Data Browse solicita o campo WERKS , por este fazer parte da chave primria
e repare que no pede Mandante.
OBS.: Verificar o Nmero mximo de registros, Legenda de cores, Seleo de coluna, ordenao e
parmetros do usurio ( Tela de seleo e tela de resultado ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 13
Montar um programa de manuteno na tabela gerada no exerccio do captulo anterior: Dicionrio >
enviroment > tab.Main.Generator. nformar o grupo de funes ZAAA, autorizao &NC&, one step e
procurar tela para sntese. Executar transao SM30.
EDI(O# AA'$0
Transao SE38, ferramenta para desenvolvimento e/ou alterao de programas fontes ON-LNE e
eventuais ncludes. Normalmente os programas MODULE POOL, so manipulados na ferramenta OBJECT
BROWSE, porm podem ser visualizados e/ou alterados no EDTOR.
Possui o conceito bsico de editores de programas fontes, porm com alguns termos no comuns:
1 - Variantes
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 14
2 - Atributos
3 - Documentao
4 - Elemento de Texto
1 Variantes: So utilizadas por usurios que executam normalmente um certo programa, com os mesmos
dados de seleo ( Parmetros ). E tambm so utilizadas para execuo de JOBS.
2 Atributos: So os atributos principais do programas como Data de Criao e ltima Alterao, Ttulo,
tipo, status, aplicao, development class entre outras.
3 Documentao: Trata-se da documentao do programa a qual poder ser traduzida para diversas
lnguas ( Dependendo do Logon, o ABAP/4 encarrega-se de apresentar a respectiva documentao).
4 Elementos de Texto: Podem ser Ttulos e Cabealhos, Textos de Seleo e Smbolos de Textos. (Este
tpico ser tratado mais adiante, porm vale lembrar que Elementos de Textos aceitam traduo assim
como Documentao ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 15
C#IAO DE '#O/#A+A" NO.O"
Esto disponveis para a montagem do cdigo fonte, trs tipos de modos de edio: PC mode com
numerao, PC mode sem numerao e Command Mode ( Ambos com Letras Maisculas e Minsculas).
Usaremos neste curso o Command Mode, porm a escolha futuramente do Analista-Programador.
OBS.: Para se alterar o Modo de Edio, dentro do Editor do cdigo-fonte: Opes > Modos de Edio.
Qualquer dvida com relao a este tpico, consultar Help Editor.
Vale Lembrar que para acessar o Help dentro do Editor , basta posicionar o cursor em cima da palavra
desejada e teclar F1, ou informar na linha de comando help ( "h + palavra desejada ).
Primeiramente deve-se saber que por padro, tudo que for criado ( customizado ) pelo cliente da "A', deve
comear por 'Z' ou 'Y', desde programas, classes de desenvolvimentos, tabelas, estruturas, SAPscripts
etc... Logo, usaremos neste curso a seguinte padronizao para Nomenclatura de Programas: ZCXXX99,
onde XX identifica o cdigo do aluno e 99 nmero seqencial.
Exerccio:
Criar o primeiro programa, na classe de desenvolvimento $TMP, por enquanto sem cdigo fonte.
OBS.: Ateno ao Ttulo, Tipo e Aplicao. Sempre que um Campo possuir o sinal '?', este campo
obrigatrio.
Exerccio:
ncluir como cdigo fonte do programa anterior, somente o comando report e o comando write, variando
salto de linhas, posicionamento de coluna, cores e boxes.
Exerccio:
Montar um novo programa para display de Cdigo e Nome dos Centros ( Tabela T001W, campos T001W-
WERKS e T001W-NAME1 ). Utilizar agora novos comandos: tables, data e select.
Obs.: Tela do relatrio ( find, paginao e outros botes ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 16
'#O/#A+AO
Estaremos falando neste tpico de desenvolvimento de programas ON-LNE. em ABAP/4, ( Linguagem de
quarta gerao, orientada a eventos ).
COMANDOS
Relacionaremos a seguir alguns comandos e conceitos importantes no ABAP, sendo que a totalidade dos
comandos e suas sintaxes, podem ser encontradas no help. Os comandos relativos a tabelas internas
sero tratados mais adiante.
INTRODUCES PROGRAM REPORT
REPORT
Start of Report
DECLARATIVE KEY WORDS
DATA
nternal fields, field strings, internal tables, common areas
LOCAL
Global fields in subroutines
TABLES
"A' tables
PARAMETERS
nternal fields set by the user after starting the program
SELECT-OPTONS
Selection criterion set by the user for data selection purposes after starting the program
SELECTON-SCREEN
Selection screen layout
RANGES
Selection criterion handled within the program only
CON(#O- 1E3 WO#D"
F..ELSE..ENDF
Conditional processing
You can use the following comparison operators here:
- EQ, NE, GT, LT, GE, LE
- O, Z, M (bit comparison)
- CO, CN, CA, NA, CS, NS ,CP, NP (string comparison)
- BETWEEN...AND
- S NTAL
- N
- All comparison operators are documented under ==>F.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 17
CHECK Selection condition, leaving loops and subroutines
Comparison operators: ==>F
CASE..WHEN..ENDCASE
Case distinction
FORM..ENDFORM
Defines a subroutine
PERFORM..
Calls a subroutine
SELECT..ENDSELECT
Reads tables (ATAB, database)
Comparison operators: ==>F
WHLE..ENDWHLE
Loop processing
Comparison operators: ==>F
DO..ENDDO Loop processing
EXT Leaves loops or subroutines
LEAVE Leaves program processing, goes to a transaction, list or menu
STOP Exit selection
CONTNUE Leaves loops
O'E#A(IONA- 1E3 WO#D
ADD Adds fields together
CALL Calls a transaction, screen, dialog module or function module
CLEAR Resets to initial value
COMMT Executes DB changes
COMPUTE Compute
You can use the following functions here:
SQRT Square root
EXP Exponential function to e
LO Natural logarithm
SN Sine
COS Cosine
STRLEN Character string length
CONDENSE Compresses a field
DVDE Divides fields
FORMAT Sets the report output format
HDE Notes line-related field contents
NCLUDE nserts a program component
MESSAGE Outputs messages
MOVE Moves field contents
MOVE-CORRESPONDNG
Moves matching fields of field strings
MULTPLY Multiplies fields
NEW-PAGE Sets a new page
REPLACE Replaces character strings
RESERVE Reserves output lines on the current page

Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 18
SEARCH Finds character strings in tables
SHFT Moves field contents
SKP Sets blank lines, goes to a particular line
SUBMT Starts another program
SUBTRACT Subtracts fields
TRANSFER Sequential data output
TRANSLATE Conversion to upper / lower case
ULNE Underline
UNPACK Unpacked with leading zeros
WNDOW Define screen section (window)
WRTE Output
COMMENTS
* n first column: Whole line is a comment
" n any other column: Rest of line is a comment
NTEGRATNG OTHER PROGRAM COMPONENTS
NCLUDE nserts specified program component at this point
PERFORM form(prog),
Calls a subroutine from another program
____________________________________________________________________________________
Exerccio:
Solicitar para o programa anterior Cdigo do Centro uma vez como parameter e outra como Select-options.
OBS.: Variaes do comando SELECT, da Tela de Parmetros e da Declarao de variveis.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 19
E-E+EN(O" DE (E4(O
Basicamente existem trs tipos de elementos de Texto : Ttulos e Cabealhos, Textos de Seleo e
Smbolos de Textos. So Literais as quais podem ser traduzidas para vrios idiomas e a cargo do ABAP
( dependendo do Logon ), apresenta-se a no idioma correto.
Ttulos e Cabealhos: Existem diversas formas de se Montar o cabealho de um resultado no ABAP,
normalmente usa-se este elemento de Texto, somente para o Cabealho ( Ttulo do Relatrio ), e o ttulo
das colunas monta-se com o comando WRTE, porm existe a possibilidade de se montar o ttulo das
colunas como elementos de texto.
Textos de Seleo: Trata-se do Label dos parameters e select-options definidos no programa.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 20
Smbolo de Textos: Muitas pessoas utilizam-se deste tipo de elemento de texto para ttulo da tela de
parmetros, para display de indicativo de programa em execuo
e outros. Alm disso podem ser gerados elementos de texto para ttulos de colunas de relatrios, labels de
dados em relatrios etc...
Para se Traduzir Elementos de Texto: Saltar > Traduo
____________________________________________________________________________________
Exerccio:
Gerar Labels para os parmetros do exerccio anterior, e incluir o indicativo de programa em execuo:
( function "A'GU_PROGRESS_NDCATOR ).
OBS.: Copiar pedaos de programas com XX, YY e ZZ, utilizar CTRL + C, CTRL + V e CTRL + Y ( Para
familiarizao com Buffers ).
Utilizar CTRL + F para familiarizao com find/replace do editor.
Utilizar substrings variavel+n(n).
Utilizar o boto where list.
Separar dia mes e ano da sy-datum e junt-la novamente.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 21
E.EN(O"
Os programas ABAP/4 ON-LNE, so orientados a eventos, sendo que basicamente so utilizados 4 tipos
de eventos: NTALZATON, AT-SELECTON-SCREEN, START-OF-SELECTO e END-OF-SELECTON.
Para relatrios utiliza-se tambm os eventos: TOP-OF-PAGE e END-OF-PAGE
Uma forma fcil de se entender a tratativa de eventos no ABAP/4, seria imaginar cada evento como um
programa a parte, onde um evento termina quando comea o prximo, e independente do posicionamento
destes eventos no cdigo fonte, a sequncia de execuo destes "sub-programas a seguinte:
1 NTALZATON nicializa variveis de parmetros ( antes da exibio da tela ).
2 AT-SELECTON-SCREEN Validao das informaes solicitadas ( aps interveno do
usurio ).
3 START-OF-SELECTON Evento de extrao de dados da base.
4 END-OF-SELECTON Display dos dados extrados.
Os eventos TOP-OF-PAGE e END-OF-PAGE, so executados a cada quebra de pgina, sendo que aps o
comando NEW-PAGE, no se executa o evento END-OF-PAGE.
____________________________________________________________________________________
Exerccio:
Estruturar o programa anterior, utilizando os eventos NTALZATON E START-OF-SELECTON.
Parmetros: Material ( Select-otio!s "
#$ioma
%a&o't:
(o$) Material *escri+,o
-xxxxxxxxxx xxxxxxxxxxxxxxxx
-xxxxxxxxxx xxxxxxxxxxxxxxxx
.a/elas: Mara e Ma0t
1tili2ar a$r3es S4P $e relat5rios ( 6ormato e cores " 2cx00001
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 22
(%4SSE *E ME7S48E7S
Caminho: Ferramentas > ABAP/4 Workbench > Desenvolvimento > Ambiente Desenvolvimento >
Mensagens.
Trata-se de uma separao lgica de mensagens de E Erro, W Warnings, nformations, S
Sucesso, ou seja, basicamente uma tabela de erro que para no ser nica foi dividida em vrias menores
( Message Class ), por isso normalmente em um desenvolvimento, criamos uma classe de mensagens
( comeadas por Z ou Y, claro ), e a utilizamos para indicar nossos erros, sucessos etc...
O comando associado a mensagens MESSAGE.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 23
Exerccio:
ncluir checagem de parmetros no evento AT-SELECTON-SCREEN, para a existncia do centro solicitado
no programa anterior. ncluir os padres standart de relatrio. ( Cores, set left scroll-boundary column,
eventos TOP-OF-PAGE. e END-OF-PAGE ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 24
(AE-A" IN(E#NA"
Trata-se de um conceito muito utilizado em programas ABAP/4, so similares a arrays, ou temp-tables de
outras linguagens. Apesar do inconveniente de serem armazenadas na memria RAM da mquina (o que
pode acarretar problemas quando tentarmos montar uma tabela interna muito grande), possui comandos
muito interessantes para sorts, quebras e totalizaes.
Deve-se sempre lembrar que a tabela interna trabalha com o conceito de buffer, ou seja, aps
armazenarmos o buffer devemos appendar este novo registro a nossa tabela interna. Sempre que possvel
nos programas onde a tabela interna j no ser mais utilizada na lgica, devemos liberar este espao de
memria.
Comandos associados:
DATA: BEGN OF t_tabela OCCURS 0,
CAMPO 1
CAMPO 2
END OF t_tabela.
Definio da tabela interna, tambm valido se criar uma tabela interna com include de uma estrutura,
alm disso existem outras variaes de definio como definir um type ( tabela interna ) e utilizar este type
WTH HEADER LNE, tem o mesmo efeito, porm melhor utilizar a definio acima.
CLEAR t_tabela.
Limpa o buffer da tabela interna.
APPEND t_tabela.
nclui efetivamente o registro do buffer na tabela interna
COLLECT t_tabela.
Para registros com a mesma parte alfa-numrica, este commando soma todos os campos
numricos.
SORT t_tabela BY campo.
Ordena a tabela interna pelos campos desejados. OBS. Para uma perfeita manipulao dos dados
nos comando AT, deve-se definir os campos da tabela interna na mesma ordem que sero
sortiados no comando SORT.
LOOP AT t_tabela.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 25
Varre todos os registros da tabela interna, ou somente os registros que se pretende percorrer
(WHERE )
AT FRST.
Em conjunto com o comando LOOP, identifica o primeiro registro da tabela percorrida.
AT NEW campo.
Em conjunto com o comando LOOP, identifica o primeiro registro de uma sequncia ( quebra ).
AT END OF campo.
Em conjunto com o comando LOOP, identifica o ltimo registro de uma sequncia ( quebra ).
AT LAST.
Em conjunto com o comando LOOP, identifica o ltimo registro da tabela percorrida.
READ TABLE t_tabela WTH KEY campo =
Leitura de um registro especfico. Este comando retorna SY-SUBRC = 0 se o registro for
encontrado e diferente de zero caso contrrio.
DELETE t_tabela.
Deleta um registro da tabela nterna
MODFY t_tabela.
Modifica o registro na tabela nterna
REFRESH t_tabela.
Todos os Registro da Tabela nterna so deletados.
FREE t_tabela.
Libera o espao utilizado pela Tabela nterna na memria.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 26
____________________________________________________________
Exerccio:
Criar uma Tabela nterna simples, carregar alguns registros e debuggar o programa para entender o
funcionamento. ( /H e Definio de Break Points ).
Exerccio:
Montar um programa com todos os conceitos vistos at o momento : Solicitao de Parmetros,
Consistncia dos Parmetros, Orientado a Eventos e com os padres "A' de display onde:
Parmetros de seleo : Tipo de Material, Cdigo de Material e Centro.
Layout Relatrio:
Cod.Material Descrio Centro Dep. Estoque
---------------- --------------------------------- -------------- --------- ------------------
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
Total Material no Centro: 9.999.999,99
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
99999999 XXXXXXXXXXXXXX XXXX XXX 9.999.999,99
Total Material no Centro: 9.999.999,99
Total Geral 9.999.999,99
TABELAS TRANSPARENTES: MARA Mestre de Materiais, MARD Estoque de Material por Centro e
Depsito, Descrio Material MAKT.
Obs.: Utilizar uma tabela interna e os comandos at new, at end e sum. ( ZCX00002 )
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 27
(AE-A "3"( 5 "3 6
Trata-se de uma estrutura, a qual de momento a momento ( em tempo de execuo ) est disponvel para o
programa. Por exemplo mesmo sem definio em TABLES, est disponvel a qualquer momento no
programa a varivel SY-UNAME, a qual contm o nome do usurio que logou o "A'.
Segue abaixo uma relao das mais importantes variveis. Sempre que necessrio, cheque o dicionrio
desta estrutura para verificar se existe alguma varivel que possa ser til ao seus futuros programas.
SY-SUBRC Retorno dinmico aps cada comando. Normalmente quando o comando funcionou o SY-
SUBRC = 0, porm o help de cada comando indica qual o SUBRC para cada hiptese. No caso de CALL
FUNCTON, o SUBRC determinado pelas EXCEPTONS.
SY-DATUM Data do sistema. Esta data est armazenada AAAAMMDD, ou seja para se separar em uma
varivel o dia : w_variavel = SY-DATUM+6(2). Vale lembrar que algumas datas em determinadas tabelas
transparentes, esto armazenadas em formato anormal ( quando fazem parte da chave primria), exemplo
tabela TCURR. Verificar para estes casos a rotina de converso do campo
( CONVERSON_EXT_XXXXX_NPUT ).
SY-UZET Hora do Sistema
SY-LANGU Linguagem de Logon
SY-TABX Linha Corrente de uma Tabela nterna
SY-ULNE Similar ao comando ULNE, porm permite linhas menores que o tamanho definido no LNE-
SZE do REPORT, por exemplo: WRTE: / SY-ULNE(10).
SY-VLNE Caracter de fechamento lateral de Boxes.
SY-PAGNO Nmero da Pgina corrente no relatrio
SY-LNNO Linha corrente no relatrio
SY-UNAME Usurio de Logon
SY-BATCH ndicativo de execuo em Background
SY-UCOMM Comando escolhido em Relatrios nterativos
SY-LSEL Linha escolhida em Relatrios nterativos
SY-TVAR0 SY-TVAR9 Espcie de Elemento de Texto, para Ttulos de Relatrios.
____________________________________________________________________________________
Exerccio:
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 28
Dar o display das variveis sy-datum, sy-uzeit, sy-uline e sy-uname.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 29
#E'O#("
Um trabalho muito comum, a ser realizado em novos projetos ( implementaes ), e tambm em projetos
que j estejam em andamento, so os relatrios.
Normalmente so extraes da base de dados, gerao de tabelas internas, e posterior impresso com
quebras e totais.
Como vimos anteriormente o grande trabalho esta em determinar aonde esto as informaes na base de
dados, pois uma vez determinadas estas tabelas, o ABAP/4 bastante simples para a montagem de
Reports.
Abaixo segue um exemplo de como o Report fica armazenado em tela, aps a execuo.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 30
#E'O#(" IN(E#A(I.O"
Normalmente programas de Manuteno de tabelas tipo: nclui, Altera e Exclui, no so programas ON-
LNE e sim mdulos de dilogo ( MODULE POOL ), o qual ser abordado mais adiante, porm existem os
Reports interativos, os quais aceitam a interveno do usurio aps a gerao.
Podemos citar como exemplo a gerao de um relatrio com informaes bsicas de cliente, porm aps
um duplo clique em cima do cliente, apresenta as informaes adicionais do mesmo.
Vamos descobrir com o tempo que existem diversas transaes no sistema R/3 que se utilizam deste tipo
de relatrios.
Podemos gerar relatrios para os seguintes tipos de intervenes do usurio: Seleo de Linha, Teclas e
cliques e Funes ( Botes ).
Devemos entender que aps a gerao de um relatrio simples, o mesmo est armazenado em memria
( o que permite a navegao tipo paginao transparente ). Logo como o ABAP/4 uma linguagem
orientada a eventos, podemos criar eventos dentro do programa principal, os quais sero disparados aps
a gerao do relatrio principal.
O comando HDE, tem o objetivo de guardar o contedo de um determinado campo, e a linha que este se
localiza no relatrio principal.
O comando AT, determina os eventos disponveis para serem utilizados pelo usurio. (AT LNE-
SELECTON, AT USER-COMMAND e AT PF ).
O comando SET TTLEBAR, gera um novo ttulo para a prxima tela a ser exibida. O comando SET PF-
STATUS, monta a tela por exemplo botes e funes associadas.
OBS.: Para cancelamento de programas, devemos abrir uma nova janela ou sesso, Ferramentas >
Administrao > Monitoramento > Viso Gera de Usurios.
____________________________________________________________________________________
Exerccio:
Montar no programa anterior, eventos de duplo clique onde se apresentar dados adicionais de estoques
( ZCX00003 ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 31
A(C2 IN',(
um conceito muito utilizados nas implantaes, e mesmo em interfaces no dia-a-dia, trata-se de um
processamento automtico, com todos os passos de um processamento manual, para qualquer transao
do R/3, ou seja, qualquer transao do R/3, pode ser executada via um arquivo texto, montando-se uma
mscara e executando-se automaticamente uma certa transao, quantos forem os registros do arquivo
texto.
primordial para a integridade dos dados, que as tabelas no seja armazenadas diretamente (comandos
NSERT, MODFY ... ), pois por mais que achemos que sabemos quais as tabelas que so armazenadas
quando uma transao executada, somente poderemos garantir a integridade executando-se a prpria
transao.
Este tipo de processo, pode ser executado de duas formas: via CALL TRANSACTON o qual executado
no mesmo instante, e a pasta de BATCH NPUT, o qual enfileira uma execuo e aguarda a interveno do
usurio, transao SM35 ou Sistema > Servios > Batch nput > Processar ( ou um JOB de um programa
chamada RSBDCSUB ). Normalmente um bom programa utiliza os dois argumentos.
Para transaes no crticas, o mtodo CALL TRANSACTON vlido, porm deve-se tomar cuidado com
transaes crticas, pois no possvel determinar um processo de re-execuo. Logo para transaes no
crticas, podemos usar os dois mtodos e para transaes crticas devemos utilizar somente a pasta de
BATCH NPUT.
Existem algumas regras bsicas para a execuo dos dois mtodos, porm aps a montagem do primeiro,
verifica-se ser bastante simples, a no ser em raros casos onde a execuo do BATCH NPUT, no
funciona exatamente igual a execuo manual, porm nestes casos devemos rodar o CALL
TRANSACTON passo a passo e determinarmos as telas diferentes.
Relacionaremos abaixo os passos necessrios para a montagem de um programa de BATCH NPUT
(Carga automtica de dados ).
1 Determinar a transao desejada.
2 Determinar os campos e funes por tela a serem preenchidas em uma execuo manual.
3 Montar o layout do arquivo texto a ser processado.
4 No programa : Pedir parmetros e consistir parmetros.
5 Para cada registro lido, Montar mscara de dados ( Tabela nterna BDCDATA ).
6 Para nterfaces no crticas: Tentar executar com mtodo CALL TRANSACTON, se o retorno
no for sucesso enviar para a pasta de BATCH NPUT.
7 Para nterfaces crticas: Enviar para a pasta de BATCH NPUT.
8 Emitir um resumo de Execuo.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 32
____________________________________________________________
Exerccio:
Cadastrar um cliente no R/3 ( Logstica > Vendas e Dist. > Dados mestre > Parceiros de Negcios >
Emissor ordem >Criar ) transao V-03.
Montar um arquivo texto no UNX com as seguintes nformaes:
Nome (35)
Pesquisa (10)
Cidade (35)
CEP (10)
Pais (03)
dioma (02)
CGC (16)
Zona (10)
Classe (02)
Determinar a telas e campos para a ncluso de Clientes.
Montar programa para criar clientes automticos a partir do arquivo texto gerado. (ZCX00004)
Obs.: Utilizar a funo WS_UPLOAD para leitura do arquivo texto a partir da estao (ZCX00005)
Alterar na transao VD02 o campo idioma de alguns clientes
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 33
/E#AO DE A#7,I.O (E4(O
Este tipo de programa muito comum para interfaces, ou seja, nas implantaes, e no dia-a-dia para
conversao entre o R/3 e eventuais outros sistemas que as empresas possuam. Por Exemplo: Um sistema
de informaes gerenciais, com o qual determinada empresa est bem acostumada, e resolve continuar
utilizando-o aps a implantao do R/3. Para carga de dados neste sistema possivelmente ser feita a
partir de arquivo texto com dados do R/3.
Existem dois tipos de gerao de arquivo texto:
1 Aps a gerao de uma Tabela nterna, o ABAP/4 permite fazer um download dos dados para
um diretrio de rede ou local.
2 O ABAP/4 permite fazer uma transferncia de dados para um arquivo no UNX.
No primeiro caso utiliza-se a funo WS_DOWNLOAD, porm possui alguns inconvenientes. Em primeiro
lugar somente pode-se rodar um programa com a funo WS_DOWNLOAD, para programas que executem
em Foreground, ou seja, para programas que sero executados periodicamente via JOB, ou mesmo com
execues manuais em Background, esta funo no vlida. Em segundo lugar est preso a gerao de
dados em Tabela nterna, e em casos de gerao de arquivos muito grandes, pode-se degradar o sistema
com a gerao de uma tabela nterna com muitos registros.
No segundo caso, utilizam-se os comandos OPEN DATASET, CLOSE DATASET e TRANSFER, os quais
geram arquivos no UNX, o que pode ser um inconveniente tambm , porm pode-se resolver este
problema com um FTP automtico do arquivo gerado no UNX ( Veremos mais adiante ), ou quando se
utilizar a ferramenta NFS, este arquivo pode ser gerado fisicamente na rede e virtualmente no UNX.
____________________________________________________________________________________
Exerccio:
Montar um arquivo texto com dados de clientes: Cod.Cliente, Nome Cliente e cidade Gera um arquivo texto
no diretrio C:\ ( via WS_DOWNLOAD ) e outro no UNX ( via TRANSFER ). Para a determinao das
tabelas transparentes aonde se localizam os dados de fornecedor, utilizar a Anlise de Tempo de
Execuo. ( Ferramentas > ABAP/4 Workbench > Teste > Analise Tempo Exec. ) (ZCX00006 e
ZCX00007 ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 34
",#O(INA" 'OO-
uma facilidade do ABAP/4, a execuo de subrotinas, as quais no estejam no programa principal, ou
seja, se sabemos que existem uma subrotina em um programa qualquer, no precisamos copiar o cdigo
fonte para o programa que estamos desenvolvendo, podemos execut-la no outro programa.
Em projetos novos, pode ser interessante a montagem de um programa com subrotinas comuns a outros
programas.
Exemplo :
PERFORM subrotina(zpgm001).
____________________________________________________________________________________
Exerccio:
Montar um exemplo da execuo de uma subrotina em outro programa.(ZCX00008).
Obs.: Utilzar a execuo em background
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 35
CO+ANDO" E4(E#NO"
muito comum a necessidade de se utilizarmos comandos externos dentro de programas fontes, por
exemplo no caso de movimentar o arquivo processado para um diretrio de BACKUP.
Mais adiante perceberemos a necessidade de comandos externos, tambm para a automatizao de
interfaces.
Normalmente no to complicado a utilizao deste tipo de comando, porm o ABAP/4, exige alguns
passos. ( Aps a realizao do primeiro, torna-se simples ).
PASSOS:
1 Criar o comando externo : Ferramentas > Administrao > Computing Center > Management
System > Configuration > External Commands
2 nternamente nos programas utilizar a funo SXPG_CALL_SYSTEM.
3 definir a varivel t_protocol like btcxpm occurs 100 with header-line.
4 O perfil dever ser s_log_com
____________________________________________________________________________________
Exerccio:
Movimentar um arquivo de um diretrio para outro no UNX, via programa ABAP/4. (ZCX00009)
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 36
/#!FICO"
Quando necessrio, podemos utilizar uma ferramenta do ABAP/4 para construo de grficos. Trata-se da
funo GRAPH_MATRX_3D.
uma ferramenta bastante eficiente, permitindo a variao de grficos de 2 dimenses e 3 dimenses.
Pode-se alm disso alterar o tipo de grfico, cores etc.... Estes dados podem ser modificados na execuo
do programa chamador, trazendo assim o grfico default desejado. Porm todas as modificaes tambm
podem ser feitas pelos usurios aps a execuo.
____________________________________________________________________________________
Exerccio:
Analisar o programa ZCX00011
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 37
I-IO(ECA DE F,N8E"
Apesar de neste momento do curso j estarmos mais ou menos familiarizados com as funes, vale a pena
mais uma palavra.
Existem atualmente milhares de funes STANDARD. Dentre elas: WS_DOWNLOAD, WS_UPLOAD,
"A'GU_PROGRESS_NDCATOR, POPUP_TO_CONFRM_WTH_MESSAGE, e diversas outras. Quase
sempre existe uma funo que faz aquilo que desejamos.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 38
Por exemplo, se for necessrio o envio de EMAL, via o "A' OFFCE, existe uma funo, a qual faz este
envio : RS_SEND_MAL_FOR_SPOOLST. Logo o que precisamos saber encontr-las e entender como
funcionam.
Claro que possvel montarmos nossas prprias funes. Devem somente como tudo que customizado,
comear por Y ou Z.
Basicamente uma funo composta de dados de exportao e dados de importao. Aquilo que
exportado pelo programa chamador, importado pela funo e vice-versa. Existem tambm as
EXCEPTONS, que so para o programa chamador retorno pr-definidos de erros pela funo na varivel
( SY-SUBRC ).
Assim como na chamada de PERFORM, CHANGNG so variveis que retornam com o valor alterado.
TABLES, so tabelas internas que so importadas e/ou exportadas pelo programa chamador.
Existe a facilidade de se testar as funes antes de utiliz-las nos programas.
Caminho: Ferramentas > ABAP/4 Workbench > Biblioteca Funes.
____________________________________________________________
Exerccio:
Montar uma funo que solicite uma data e retorne a data do dia seguinte. Se a data informada for 28 de
Fevereiro a funo deve possuir um EXCEPTON de parmetro invlido.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 39
+EN, 'AIN(E#
Esta a ferramenta de gerao de Menus das telas dos programas. Caso desejemos que esta tela seja
diferente da tela padro. Nesta ferramenta tambm possvel a modificao do Ttulo que aparecer no
relatrio, por exemplo podemos desejar um ttulo para a tela de seleo e outra para a tela de resultado.
Para a gerao de Ttulo devemos informar o programa e clicar "criar. Possui o funcionamento similar a de
Elementos de Texto. Apesar que normalmente, quando estamos escrevendo o programa, podemos aps a
digitao do comando SET TTLEBAR 'XXX'. Dar um duplo clique no novo nome de ttulo, que neste
momento ser criado um Title List do Menu Painter.
Para a gerao de Telas de Menu para Report e principalmente para Reports nterativos ( Veremos mais
adiante que para Module Pool tambm ), o mesmo caminho indicado no pargrafo acima vlido, ou seja,
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 40
similar a criao do STATUS no Menu Painter, ou duplo clique no novo nome de status no comando SET
PF-STATUS quando estamos escrevendo o programa.
As funes associadas aos botes e/ou aos Menus, so retornos que ficaro na varivel SY-UCOMM, aps
a interveno do usurio na transao.
Os padres para a STANDARD TOOLBAR so: BACK - Volta / Exit, RW - Cancela, PR - mprime, %SC -
Pesquisa, %SC+, Pesquisa Prximo, P-- - Primeira Pgina, P- - Page Up, P+ - Page Down, P++ - ltima
Pgina.
Os nomes de Ttulos ou Status, devem estar com letras maisculas nos comandos SET TTLEBAR e SET
PF-STATUS.
A incluso de funes deve ser feita via Processar > nserir > Function with icon, com o cursor em uma
tecla tipo F5. Aps a criao da funo, podemos coloc-la na Barra de Tarefas ou no Menu.
____________________________________________________________________________________
Exerccio:
No programa do Relatrio nterativo, gerar uma tela de Menu e criar uma funo, tanto na barra de tarefas
( Boto ), como no Menu. No programa tratar esta funo com o evento AT USER-COMMAND. Substituir o
duplo clique do report interativo anterior por esta funo
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 41
9O"
No ABAP/4, o JOB possui o mesmo conceito dos JOBS nos ambientes de grande porte, ou seja, trata-se de
uma encadeao de STEPS ( execuo de programas ), a qual depende de outros JOBS, roda em horrio
pr-determinado, pode ou no ser peridico etc...
importante salientar que todo JOB roda em Background. A execuo normal de qualquer transao,
possibilita a execuo em Background, Programa > Exec. Em Background. Deve-se neste momento
especificar a impressora, se o relatrio vai direto para a impressora ou se vai ser gerado novo SPOOL.
Para a definio de JOBS, Sistema > Servios > Jobs > Definio de Jobs
Para a Monitorao do JOB, seguir o mesmo caminho anterior e trocar de Definio para Sntese de Jobs.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 42
Para a checagem de SPOOL do usurio, Sistema > Servios > Controle de Sada. O SPOOL, de relatrios
possui um nmero limitado de impresso de linhas, porm existe um boto dentro do SPOOL, onde
aumentamos para aquele momento este limite.
____________________________________________________________________________________
Exerccio:
Gerar um job para um programa para execuo programada. Utilizar o conceito de variante.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 43
DE,//IN/
Trata-se de uma ferramenta muito til no dia-a-dia, tanto para encontrar erros em programas
desenvolvidos, como para entender processamentos Standard. Para programas Standard, o Debugging
pode ser muito difcil e demorado.
Podemos marcar BreakPoints nos programas a serem debugados, parando o processamento e
disponibilizando neste momento, valores de variveis, tabelas internas, tabela SY, e outros dados.
Podemos at mesmo mudar o contedo da varivel para continuar a execuo.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 44
Alm do BreakPoint ( parada esta que acontece somente para o usurio que gerou o BreakPoint ), outra
maneira de debuggar um programa colocar "/H, na linha de comando.
Existe tambm uma ferramenta bastante til, na procura de tabelas em transaes standard, a anlise de
tempo de execuo, pois alm de outras informaes, apresenta todas as tabelas e views que o programa
passou. Caminho: Ferramentas > ABAP/4 WorkBench > Teste > Anlise Temp. Exec.
(#AN"'O#(E" E #E7,E"("
Como sempre as empresas que possuem o R/3, tem necessariamente no mnimo duas mquinas ( uma
para desenvolvimento e outra para produo, eventualmente outras para homologao ), para se manter a
integridade dos objetos, foi criado o mecanismo de Request.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 45
Trata-se de um LOCK por exemplo em um programa. Quando um Analista/Programador inicia uma
modificao em um programa, e este programa j esta na mquina de produo ( pertence a uma classe de
desenvolvimento diferente de $TMP ), o ABAP/4, vai solicitar um request para esta manuteno, garantindo
assim que outras pessoas no alterem o mesmo programa, e aps o release que a mquina de produo
ter o mesmo cdigo fonte alterado. Nunca deve-se fazer alteraes de cdigos direto na produo para
no perdermos esta integridade, ou seja, para no Ter uma verso mais atualizada emp produo que em
desenvolvimento.
Aps o release, este request com o programa, elementos de texto e documentaes, sero transportados
( normalmente por um profissional de BASS ).
Muitos objetos so dependentes de Mandante e outros no, alm de programas necessitam de request
todos os objetos do MG, Transaes, USER-EXTS, etc..., ou seja, 99% da parametrizao e
desenvolvimentos, so realizados na mquina de desenvolvimento e passados via request para produo.
A ferramenta que mostra os requests que o usurio tem em aberto, bem como possibilita o Release destes,
o Customizing Organizer ( Transao SE10 ).
____________________________________________________________________________________
Exerccio:
Deslocar um programa para a classe de desenvolvimento ZAAA, e fazer o release na transao SE10.
Verificar a administrao de verses.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 46
NO8E" DE +OD,-E 'OO-
Apesar de no ser muito comum, em implantaes e ps-implantaes, a necessidade do desenvolvimento
de programas "MODULE POOL, necessitamos intender como o ABAP/4 trabalha neste caso, pois
eventualmente necessitaremos desenvolver algum, ou na maioria vezes para "debugar uma transaes
standard que seja MODULE POOL.
Caminho: Ferramentas > ABAP/4 Workbench > Object Browser.
Por padro, os programas MODULE POOL, no standard, devem possuir a seguinte nomenclatura ("A'M
+ Z ou Y + 3 posies livres ). O object browser o local mais indicado para este tipo de desenvolvimento /
manuteno.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 47
A sequncia para a gerao deste tipo de programa , a criao da SCREEN, e a programao desta
SCREEN. No include principal deve estar as tabelas e as variveis do programa. No final mesmo para teste
devemos criar uma transao associada.
Alguns novos conceitos so necessrio antes de prosseguirmos: PBO ( Process Before Output ), ou seja,
uma preparao da tela que ser apresentada ao usurio, PA ( Process After nput ), ou seja, um
tratamento dos dados informados pelo usurio.
O PBO e o PA, possuem um editor diferente do editor de programas on-line, chamado FLOW LOGC.
Somente comandos pertinentes ao FLOW LOGC, sero compreendidos neste momento.
No FLOW LOGC, faremos chamadas a MODULES, que so na verdade mini-programas on-line, neste
momento todos os comando aprendidos at o momento funcionaro normalmente.
Basicamente os comandos do FLOW LOGC so MODULE ( Para chamada dos mini-programas on-line ),
CHAN e FELD ( Para consistncia dos dados inputados ).
Existe ainda dois novos conceitos para a montagem da tela: o STEP-LOOP, e a TABLE-CONTROL.
O STEP-LOOP possui como resultado por exemplo o dicionrio de dados.
A TABLE-CONTROL possui como resultado por exemplo a ncluso/Manuteno de Moedas ( MG >
Opes Globais > Moedas > Verificar Cdigo de Moeda ).
____________________________________________________________________________________
Exerccio:
Gerar um programa que solicite o cdigo de um centro e retorne na tela seguinte a descrio deste centro.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 48
(#AN"A8E"
So cdigos alfanumricos com no mximo 4 posies, o qual corresponde a um objeto, ou seja, a
transao uma chamada rpida a um programa on-line, programa "module pool, menu etc..
Para se executar um programa via Menu, este deve obrigatoriamente possuir uma transao associada,
pois ela que o menu vai executar.
Caminho: Ferramenta > ABAP/4 Workbench > Desenvolvimento > Outras Ferramentas >
Transaes.
As transaes no so dependente de mandante.
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Exerccio:
Montar uma transao de um dos programas
Exerccio:
Montar uma transao do tab.Maint.generator gerado na Segunda aula ( pendur-la em menu ).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 49
A,(O#I:A8E"
A segurana do "A', pode estar diretamente ligada ao programa, ou o perfil do usurio pode estar restrito
a transaes que este usurio pode executar.
Normalmente os usurios finais, no podem executar as Ferramentas ( Workbench ), logo exitem duas
possibilidades :
1 O usurio via menu tenta executar uma transao. Somente poder execut-la se houver perfil
de usurio adequado a ele nesta transao.
2 O usurio executa via uma rvore de relatrios um programa. Somente poder execut-lo se
internamente este programa no fizer checagens, ou se houver perfil de usurio adequado a
ele para este programa.
Para se incluir uma checagem de perfil a nvel de programas, deve-se utilizar o comando: AUTHORTY-
CHECK OBJECT 'Z:PROGRAMA' D 'REPD' FELD SY-CPROG. Onde Z:PROGRAMA objeto onde as
autorizaes sero checadas.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 50
,"E#&E4I("
Com o objetivo de permitir aos seus clientes, alteraes no funcionamento de programas, sem resultar em
futuros retrabalhos, quando fossem feitos upgrades de verses, a "A' criou o mecanismo de USER-
EXTS, os quais basicamente permitem a incluso de itens no Menu Standard, e alteraes em programas.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 51
Um Enhancement ( Melhoramento ), basicamente uma chamada em pontos estratgicos de certos
programas a uma funo, a qual possui como cdigo fonte um include inexistente. Logo os passos para a
ativao de um user-exit so:
1 - Determinao do problema / melhoria, e a anlise se o programa possui User-Exit.
2 - Criao de um projeto. Ferramentas > ABAP/4 Workbench > Utilitrios > Extenses >
Administrao de Projetos.
3 - Gerao do cdigo fonte no nclude da Funo.
4 - Ativao da User-Exit.
Exemplo para Menu-Exit Enhancement CUST6
Exemplo para User-Exit Enhancement SRVREL, funo EXT_"A'LEBND_003.
Existe tambm o field-exit, o qual permite a consistncia de qualquer campo de qualquer tela standard do
R/3.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 52
NO8E" DE "A'"C#I'(
Trata-se de uma ferramenta geradora de Layouts, ou seja, no gera relatrios e sim o layout ( tamanho de
letra na primeira linha, um logotipo, cdigo de barras etc... )
Este tpico deve ser enxergado como um curso a parte, pois existem profissionais atualmente dedicados
somente a criao destes layouts. Porm bastante vlido saber o como o "A'SCRPT trabalha, para se
necessrio estar apto para efetuar uma modificao.
Caminho: Ferramenta > Processamento de Texto > Formulrio.
Sempre que nos depararmos com um programa ABAP/4 on-line, o qual possui chamadas para as seguintes
funes: OPEN_FORM, START_FORM, WRTE_FORM, END_FORM e CLOSE_FORM, trata-se de um
programa que gera um relatrio baseado no layout de um "A'SCRPT.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 53
Basicamente esta ferramenta determina Pargrafos, Fontes, Localizao, Textos Fixos, etc... de variveis
pr-definidas, geralmente em programas standard estas variveis so de uma estrutura.
No programa chamador, existe somente uma tratamento para a informao que ser armazenada na
varivel antes da impresso.
O Header determina informaes bsicas, como classe de desenvolvimento, data de criao etc..., e dados
default de fonte tamanho etc...
Paragraphs determina a posio e fontes de um ou mais pargrafos.
Character String tipo especiais ( tlico, Negrito etc..)
Pages determina se o layout possui somente um tipo de pgina, ou uma pgina inicial, e outras.
Windows e Page Windows determinam o posicionamento das variveis na pgina.
____________________________________________________________________________________
Exerccio:
Analisar a montagem e chamada de um sapscript. (ZCX00012)
Exerccio:
mplementar a funo SET_PRNT_PARAMETERS em um programa de relatrios.
Exerccio:
mplementar o objeto matchcode em uma das telas de parmetros.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 54
AD+INI"(#AO $ +ONI(O#A+EN(O
Esta uma ferramente mais voltada ao pessoal da rea de dados ( DBA ), pois possibilita saber quantos
usurio esto logados ao mesmo tempo, em quantas janelas cada um, e monitorar os programas que esto
rodando, qual transao est consumindo mais CPU etc...
Porm muitas vezes o profissional de desenvolvimento se v obrigado a estar cancelando uma
processamento dele prprio, ou a luz acabou e seu programa ficou preso na sua prpria seo.
Logo para cancelarmos um programa ou matarmos uma seo, devemos entrar na Administrao /
Monitoramento.
Caminho: Ferramentas > Administrao > Monitoramento > Monitoramento de Sistemas > Viso Geral de
Usurios.
Assim quando o usurio em questo estiver localizado, deve-se dar um duplo clique em cima, escolher a
seo e tomar a atitude desejada, ou seja, End Session, Debugging ou Cancel Program.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 55
'#O9E(O FINA-
Montar um relatrio baseado na transao VA03 com as seguintes informaes:
_ Nmero da ordem
_ tem da ordem
_ Cdigo do Material
_ Quantidade ordenada
Gerar sub-total por ordem e total geral.
Utilizar todos os conceitos vistos at este momento : Eventos, tabela interna, padro de cores etc...
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 56
'#O/#A+A; :C4<<<<=
************************************************************************
* PROGRAMA: ZCX00001 *
* OBJETIVO: Curso ABAP/4 - Select Tabela T001W *
* *
* Data Verso Autor Descrio *
* ======== ====== =============== ============================= *
* 22/04/99 0 Andr Sorpreso Verso Inicial *
* *
************************************************************************
REPORT ZCX00001 LINE-COUNT 60 LINE-SIZE 48.
**************************
*** Tabelas do R/3 ***
**************************
TABLES: T001W. "Centros/filiais
**********************
*** Parmetros ***
**********************
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_WERKS LIKE T001W-WERKS.
SELECTION-SCREEN: END OF BLOCK B1.
*********************************
*** Evento Initialization ***
*********************************
INITIALIZATION.
P_WERKS = 'EM10'.
******************************
*** Evento TOP-OF-PAGE ***
******************************
TOP-OF-PAGE.
FORMAT RESET.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
ULINE.
WRITE: /01 '|', 'Centro',
10 '|', 'Descrio',
48 '|'.
ULINE.
*************************************
*** Evento START-OF-SELECTION ***
*************************************
START-OF-SELECTION.
*** Seleco na tabela t001w
SELECT * FROM T001W WHERE
WERKS = P_WERKS.
FORMAT RESET.
FORMAT COLOR COL_KEY INTENSIFIED ON.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 57
WRITE: /01 '|', T001W-WERKS.
FORMAT RESET.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: 10 '|', T001W-NAME1,
48 '|'.
ENDSELECT.
ULINE.
'#O/#A+A; :C4<<<<>
************************************************************************
* PROGRAMA: ZCX00002 *
* OBJETIVO: Curso ABAP/4 - Relatrio de Estoque *
* *
* Data Verso Autor Descrio *
* ======== ====== =============== ============================= *
* 26/04/99 0 Andr Sorpreso Verso Inicial *
* *
************************************************************************
REPORT ZCX00002 LINE-COUNT 60 LINE-SIZE 104.
**************************
*** Tabelas do R/3 ***
**************************
TABLES: MARA, "Mestre do material: dados gerais
MAKT, "Textos breves de material
MARD. "Mestre de material: segmento de depsito/de lotes
**********************
*** Parmetros ***
**********************
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: P_MATNR FOR MARA-MATNR.
SELECT-OPTIONS: P_MTART FOR MARA-MTART.
SELECT-OPTIONS: P_WERKS FOR MARD-WERKS.
SELECTION-SCREEN: END OF BLOCK B1.
*****************************************
*** Definio de tabelas internas ***
*****************************************
DATA: BEGIN OF T_TABINT OCCURS 0,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
END OF T_TABINT.
*********************************
*** Evento Initialization ***
*********************************
INITIALIZATION.
P_WERKS-LOW = 'EM10'.
******************************
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 58
*** Evento TOP-OF-PAGE ***
******************************
TOP-OF-PAGE.
SET LEFT SCROLL-BOUNDARY COLUMN 23.
FORMAT RESET.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
ULINE.
WRITE: /01 '|', 'Cod. Material',
21 '|', 'Descrio',
64 '|', 'Depsito',
75 '|', 'Centro',
84 '|', 'Estoque',
104 '|'.
ULINE.
*************************************
*** Evento START-OF-SELECTION ***
*************************************
START-OF-SELECTION.
*** Mensagem de Aguardo
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = TEXT-002
EXCEPTIONS
OTHERS = 1.
*** Seleco na tabela t001w
SELECT * FROM MARA WHERE
MATNR IN P_MATNR AND
MTART IN P_MTART.
SELECT * FROM MARD WHERE
MATNR = MARA-MATNR AND
WERKS IN P_WERKS.
*** Atribui dados para tabelas internas
T_TABINT-MATNR = MARA-MATNR.
T_TABINT-WERKS = MARD-WERKS.
T_TABINT-LGORT = MARD-LGORT.
T_TABINT-LABST = MARD-LABST.
APPEND T_TABINT.
CLEAR T_TABINT.
ENDSELECT. "MARD
ENDSELECT. "MARA
***********************************
*** Evento END-OF-SELECTION ***
***********************************
END-OF-SELECTION.
SORT T_TABINT BY MATNR WERKS.
LOOP AT T_TABINT.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 59
*** Nos primeiros registros de material, L descrio
AT NEW MATNR.
*** Leitura da descrio do material
CLEAR MAKT.
SELECT SINGLE * FROM MAKT WHERE
SPRAS = SY-LANGU AND
MATNR = MARA-MATNR.
ENDAT.
FORMAT RESET.
FORMAT COLOR COL_KEY INTENSIFIED ON.
WRITE: /01 '|', T_TABINT-MATNR.
FORMAT RESET.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: 21 '|', MAKT-MAKTX,
64 '|', T_TABINT-LGORT,
75 '|', T_TABINT-WERKS,
84 '|', T_TABINT-LABST,
104 '|'.
*** Quebra de centro
AT END OF WERKS.
SUM.
FORMAT RESET.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ULINE.
WRITE: /01 '|',
21 '|', 'Total Centro: ', T_TABINT-WERKS,
64 '|',
84 '|', T_TABINT-LABST,
104 '|'.
ULINE.
ENDAT.
*** ltimo Registro
AT LAST.
SUM.
FORMAT RESET.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE: /01 '|',
21 '|', 'Total Geral: ',
64 '|',
84 '|', T_TABINT-LABST,
104 '|'.
ULINE.
ENDAT.
ENDLOOP.
'#O/#A+A; :C4<<<<%
************************************************************************
* PROGRAMA: ZCX00003 *
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 60
* OBJETIVO: Curso ABAP/4 - Relatrio de Estoque *
* Interativo *
* *
* Data Verso Autor Descrio *
* ======== ====== =============== ============================= *
* 26/04/99 0 Andr Sorpreso Verso Inicial *
* *
************************************************************************
REPORT ZCX00003 LINE-COUNT 60 LINE-SIZE 104.
**************************
*** Tabelas do R/3 ***
**************************
TABLES: MARA, "Mestre do material: dados gerais
MAKT, "Textos breves de material
MARD. "Mestre de material: segmento de depsito/de lotes
**********************
*** Parmetros ***
**********************
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: P_MATNR FOR MARA-MATNR.
SELECT-OPTIONS: P_MTART FOR MARA-MTART.
SELECT-OPTIONS: P_WERKS FOR MARD-WERKS.
SELECTION-SCREEN: END OF BLOCK B1.
*****************************************
*** Definio de tabelas internas ***
*****************************************
DATA: BEGIN OF T_TABINT OCCURS 0,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
END OF T_TABINT.
*********************************
*** Evento Initialization ***
*********************************
INITIALIZATION.
******************************
*** Evento TOP-OF-PAGE ***
******************************
TOP-OF-PAGE.
SET LEFT SCROLL-BOUNDARY COLUMN 23.
FORMAT RESET.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
ULINE.
WRITE: /01 '|', 'Cod. Material',
21 '|', 'Descrio',
64 '|', 'Depsito',
75 '|', 'Centro',
84 '|', 'Estoque',
104 '|'.
ULINE.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 61
*************************************
*** Evento START-OF-SELECTION ***
*************************************
START-OF-SELECTION.
*** Mensagem de Aguardo
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = TEXT-002
EXCEPTIONS
OTHERS = 1.
*** Seleco na tabela t001w
SELECT * FROM MARA WHERE
MATNR IN P_MATNR AND
MTART IN P_MTART.
SELECT * FROM MARD WHERE
MATNR = MARA-MATNR AND
WERKS IN P_WERKS.
*** Atribui dados para tabelas internas
T_TABINT-MATNR = MARA-MATNR.
T_TABINT-WERKS = MARD-WERKS.
T_TABINT-LGORT = MARD-LGORT.
T_TABINT-LABST = MARD-LABST.
APPEND T_TABINT.
CLEAR T_TABINT.
ENDSELECT. "MARD
ENDSELECT. "MARA
***********************************
*** Evento END-OF-SELECTION ***
***********************************
END-OF-SELECTION.
SORT T_TABINT BY MATNR WERKS.
LOOP AT T_TABINT.
*** Nos primeiros registros de material, L descrio
AT NEW MATNR.
*** Leitura da descrio do material
CLEAR MAKT.
SELECT SINGLE * FROM MAKT WHERE
SPRAS = SY-LANGU AND
MATNR = MARA-MATNR.
ENDAT.
FORMAT RESET.
FORMAT COLOR COL_KEY INTENSIFIED ON.
WRITE: /01 '|', T_TABINT-MATNR.
FORMAT RESET.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 62
WRITE: 21 '|', MAKT-MAKTX,
64 '|', T_TABINT-LGORT,
75 '|', T_TABINT-WERKS,
84 '|', T_TABINT-LABST,
104 '|'.
*** Guarda Linha do Material
HIDE: T_TABINT-MATNR, T_TABINT-WERKS, T_TABINT-LGORT.
*** Quebra de centro
AT END OF WERKS.
SUM.
FORMAT RESET.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ULINE.
WRITE: /01 '|',
21 '|', 'Total Centro: ', T_TABINT-WERKS,
64 '|',
84 '|', T_TABINT-LABST,
104 '|'.
ULINE.
ENDAT.
*** ltimo Registro
AT LAST.
SUM.
FORMAT RESET.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE: /01 '|',
21 '|', 'Total Geral: ',
64 '|',
84 '|', T_TABINT-LABST,
104 '|'.
ULINE.
ENDAT.
ENDLOOP.
CLEAR T_TABINT.
**************************************
*** Evento de Seleo de Linha ***
**************************************
AT LINE-SELECTION.
*** Cabealho de informaoes adicionais
SET TITLEBAR '0001'.
IF T_TABINT-MATNR IS INITIAL.
MESSAGE ID 'ZZ' TYPE 'E' NUMBER 006.
ELSE.
CLEAR MARD.
SELECT SINGLE * FROM MARD WHERE
MATNR = T_TABINT-MATNR AND
WERKS = T_TABINT-WERKS AND
LGORT = T_TABINT-LGORT.
WINDOW STARTING AT 1 15
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 63
ENDING AT 79 23.
WRITE: / 'Material....: ', MARD-MATNR,
/ 'Centro......: ', MARD-WERKS,
/ 'Depsito....: ', MARD-LGORT,
/ 'Disponvel..: ', MARD-LABST,
/ 'Bloqueado...: ', MARD-SPEME.
ENDIF.
CLEAR T_TABINT.
'#O/#A+A; :C4<<<<0
************************************************************************
*** ***
*** PROGRAMA: ZCX00004 ***
*** OBJETIVO: Modelo de Interface Inbound - Batch Input ***
*** utilizando tcnia call transaction e Pasta ***
*** ***
*** Documentao: ***
*** ***
*** Data Autor Descrio ***
*** ========== ============== =============================== ***
*** 29/04/1999 Andr Sorpreso Verso Inicial ***
*** ***
************************************************************************
REPORT ZCX00004 LINE-SIZE 172 LINE-COUNT 65.
*****************************************
*** Tabelas do Banco de Dados do R/3 ***
*****************************************
* tables: "Descrio da Tabela
*********************************
*** Definio de Parmetros ***
*********************************
SELECTION-SCREEN BEGIN OF BLOCK PARAM WITH FRAME TITLE TEXT-001.
PARAMETERS: P_MODO(1) TYPE C DEFAULT 'N'.
SELECTION-SCREEN: ULINE.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME
DEFAULT '/tmp/curso000.txt' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK PARAM.
*************************************
*** Variveis Globais do Programa ***
*************************************
DATA: W_CONTATOT TYPE I, "Total de Registros do Arquivo
W_CONTAVAL TYPE I, "Registros Validos
W_CONTAINV TYPE I, "Registros Invalidos
W_CONTAPRO TYPE I, "Registros processados em Call Trans
W_CONTABDC TYPE I, "Registros postos em pasta BDC
W_NUMREC TYPE I, "Numero do Registro corrente
W_NUMERROS TYPE I, "Contador de Erros de Call Transac.
W_CODMSG(5) TYPE C, "Codigo de Mensagem na Forma IINNN
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 64
W_VALIDO(1) TYPE C, "Flag para Validao de Registros
W_CONTA TYPE I, "Calculos de uso Geral
W_SUBRC LIKE SY-SUBRC.
*********************************
*** Tabelas Internas Globais ***
*********************************
*** Tabela cm Definio das Transaes Batch Input
DATA: BEGIN OF T_BDC OCCURS 100.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF T_BDC.
*** Tabela para Registro de Mensagens de Erro das Transaes
DATA: BEGIN OF T_MSG OCCURS 10.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF T_MSG.
*******************************************************
*** Estrutura para Leitura do Arquivo sequencial ***
*******************************************************
DATA: BEGIN OF E_RECORD,
NOME(35),
PESQUISA(10),
CIDADE(35),
CEP(10),
PAIS(03),
IDIOMA(1),
CGC(16),
ZONA(10),
CLASSE(2),
END OF E_RECORD.
*************************************
*** Evento: at selection screen ***
*************************************
AT SELECTION-SCREEN.
*** valida se Arquivo sequencial existe
OPEN DATASET P_FILE FOR INPUT IN TEXT MODE.
IF SY-SUBRC <> 0.
WRITE SY-SUBRC.
MESSAGE ID 'ZZ' TYPE 'E' NUMBER 010.
ELSE.
CLOSE DATASET P_FILE.
ENDIF.
*** Valida modo de call transaction
IF NOT P_MODO CA 'AEN'.
MESSAGE ID 'ZZ' TYPE 'E' NUMBER 011 WITH P_MODO.
ENDIF.
**********************************
*** Evento start-of-selection ***
**********************************
START-OF-SELECTION.
*** Mensagem de Aguardo
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 65
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = TEXT-002
EXCEPTIONS
OTHERS = 1.
*** Escreve Titulo do Relatorio
PERFORM TITULO.
*** Inicializa Contadores
CLEAR W_CONTATOT.
CLEAR W_CONTAVAL.
CLEAR W_CONTAINV.
CLEAR W_CONTAPRO.
CLEAR W_CONTABDC.
CLEAR W_NUMREC.
*** Percorre Arquivo Sequencial e Processa Registros
DO.
*** Ler registro
READ DATASET P_FILE INTO E_RECORD.
W_NUMREC = W_NUMREC + 1.
*** Se EOF ou ultimo Registro da Seleo, termina processo
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
*** Escreve registro no relatrio
W_CONTATOT = W_CONTATOT + 1.
*** Valida dados do Registro e executa Converses se vlido
W_VALIDO = 's'.
PERFORM VALIDA.
*** Imprime o Item
PERFORM ESCREVE.
*** Se registro vlido, processa transao
IF W_VALIDO = 's'.
PERFORM PROCESSA.
ENDIF.
ENDDO.
*** Fecha Arquivo Sequencial e Pasta batch input
CLOSE DATASET P_FILE.
IF W_CONTABDC <> 0.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDIF.
*** Log de Execucao.
FORMAT RESET.
*** Exibe Totais
ULINE.
SKIP.
WRITE: /24 SY-ULINE(47) COLOR 7.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 66
WRITE: /24 '| Pasta para batch Input: ', W_CONTABDC COLOR 6,
'|'.
WRITE: /24 '| Excutados com Sucesso: ', W_CONTAPRO COLOR 5,
'|'.
WRITE: /24 SY-ULINE(47).
************************************
*** Escreve titulo do relatrio ***
************************************
FORM TITULO.
FORMAT RESET.
SKIP.
FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.
WRITE: / 'EM CASO DE ERROS - PASTA DE BATCH INPUT -> : CLIENTE'.
FORMAT RESET.
SKIP.
WRITE AT 30 'REGISTROS PROCESSADOS' COLOR 1.
SKIP.
ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE: /01 '|', 'Sequencia',
13 '|', 'Nome',
51 '|', 'Pesquisa',
64 '|', 'Cidade',
102 '|', 'Cep',
115 '|', 'Pais',
122 '|', 'Idioma',
131 '|', 'Cgc',
150 '|', 'Zona',
163 '|', 'Classe',
172 '|'.
ULINE.
ENDFORM.
***************************************
*** Escreve Campos Lidos do Arquivo ***
***************************************
FORM ESCREVE.
FORMAT RESET.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: /01 '|', W_NUMREC,
13 '|', E_RECORD-NOME,
51 '|', E_RECORD-PESQUISA,
64 '|', E_RECORD-CIDADE,
102 '|', E_RECORD-CEP,
115 '|', E_RECORD-PAIS,
122 '|', E_RECORD-IDIOMA,
131 '|', E_RECORD-CGC,
150 '|', E_RECORD-ZONA,
163 '|', E_RECORD-CLASSE,
172 '|'.
ENDFORM.
******************************************
*** Valida Registro antes de Processar ***
******************************************
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 67
FORM VALIDA.
DATA: W_ERROS TYPE I.
*** Salvo prova em contrrio, o registro est inocente.
CLEAR W_ERROS.
IF W_ERROS IS INITIAL.
W_CONTAVAL = W_CONTAVAL + 1.
ELSE.
W_CONTAINV = W_CONTAINV + 1.
W_VALIDO = 'N'.
SKIP.
ENDIF.
ENDFORM.
***********************************************************
*** Subrotina genrica para adicionar telas em bdcdata ***
***********************************************************
FORM BDC_TELA USING PROGRAMA TELA.
CLEAR T_BDC.
T_BDC-PROGRAM = PROGRAMA.
T_BDC-DYNPRO = TELA.
T_BDC-DYNBEGIN = 'X'.
APPEND T_BDC.
ENDFORM.
**********************************************************
*** Subrotina genrica para adicionar telas em bdcdata ***
**********************************************************
FORM BDC_CAMPO USING CAMPO VALOR.
CLEAR T_BDC.
T_BDC-DYNPRO = SPACE.
T_BDC-FNAM = CAMPO.
T_BDC-FVAL = VALOR.
APPEND T_BDC.
ENDFORM.
***********************************
*** Processa registro no R/3 ***
***********************************
FORM PROCESSA.
DATA: W_TXTMSG(80).
REFRESH T_BDC.
*** Tela inicial da Transao
PERFORM BDC_TELA USING 'SAPMF02D' '0107'.
PERFORM BDC_CAMPO USING 'BDC_OKCODE' '/0'.
*** Tela de Dados principais
PERFORM BDC_TELA USING 'SAPMF02D' '110'.
PERFORM BDC_CAMPO USING 'KNA1-NAME1' E_RECORD-NOME.
PERFORM BDC_CAMPO USING 'KNA1-SORTL' E_RECORD-PESQUISA.
PERFORM BDC_CAMPO USING 'KNA1-ORT01' E_RECORD-CIDADE.
PERFORM BDC_CAMPO USING 'KNA1-PSTLZ' E_RECORD-CEP.
PERFORM BDC_CAMPO USING 'KNA1-LAND1' E_RECORD-PAIS.
PERFORM BDC_CAMPO USING 'KNA1-SPRAS' E_RECORD-IDIOMA.
PERFORM BDC_CAMPO USING 'BDC_OKCODE' '/0'.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 68
*** Tela de Dados principais
PERFORM BDC_TELA USING 'SAPMF02D' '120'.
PERFORM BDC_CAMPO USING 'KNA1-STCD1' E_RECORD-CGC.
PERFORM BDC_CAMPO USING 'KNA1-LZONE' E_RECORD-ZONA.
PERFORM BDC_CAMPO USING 'BDC_OKCODE' '/0'.
*** Tela de Dados principais
PERFORM BDC_TELA USING 'SAPMF02D' '125'.
PERFORM BDC_CAMPO USING 'KNA1-KUKLA' E_RECORD-CLASSE.
PERFORM BDC_CAMPO USING 'BDC_OKCODE' '/11'.
*** Tenta executar com Tcnica Call Transaction
REFRESH T_MSG.
CALL TRANSACTION 'V-03' USING T_BDC MODE P_MODO UPDATE 'S'
MESSAGES INTO T_MSG.
W_SUBRC = SY-SUBRC.
CLEAR W_NUMERROS.
LOOP AT T_MSG.
IF T_MSG-MSGTYP NA 'IWS'.
W_NUMERROS = W_NUMERROS + 1.
ENDIF.
ENDLOOP.
*** Se transao terminou com erro, guarda dados em Pasta Batch Input
IF W_SUBRC <> 0 OR W_NUMERROS <> 0.
*** Insere transao em Pasta Batch Input
IF W_CONTABDC = 0.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'CLIENTES'
KEEP = 'X'
USER = SY-UNAME.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'V-03'
TABLES
DYNPROTAB = T_BDC.
W_CONTABDC = W_CONTABDC + 1.
ELSE.
W_CONTAPRO = W_CONTAPRO + 1.
ENDIF.
ENDFORM.
'#O/#A+A; :C4<<<<?
************************************************************************
*** PROGRAMA: ZCX00005 ***
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 69
*** DESCRICAO: Exemplo de leitura de arquivo texto ***
*** da estao ( Via Upload ) ***
*** ***
*** VERSAO AUTOR DATA OBESERVACOES ***
*** ====== ===== ========== =========================== ***
*** 0 Andr 28/04/1999 Versao Inicial ***
*** ***
************************************************************************
REPORT ZCX00005 LINE-SIZE 90 LINE-COUNT 66.
*********************************
*** Definio de Parmetros ***
*********************************
SELECTION-SCREEN BEGIN OF BLOCK PARAM WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME
DEFAULT 'c:\temp\saida001.txt' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK PARAM.
*********************************************************
*** Tabela Interna para Leitura do arq. sequencial ***
*********************************************************
DATA: BEGIN OF T_TABINT OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
ORT01 LIKE KNA1-ORT01,
END OF T_TABINT.
*************************************
*** Evento: at selection screen ***
*************************************
AT SELECTION-SCREEN.
*** valida se Arquivo sequencial existe e carrega na tabela interna
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = P_FILE
TABLES
DATA_TAB = T_TABINT
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
MESSAGE ID 'ZZ' TYPE 'E' NUMBER 010.
ENDIF.
******************************
*** Evento top-of-page ***
******************************
TOP-OF-PAGE.
SET LEFT SCROLL-BOUNDARY COLUMN 23.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 70
FORMAT RESET.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
ULINE.
WRITE: /01 '|', 'Cliente',
14 '|', 'Nome',
52 '|', 'Cidade',
90 '|'.
ULINE.
******************************
*** Evento end-of-page ***
******************************
END-OF-PAGE.
ULINE.
*************************************
*** Evento start-of-selection ***
*************************************
START-OF-SELECTION.
*** Mensagem de Aguardo
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = TEXT-002
EXCEPTIONS
OTHERS = 1.
*** Varre tabela interna com registros do arquivo texto
LOOP AT T_TABINT.
FORMAT RESET.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: /01 '|', T_TABINT-KUNNR,
14 '|', T_TABINT-NAME1,
52 '|', T_TABINT-ORT01,
90 '|'.
ENDLOOP.
ULINE.
'#O/#A+A; :C4<<<<@
************************************************************************
*** ***
*** PROGRAMA: ZCX00006 ***
*** OBJETIVO: Modelo de gerao de arquivo texto no UNIX ***
*** ***
*** Documentao: ***
*** ***
*** Data Autor Descrio ***
*** ========== ============== =============================== ***
*** 29/04/1999 Andr Sorpreso Verso Inicial ***
*** ***
************************************************************************
REPORT ZCX00006 LINE-SIZE 80 LINE-COUNT 60.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 71
********************************************
*** Tabelas do Banco de Dados do R/3 ***
********************************************
TABLES: KNA1. "Mestre de clientes (parte geral)
*******************************
*** Definio de Parametros ***
*******************************
SELECTION-SCREEN BEGIN OF BLOCK PARAM WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME
DEFAULT '/tmp/saida001.txt' OBLIGATORY.
SELECT-OPTIONS: P_KUNNR FOR KNA1-KUNNR.
SELECTION-SCREEN END OF BLOCK PARAM.
****************************************
*** Variaveis Globais de Sistema ***
****************************************
DATA: W_REGISTROS TYPE I, "Numero de registros da T_Tabint
W_ARQUIVO LIKE RLGRAP-FILENAME. "Nome do arquivo texto
************************************
*** Tabelas Internas Globais ***
************************************
DATA: BEGIN OF T_TABINT OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
ORT01 LIKE KNA1-ORT01,
END OF T_TABINT.
**************************************
*** EVENTO AT SELECTION-SCREEN ***
**************************************
AT SELECTION-SCREEN.
*********************************
*** Evento Start of Selection ***
*********************************
START-OF-SELECTION.
**** Mensagem de execuo do programa
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = TEXT-002.
*** Extrao dos dados da base
SELECT * FROM KNA1 WHERE
KUNNR IN P_KUNNR.
*** Gerao da tabela interna
T_TABINT-KUNNR = KNA1-KUNNR.
T_TABINT-NAME1 = KNA1-NAME1.
T_TABINT-ORT01 = KNA1-ORT01.
APPEND T_TABINT.
CLEAR T_TABINT.
ENDSELECT. "KNA1
***********************************
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 72
*** Evento END-OF-SELECTION ***
***********************************
END-OF-SELECTION.
*** Checa se existem registros na tabela interna
DESCRIBE TABLE T_TABINT LINES W_REGISTROS.
IF W_REGISTROS > 0.
*** Abre Dataset
PERFORM ABRE_DATASET.
*** Varre tabela interna
LOOP AT T_TABINT.
*** Gera Arquivo texto
PERFORM TRANSFERE.
ENDLOOP.
*** Fecha Dataset
PERFORM FECHA_DATASET.
ENDIF.
*** Imprime Log de Execuo
ULINE.
WRITE: / '|', W_REGISTROS, 'registros gerados com sucesso',
'no arquivo:',
80 '|'.
WRITE: / '|', 80 '|'.
WRITE: / '|', 11 P_FILE,
80 '|'.
ULINE.
*********************************************************
*** abre_dataset : Subrotina para Abertura do Dataset ***
*********************************************************
FORM ABRE_DATASET.
*** Monta nome do Arquivo de Saida por Filial e dia
W_ARQUIVO = P_FILE.
*** Abre Dataset
OPEN DATASET W_ARQUIVO FOR OUTPUT IN TEXT MODE.
IF SY-SUBRC NE 0.
WRITE: / 'Problema na abertura do dataset ', SY-SUBRC.
STOP.
ENDIF.
ENDFORM. "abre_dataset
****************************************************
*** fecha_dataset: Subrotina para fechar dataset ***
****************************************************
FORM FECHA_DATASET.
CLOSE DATASET W_ARQUIVO.
IF SY-SUBRC NE 0.
WRITE: / 'Problemas no close ', SY-SUBRC.
STOP.
ENDIF.
ENDFORM. "fecha_dataser
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 73
*********************************************************************
*** transfere: Subrotina p/ transferir dados para o arquivo texto ***
*********************************************************************
FORM TRANSFERE.
*** transfere todos os registros do corpo do arquivo
TRANSFER T_TABINT TO W_ARQUIVO.
IF SY-SUBRC NE 0.
WRITE: / 'Problemas no transfer', SY-SUBRC.
STOP.
ENDIF.
ENDFORM. "transfere
'#O/#A+A; :C4<<<<A
************************************************************************
*** PROGRAMA: ZCX00007 ***
*** DESCRICAO: Exemplo OUTBOUND, Geracao de arquivo texto ***
*** na estao ( Via DownLoad ) ***
*** ***
*** VERSAO AUTOR DATA OBESERVACOES ***
*** ====== ===== ========== =========================== ***
*** 0 Andr 27/04/1999 Versao Inicial ***
*** ***
************************************************************************
REPORT ZCX00007 LINE-SIZE 80 LINE-COUNT 60.
********************************************
*** Tabelas do Banco de Dados do R/3 ***
********************************************
TABLES: KNA1. "Mestre de clientes (parte geral)
*******************************
*** Definio de Parametros ***
*******************************
SELECTION-SCREEN BEGIN OF BLOCK PARAM WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME
DEFAULT 'c:/temp/saida001.txt' OBLIGATORY.
SELECT-OPTIONS: P_KUNNR FOR KNA1-KUNNR.
SELECTION-SCREEN END OF BLOCK PARAM.
****************************************
*** Variaveis Globais de Sistema ***
****************************************
DATA: W_REGISTROS TYPE I, "Numero de registros da T_Tabint
W_ARQUIVO LIKE RLGRAP-FILENAME. "Nome do arquivo texto
************************************
*** Tabelas Internas Globais ***
************************************
DATA: BEGIN OF T_TABINT OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 74
NAME1 LIKE KNA1-NAME1,
ORT01 LIKE KNA1-ORT01,
END OF T_TABINT.
**************************************
*** EVENTO AT SELECTION-SCREEN ***
**************************************
AT SELECTION-SCREEN.
*********************************
*** Evento Start of Selection ***
*********************************
START-OF-SELECTION.
**** Mensagem de execuo do programa
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = TEXT-002.
*** Extrao dos dados da base
SELECT * FROM KNA1 WHERE
KUNNR IN P_KUNNR.
*** Gerao da tabela interna
T_TABINT-KUNNR = KNA1-KUNNR.
T_TABINT-NAME1 = KNA1-NAME1.
T_TABINT-ORT01 = KNA1-ORT01.
APPEND T_TABINT.
CLEAR T_TABINT.
ENDSELECT. "KNA1
***********************************
*** Evento END-OF-SELECTION ***
***********************************
END-OF-SELECTION.
*** Checa se existem registros na tabela interna
DESCRIBE TABLE T_TABINT LINES W_REGISTROS.
IF W_REGISTROS > 0.
W_ARQUIVO = P_FILE.
*** Faz o download do arquivo gerado
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = W_ARQUIVO
TABLES
DATA_TAB = T_TABINT
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
OTHERS = 8.
IF SY-SUBRC = 0.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 75
*** Imprime Log de Execuo
ULINE.
WRITE: / '|', W_REGISTROS, 'registros gerados com sucesso',
'no arquivo:',
80 '|'.
WRITE: / '|', 80 '|'.
WRITE: / '|', 11 P_FILE,
80 '|'.
ULINE.
ELSE.
WRITE: / 'Problema na execuo do Download'.
ENDIF.
ENDIF.
'#O/#A+A; :C4<<<<B
REPORT ZCX00008.
PERFORM MPRME.
PERFORM MPRME(ZCX0008A).
FORM MPRME.
WRTE: / 'mpresso deste programa'.
ENDFORM.
REPORT ZCX0008A.
FORM MPRME.
WRTE: / 'mpresso de outro programa'.
ENDFORM.
'#O/#A+A; :C4<<<<C
************************************************************************
*** PROGRAMA: ZCX00009 ***
*** DESCRICAO: Exemplo da utilizao do comando externo ***
*** ***
*** VERSAO AUTOR DATA OBESERVACOES ***
*** ====== ===== ========== =========================== ***
*** 0 Andr 27/04/1999 Versao Inicial ***
*** ***
************************************************************************
REPORT ZCX00009.
PARAMETERS: P_PARAM LIKE RLGRAP-FILENAME.
******************************************
*** Definio de variveis globais ***
******************************************
DATA: T_PROTOCOL LIKE BTCXPM OCCURS 100 WITH HEADER LINE.
DATA: W_RETURN_CODE(1).
DATA: W_PARAM(128).
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 76
*** Execuo do comando externo
W_PARAM = P_PARAM.
TRANSLATE W_PARAM TO LOWER CASE.
CALL FUNCTION 'SXPG_CALL_SYSTEM'
EXPORTING
COMMANDNAME = 'Z_CHMOD'
PARAMETERS = W_PARAM
IMPORTING
STATUS = W_RETURN_CODE
TABLES
EXEC_PROTOCOL = T_PROTOCOL
EXCEPTIONS
NO_PERMISSION = 1
COMMAND_NOT_FOUND = 2
PARAMETERS_TOO_LONG = 3
SECURITY_RISK = 4
WRONG_CHECK_CALL_INTERFACE = 5
PROGRAM_START_ERROR = 6
PROGRAM_TERMINATION_ERROR = 7
X_ERROR = 8
PARAMETER_EXPECTED = 9
TOO_MANY_PARAMETERS = 10
ILLEGAL_COMMAND = 11
OTHERS = 12.
'#O/#A+A; :C4<<<=<
**********************************
*** Exemplo do Write Input ***
**********************************
REPORT ZCX00010.
TABLES: MARD.
SELECT-OPTIONS: P_MATNR FOR MARD-MATNR.
DATA: BEGIN OF T_TABINT OCCURS 0,
MATNR LIKE MARD-MATNR,
WERKS LIKE MARD-WERKS,
LABST LIKE MARD-LABST,
END OF T_TABINT.
DATA: W_VALOR_ALFA(20),
W_VALOR LIKE MARD-LABST,
W_DIF LIKE MARD-LABST.
SELECT * FROM MARD WHERE
MATNR IN P_MATNR.
T_TABINT-MATNR = MARD-MATNR.
T_TABINT-WERKS = MARD-WERKS.
T_TABINT-LABST = MARD-LABST.
APPEND T_TABINT.
CLEAR T_TABINT.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 77
ENDSELECT.
SORT T_TABINT BY MATNR.
LOOP AT T_TABINT.
WRITE: / T_TABINT-MATNR,
T_TABINT-WERKS,
T_TABINT-LABST.
AT END OF MATNR.
SUM.
WRITE: / T_TABINT-MATNR,
T_TABINT-WERKS,
T_TABINT-LABST INPUT.
HIDE T_TABINT-LABST.
ENDAT.
ENDLOOP.
AT LINE-SELECTION.
WRITE: SY-LISEL.
'#O/#A+A; :C4<<<==
************************************************************************
*** ***
*** PROGRAMA: ZCX00011 ***
*** OBJETIVO: Modelo para gerao de grficos ***
*** ***
*** Documentao: ***
*** ***
*** Data Autor Descrio ***
*** ========== ============== =============================== ***
*** 27/04/1999 Andr Sorpreso Verso Inicial ***
*** ***
************************************************************************
REPORT ZCX00011.
******************************************
*** Definio de variveis globais ***
******************************************
DATA: GR_TITEL(15) TYPE C.
DATA: GR_TCOL1(15) TYPE C.
DATA: GR_TCOL2(15) TYPE C.
DATA: GR_TCOL3(15) TYPE C.
DATA: BEGIN OF GR_DATA OCCURS 16,
TXT(30) TYPE C,
CREDITO TYPE I,
DEBITO TYPE I,
SALDO TYPE I,
END OF GR_DATA.
DATA: BEGIN OF GR_OPTS OCCURS 0,
TXT(20) TYPE C,
END OF GR_OPTS.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 78
WRITE: 'debito' TO GR_TCOL1.
WRITE: 'credito' TO GR_TCOL2.
WRITE: 'saldo' TO GR_TCOL3.
REFRESH: GR_DATA, GR_OPTS.
GR_DATA-TXT = 'Mes 01'.
GR_DATA-CREDITO = 100.
GR_DATA-DEBITO = 150.
GR_DATA-SALDO = 50.
APPEND GR_DATA.
GR_DATA-TXT = 'Mes 02'.
GR_DATA-CREDITO = 150.
GR_DATA-DEBITO = 200.
GR_DATA-SALDO = 100.
APPEND GR_DATA.
GR_OPTS = 'FIFRST = 2D'. APPEND GR_OPTS.
GR_OPTS = 'DTDORD = 21'. APPEND GR_OPTS.
GR_OPTS = 'TISIZE = 1'. APPEND GR_OPTS.
GR_TITEL = 'Situacao'.
CALL FUNCTION 'GRAPH_MATRIX_3D'
EXPORTING TITL = GR_TITEL
COL1 = GR_TCOL1
COL2 = GR_TCOL2
COL3 = GR_TCOL3
DIM1 = 'Movimento'
DIM2 = 'Periodos'
TABLES DATA = GR_DATA
OPTS = GR_OPTS.
'#O/#A+A; :C4<<<=>
***************************************
*** TESTE GENRICOS - SAPSCRIPT ***
***************************************
REPORT ZCX00012.
*** DEFINIO DE TABELAS
TABLES: T001W.
*** DEFINIO DE VARIAVEIS
DATA: BEGIN OF RESULT.
INCLUDE STRUCTURE ITCPP.
DATA: END OF RESULT.
DATA: BEGIN OF OPTIONS.
INCLUDE STRUCTURE ITCPO.
DATA: END OF OPTIONS.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 79
*** INICIO DO PROGRAMA
* options-tddest = 'SA00'.
* options-tdimmed = 'X'.
* options-tddelete = 'X'.
* options-tdnewid = 'X'.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
* APPLICATION = 'TX'
* ARCHIVE_INDEX = ' '
* ARCHIVE_PARAMS = ' '
DEVICE = 'PRINTER'
DIALOG = 'X'
* form = 'ZANDRE'
* language = sy-langu
* options = options
* importing
* language =
* new_archive_params =
RESULT = RESULT
EXCEPTIONS
CANCELED = 1
DEVICE = 2
FORM = 3
OPTIONS = 4
UNCLOSED = 5
OTHERS = 6.
IF SY-SUBRC NE 0.
MESSAGE ID 'ZR' TYPE 'E' NUMBER 001.
ENDIF.
CALL FUNCTION 'START_FORM'
EXPORTING
* ARCHIVE_INDEX = ' '
FORM = 'ZANDRE'
* language = sy-langu
* STARTPAGE = ' '
* PROGRAM = ' '
* importing
* language =
EXCEPTIONS
FORM = 1
FORMAT = 2
UNENDED = 3
UNOPENED = 4
UNUSED = 5
OTHERS = 6.
IF SY-SUBRC NE 0.
MESSAGE ID 'ZR' TYPE 'E' NUMBER 001.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
* element = 'TITULO'
* FUNCTION = 'SET'
* TYPE = 'BODY'
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 80
WINDOW = 'TITULO'
* importing
* pending_lines =
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
OTHERS = 7.
IF SY-SUBRC NE 0.
MESSAGE ID 'ZR' TYPE 'E' NUMBER 001.
ENDIF.
SELECT * FROM T001W.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
* element = 'MAIN'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'MAIN'
* importing
* pending_lines =
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
OTHERS = 7.
IF SY-SUBRC NE 0.
MESSAGE ID 'ZR' TYPE 'E' NUMBER 001.
ENDIF.
ENDSELECT.
CALL FUNCTION 'END_FORM'
IMPORTING
RESULT = RESULT
EXCEPTIONS
UNOPENED = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
MESSAGE ID 'ZR' TYPE 'E' NUMBER 001.
ENDIF.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT = RESULT
* tables
* OTFDATA =
EXCEPTIONS
UNOPENED = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 81
MESSAGE ID 'ZR' TYPE 'E' NUMBER 001.
ENDIF.
'#INCI'AI" (AE-A" /END#ICA"
KNA1 - Mestre de clientes
TVARV - Variveis para variantes
T012K - Mestre de bancos
EKKO - Cabealho de pedidos
EKPO - tem de pedidos
LFB1 - Mestre de fornecedores
T000 - Tabela de mandantes
T001 - Tabela de empresas
T001W - Tabela de centros e filiais
TCURR - Taxas de converso de valores
CSKS - Registro mestre de centro de custo
CSKT - Textos de centro de custo
TBTCO - Tabela de jobs
MARV - Perodos corrente e precedente de materiais
TADR - Catlogo de objetos do R/3
'#INCI'AI" (AE-A" ++ E ''
PLAF - Tabela de Ordem planejada
MARA - Mestre de Materiais
MARM - Tabela de unidade de medida
MKPF - Cabealho de documentos de material
MSEG - tem de documentos de material
MARD - Estoques por depsito / centro
MAKT - Descries de materiais
MARC - Segmento de materiais por centro
MAST - Ligao Material com lista tcnica
STKO - Cabealho lista tcnica
STPO - tem da lista tcnica
S032 - Estoque retroativo
S031 - Estoque retroativo
AFKO - Cabealho da ordem PCP
MBEW - Avaliao de material
T134T - Denominao de tipos de material
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 82
'#INCI'AI" (AE-A" FI E CO
BKPF - Cabealho de documentos contbeis
BSEG - tens de documentos contbeis
BSS - Contrapartida por contas contbeis de clientes
BSAS - Contrapartida por contas contbeis de fornecedores
BSK - Partidas compensadas de fornecedores
BSAK - Partidas abertas de fornecedores
BSD - Partidas compensadas de clientes
BSAD - Partidas abertas de clientes
LFA1 - Mestre de fornecedores
LFB1 - Mestre de fornecedores ( Empresa )
GLT0 - Mestre de contas razo
AUFK - Mestre de ordens
COSP - Objetos CO valores de ordens de investimentos
SKA1 - Mestre das contas razo
COBK - Cabealho de documentos de CO
COEP - Partidas de CO
COVP - View das tabelas COBK e COEP
'#INCI'AI" (AE-A" "D
VBAK - Cabealho de ordem de venda
VBAP - tens de ordem de venda
LKP - Cabealho de fornecimentos
LPS - tens de fornecimentos
VTTK - Cabealho de transportes
VTTP - tens de transportes
VBRK - Cabealho de faturamento
VBRP - tens de faturamento
J_1BNFDOC - Cabealho de notas fiscais
J_1BNFLN - tens de notas fiscais
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br
Pg. 83
ANO(A8E";
Complex by WA Consultoria em Informtica.
Rua Latif Fakhouri n 646 - V. Sta. Catarina
04367-010 - So Paulo - SP
Tel: (011) 5670-2012 www.complex.inf.br

Você também pode gostar