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