69
Material de treinamento – Conceitos ABAP 1 Academia ABAP – 2006 – PROCWORK Software. Material de apoio – Conceitos resumidos - Instrutor: Luís Fernando Aguiar da Rocha. ÍNDICE: INTRODUÇÃO: ........................................................................................................................... 3 SOBRE ESSA APOSTILA: ........................................................................................................ 6 DIAMANTE:................................................................................................................................. 6 R3 COMO UM SISTEMA ABERTO À COMUNICAÇÃO: ....................................................... 6 ARQUITETURA: ......................................................................................................................... 7 O MIDDLEWARE BASIS: .......................................................................................................... 9 SAP ON LINE SERVICE SYSTEM: ........................................................................................ 10 CONCEITO DE MANDANTE:.................................................................................................. 10 CHANGE REQUEST: ............................................................................................................... 11 UNIDADES LÓGICAS COM SEUS MANDANTES -> DESENHO. ...................................... 12 OBJETOS ‘Z’ E ‘Y’: .................................................................................................................. 13 CLASSE DE DESENVOLVIMENTO OU PACOTE: .............................................................. 13 PROGRAMAS STANDARD DO SAP: .................................................................................... 13 FIELD EXITS ............................................................................................................................. 13 SCREEN EXIT........................................................................................................................... 17 USER-EXIT................................................................................................................................ 17 TRANSAÇÕES IMPORTANTES AO DESENVOLVIMENTO: ............................................. 18 ENTRADAS POSSÍVEIS NO CAMPO DE COMANDO: ....................................................... 18 TELAS DE SELEÇÃO: ............................................................................................................. 19 PARAMETER:........................................................................................................................... 20 DECLARAÇÃO DE VARIÁVEIS: ............................................................................................ 22 CATEGORIA SIGNIFICADO ADEQUADO PARA........................................................................ 23 MENSAGENS: .......................................................................................................................... 24 TRANSAÇÃO: .......................................................................................................................... 25 DEBUGGER:............................................................................................................................. 26 TIPOS DE TABELAS: .............................................................................................................. 27 DICIONÁRIO (DDIC). ............................................................................................................... 28 ATUALIZADOR DE TABELA. ................................................................................................. 30 TABELA INTERNA................................................................................................................... 32 HEADER LINE .......................................................................................................................... 32 MODULARIZAÇÃO:................................................................................................................. 36 COMANDO WRITE: ................................................................................................................. 37 TABELA SYST: ........................................................................................................................ 37 COMMIT WORK/ROOLBACK WORK: .................................................................................. 38 LOOP ENDLOOP: ................................................................................................................. 40 IF, ELSE, ENDIF: ...................................................................................................................... 41 CASE: ........................................................................................................................................ 42 INSERT. ..................................................................................................................................... 42 SORT. ........................................................................................................................................ 43 MODIFY. .................................................................................................................................... 44

Academia ABAP

  • Upload
    alexsnp

  • View
    108

  • Download
    9

Embed Size (px)

DESCRIPTION

Academia ABAP

Citation preview

  • Material de treinamento Conceitos ABAP

    1

    Academia ABAP 2006 PROCWORK Software. Material de apoio Conceitos resumidos - Instrutor: Lus Fernando Aguiar da Rocha.

    NDICE:

    INTRODUO:........................................................................................................................... 3 SOBRE ESSA APOSTILA:........................................................................................................ 6 DIAMANTE:................................................................................................................................. 6 R3 COMO UM SISTEMA ABERTO COMUNICAO: ....................................................... 6 ARQUITETURA: ......................................................................................................................... 7 O MIDDLEWARE BASIS: .......................................................................................................... 9 SAP ON LINE SERVICE SYSTEM: ........................................................................................ 10 CONCEITO DE MANDANTE:.................................................................................................. 10 CHANGE REQUEST: ............................................................................................................... 11 UNIDADES LGICAS COM SEUS MANDANTES -> DESENHO. ...................................... 12 OBJETOS Z E Y: .................................................................................................................. 13 CLASSE DE DESENVOLVIMENTO OU PACOTE: .............................................................. 13 PROGRAMAS STANDARD DO SAP:.................................................................................... 13 FIELD EXITS ............................................................................................................................. 13 SCREEN EXIT........................................................................................................................... 17 USER-EXIT................................................................................................................................ 17 TRANSAES IMPORTANTES AO DESENVOLVIMENTO: ............................................. 18 ENTRADAS POSSVEIS NO CAMPO DE COMANDO: ....................................................... 18 TELAS DE SELEO:............................................................................................................. 19 PARAMETER:........................................................................................................................... 20 DECLARAO DE VARIVEIS: ............................................................................................ 22 CATEGORIA SIGNIFICADO ADEQUADO PARA........................................................................ 23 MENSAGENS: .......................................................................................................................... 24 TRANSAO: .......................................................................................................................... 25 DEBUGGER:............................................................................................................................. 26 TIPOS DE TABELAS: .............................................................................................................. 27 DICIONRIO (DDIC). ............................................................................................................... 28 ATUALIZADOR DE TABELA. ................................................................................................. 30 TABELA INTERNA................................................................................................................... 32 HEADER LINE .......................................................................................................................... 32 MODULARIZAO:................................................................................................................. 36 COMANDO WRITE: ................................................................................................................. 37 TABELA SYST: ........................................................................................................................ 37 COMMIT WORK/ROOLBACK WORK: .................................................................................. 38 LOOP ENDLOOP: ................................................................................................................. 40 IF, ELSE, ENDIF: ...................................................................................................................... 41 CASE: ........................................................................................................................................ 42 INSERT. ..................................................................................................................................... 42 SORT. ........................................................................................................................................ 43 MODIFY. .................................................................................................................................... 44

  • Material de treinamento Conceitos ABAP

    2

    DELETE. .................................................................................................................................... 44 CLEAR:...................................................................................................................................... 44 INCLUDE : ................................................................................................................................. 45 UPDATE: ................................................................................................................................... 47 CONCATENATE: ..................................................................................................................... 47 WS_UPLOAD E WS_DOWNLOAD: ....................................................................................... 48 WORK REA: ........................................................................................................................... 49 SELECT:.................................................................................................................................... 50 SELECT FROM INTO WHERE . .................. 50 SELECT SINGLE LEITURA DE UM NICO REGISTRO. ............................................................ 50 SELECT....ENDSELECT LEITURA DE MLTIPLAS LINHAS; .................................................. 50 SELECT....FROM...INTO....FOR ALL ENTRIES IN ...WHERE.... EQ -........................................................................................................................................... 51 SELECT......UP TO ROWS................................................................................................ 51 SELECT ~ ~ FROM INNER JOIN ON ~ EQ ~ INTO ...WHERE... ................................................................................................. 51 SUBMIT: .................................................................................................................................... 53 EXPORT IMPORT: ................................................................................................................... 53 READ TABLE: .......................................................................................................................... 54 MODULE POOL: ...................................................................................................................... 55 CALL SCREEN:........................................................................................................................ 56 LEAVE: ...................................................................................................................................... 56 TABLE CONTROL: .................................................................................................................. 57 COLUNA DE MARCAO:..................................................................................................... 58 CRIAO DE BOTES EM TELA: ........................................................................................ 59 TABSTRIP:................................................................................................................................ 59 CARGAS EM BANCO DE DADOS:........................................................................................ 62 1 - DIRECT INPUT ........................................................................................................................ 62 2 - BATCH INPUT ......................................................................................................................... 62 3 CALL TRANSACTION ............................................................................................................. 63 4 BAPI ..................................................................................................................................... 65 SAPSCRIPT: ............................................................................................................................. 65

  • Material de treinamento Conceitos ABAP

    3

    INTRODUO:

    O que SAP ???

    Os passos iniciais para que o SAP viesse ao mundo comearam a ser dados em 1972, na cidade de Waldorf, na Alemanha, quando cinco engenheiros, funcionrios de uma multinacional , decidiram criar sua prpria empresa de desenvolvimento de sistemas: a SAP AG. Isso mesmo, SAP no apenas o nome do pacote de gesto mais falado no mundo, tambm o nome da empresa que o desenvolveu.

    O nome da empresa era na verdade uma acrossemia (nome formado pelas iniciais de uma srie de palavras). As iniciais SAP significam Systeme, Anwendung und Programme (Sistemas, Aplicaes e Produtos). O AG era a abreviao de Agentur, um termo em alemo que quer dizer Sociedade Annima.

    O primeiro produto importante da nova empresa foi o SAP R/2 (Realtime System Version 2), um conjunto de mdulos de software destinado a mainframes, que em 1995 ainda era utilizado por mais de 2000 empresas.

    A medida que novos conceitos iam surgindo no campo da informtica, a SAP ia atualizando seu produto, at que em 1989, as primeiras aplicaes do SAP R/3 foram apresentadas numa conferncia em Hanover, Alemanha.

    R/2 e R/3 no representam verses de um mesmo sistema, tratam-se na verdade de produtos diferentes. O R/2 era um conjunto de mdulos de software destinado a mainframes, enquanto o R/3 foi desenvolvido para o ambiente cliente/servidor (ambiente em que algumas estaes solicitam servios, os clientes, e outras, os servidores, atendem, realizando determinados tipos de processamento ou compartilhando recursos como impressoras, arquivos e bancos de dados).

    Os Principais Mdulos do SAP R/3 (Copyright by SAP AG).

    O SAP R/3 um sistema que oferece um conjunto de mdulos com diversas aplicaes de negcio. Os mdulos so integrados e contm a maior parte das funcionalidades necessrias s grandes corporaes , incluindo manufatura, finanas, vendas e distribuio e recursos humanos. Cada mdulo responsvel por mais de 1000 processos de negcio, cada um deles baseado em prticas consagradas no mundo dos negcios. A configurabilidade do sistema tornada possvel por 8000 tabelas que administram desde a estrutura corporativa at a poltica de desconto

  • Material de treinamento Conceitos ABAP

    4

    oferecida aos clientes. O sistema oferece o processamento de informaes em verdadeiro tempo real ao longo da empresa onde estiver implementado. No a toa que o sistema um best-seller. como provam os nmeros a seguir. Em 1995, a SAP AG tinha mais de 6600 colaboradores ao redor do mundo. Neste mesmo ano, a SAP liderava o mercado de softwares para ambiente cliente/servidor. Alm disso a SAP ocupava a quinta posio no ranking das empresas de software. Hoje mais de 4000 empresas possuem o produto da SAP implementado. Um dos motivos do sucesso da SAP o montante investido em pesquisa e desenvolvimento e as alianas estratgicas que forma com outros desenvolvedores de sistemas. Estes parceiros criam add-ons (programas complementares) que suprem algumas deficincias do R/3. Este tipo de unio permite que a SAP foque seus esforos no seu principal produto.

    Em 1995 o SAP chegou ao Brasil, mas para que pudesse ser utilizado no nosso pais ele passou por um processo chamado de customizao, que nada mais que a alterao do sistema de modo a atender a legislao fiscal brasileira .

    Quando o SAP chegou ao Brasil com fora total em 1991 as empresas de consultoria j sabiam que esta ferramenta seria um timo instrumento para aumentar suas receitas. Sendo assim, um ano antes elas comearam a montar a infraestrutura necessria para implementar o pacote no Brasil. Gerentes mais experientes eram enviados ao exterior para saber como os departamentos dedicados a implementao do SAP eram estruturados fora do pas. Outro objetivo destas viagens era conhecer a metodologia de implementao e as ferramentas utilizadas em locais onde a experincia com o sistema fosse maior. Alm disso os escolhidos para estas tarefas passavam por cursos onde eram introduzidos ao pacote de gesto que estava para invadir o mundo corporativo brasileiro.

    Mas os preparativos para a chegada do SAP ao Brasil no envolviam apenas os gerentes das chamadas "Big Six", havia um enorme trabalho de bastidores, deixado a cargo dos scios destas empresas. O resultado seria a formao de um sistema de parceria entre a SAP e as empresas de consultoria segundo o qual o foco da SAP seria a venda do sistema, deixando a implementao na mo de seus parceiros.

    Com as prticas de SAP devidamente estruturadas, do ponto de vista organizacional , restava apenas uma questo: quem iria por a mo na massa e implementar realmente o sistema nos clientes, uma vez que a princpio apenas uns poucos gerentes haviam tido treinamento formal nos assuntos relativos ao SAP e como todos sabemos nunca foi atribuio de um gerente sentar na frente de uma de micro-computador e configurar um pacote de gesto, tendo em mente que seu papel em projetos muito mais estratgico do que prtico.

    A resposta a esta questo era relativamente simples: as grandes consultorias possuiam um contingente de especialistas em outros pacotes de gesto como por exemplo MMX (Suprimentos e Manufatura) ou Interquadram (Financeiro). Estes consultores podiam no conhecer muito de SAP, mas dominavam a metodologia de implementao de sistemas e conheciam processos de negcio a fundo.

    Estas pessoas foram ento enviadas para os Estados Unidos, para tomar parte na to falada academia de SAP. O que era a Academia de SAP ? Era um curso de 5 semanas onde os profissionais aprendiam como configurar o sistema e como executar uma srie de transaes. Os especialistas em Interquadram faziam, em sua maioria, o curso do mdulo FI/CO. Os entendidos em MMX faziam academia de MM ou PP. Ao fim das cinco semanas de curso os participantes deviam fazer um estudo de caso e uma prova. Para receber o certificado de implementador, o aluno deveria ter aproveitamento de 70%. Ao voltar da academia os profissionais eram imediatamente alocados em projetos.

  • Material de treinamento Conceitos ABAP

    5

    Para enfrentar os problemas mais complexos de configurao as consultorias traziam especialistas estrangeiros. s vezes muitos brasileiros que trabalhavam no exterior com SAP h algum tempo eram contratados a peso de ouro pelas grandes empresas.

    Como a demanda por especialistas era maior que a oferta, as consultorias iniciaram grandes processos de contratao. Avalanches de curriculum chegavam aos escritrios. Entre os remetentes havia at mesmo enfermeiros . Os envelopes eram distribudos em 4 pilhas:

    - Pessoas com experincia em SAP,

    - Pessoas com experincia em implementao de pacotes,

    - Pessoas com conhecimento de Ingls e

    - Demais

    As consultorias realmente no exigiam experincia com SAP, pois o processo de formao dos contratados seria financiado por elas mesmas. Cabe ressaltar que apenas empregados de empresas de consultoria podiam tomar parte na academia. Em resumo os participantes eram escritos no curso por seus empregadores.

    Ao trmino da academia os formandos eram disputados imediatamente por todas as consultorias num processo no muito tico. Para moralizar a situao as consultorias fizeram um acordo de cavalheiros segundo o qual elas no poderiam roubar profissionais umas das outras.

    E assim o mercado do SAP foi crescendo. medida que mais e mais empresas utilizavam o sistema, eram formados mais profissionais de implementao de SAP. Muitos funcionrios de empresas que passaram por implementaes acabaram indo para o mercado de consultoria.

  • Material de treinamento Conceitos ABAP

    6

    SOBRE ESSA APOSTILA:

    Essa uma apostila no oficial da SAP do mdulo de ABAP 4 (linguagem de programao do SAP/R3) que se destina a pessoas com experincia em programao linear, anlise estruturada e estrutura de dados.

    O objetivo dessa apostila mostrar de forma simples alguns do vrios comandos, sintaxes e tcnica de programao utilizando ABAP 4. Vale ressaltar que o material foi feito utilizando a lngua portuguesa e no apresenta todo o contedo de sintaxes e tcnicas de programao, se tornando assim apenas referncia para o auto-estudo e gesto de uma academia ABAP 4.

    A utilizao das apostilas oficiais da SAP se torna, como sempre foi, material fundamental para o estudo e aprendizagem da linguagem bem como para a prova de certificao da SAP.

    DIAMANTE:

    SAP/R3 um sistema que pode agregar diversos mdulos que por sua vez possuem diversas funcionalidades, todas integradas seguindo o conceito de tabelas relacionais.

    O R/3 segue o princpio administrativo conhecido como DIAMANTE onde diversos mdulos separados entre si podem ser acoplados dentro de um mesmo conceito definido por sistema, onde todos esses mdulos podem enxergar e conversar entre si, garantindo integridade e integrao entre todos os mdulos.

    R3 COMO UM SISTEMA ABERTO COMUNICAO:

    O R/3 utiliza protocolos Standard da indstria para garantir integrao com outras aplicaes:

    TCP/IP: o protocolo de comunicao difundido mundialmenmte. EDI: Eletronic Data Interchange , o mecanismo utilizado para trocar

    informaes de negcio com diferentes sistemas; muito utilizados por bancos.

    OLE: Object Linking and Embendding: integra aplicaes PC com o R/3 (padro Microsoft).

    Open Interfaces: Arquivamento tico, dispositivo de cdigo de barras, etc.

  • Material de treinamento Conceitos ABAP

    7

    Alm dos protocolos Standard da indstria o R/3 tambm utiliza:

    RFC: Remote Function Call, que utiliza o protocolo copiado do CPI-C da IBM para comunicao e processamento das aplicaes e tasks dentro do sistema R/3 ou com o sistema R/2 ou outros sistemas.

    ALE: Application Link Enabling permite o processamento distribudo dentro do R/3. Na prtica est associado a distribuio de informaes a partir de um modelo de divulgao pr-estabelecido.

    ARQUITETURA:

    O R/3 possui uma arquitetura modular de software seguindo o princpio da arquitetura cliente/servidor com enfoque na distribuio da fora de processamento entre as vrias pataformas envolvidas.

    Esta arquitetura permite que se separe a lgica da aplicao da base de dados e da camada de apresentao. Esta configurao permite ainda otimizar os custos e distribuir a carga atravs de configuraes variadas de hardware. Com isto possvel dimensionar os servidores de acordo com a carga, permitindo a fcil escalabilidade do ambiente.

    Os ganhos nesta arquitetura na implementao R/3 so muitos: Simples instalao de novos servidores para eliminar eventuais gargalos

    de processamento; Servidores trabalham em paralelo, com carga homognea e execuo

    local dos programas; Baixo trfego de rede com a localizao dos buffers de dados e

    programas; Balanceamento de carga, seja para o processamento online (logon) seja

    para o processamento batch.

    Ou seja, o ponto alto da arquitetura a facilidade para escalar e aumentar o poder de processamento.

    Princpios cliente/servidor

    Na implementao R/3, a arquitetura client/server orientada para o software, e no para o hardware como estamos acostumados a ver. Desta forma, Client quem requisita e utiliza o servio.

  • Material de treinamento Conceitos ABAP

    8

    Um servidor de aplicao por exemplo server de alguns servios das estaes clients, porm client dos servios fornecidos pelo servidor de banco de dados. Ou seja, o conceito do papel de quem o cliente e de quem o servidor o que prevalece no importando quem tem mais hardware ou quem normalmente executa a atividade.

    R/3 System Client/Server Configurations

    Os servios (ou camadas) fundamentais de uma aplicao so trs: Presentation, Application e Database services e existem vrias formas de se implementar um sistema R/3, a saber :

    Central, onde todos os componentes esto implementados em um mesmo host. Esta implementao corresponde a clssica implementao mainframe e no comum de ser implementada;

    Two-tier, onde uma camada normalmente executa as funes de presentation usualmente um PC) e a outra camada executa os servios de application e database. Uma outra implementao two-tier poderia ser uma camada executando os servios de database e a outra composta por PCs mais potentes que executariam as funes de presentation e application. A primeira implementao comum em ambientes pequenos e com pouca disponibilidade de hardware para os servidores. A ltima implementao normalmente utilizada em simulaes ou desenvolvimento de software.

    Three-tier, onde cada servio tem o seu prprio host. Nesta configurao possvel ainda assegurar uma diviso de carga na camada de aplicao, garantindo que determinados hosts fiquem dedicados para aplicaes especficas. Por exemplo dedicar um host para servidor de aplicao dos usurios de MM, ganhando com isto performance na distribuio dos servios. A configurao three-tier a mais recomendada em R/3 por garantir a melhor distribuio de carga e escalabilidade nos grandes sistemas.

    Um sistema R/3 agrupa todos os componentes que esto associados com um banco de dados. Se utilizamos uma implementao em 3 camadas, os componentes do R/3 estaro presentes em todas as camadas da hierarquia:

    Database Server, instalado em um host central, onde todos os servios de bancos de dados

  • Material de treinamento Conceitos ABAP

    9

    Um ou mais Application Servers conectados ao servidos de banco de dados. Nestes servidores estaro sendo processados a lgica da aplicao, ou seja, os programas.

    Vrios Presentation Servers conectados aos servidores de aplicao. Estas mquinas so tambm chamadas de frontends ou workstations. Nestas mquinas os usurios iro interagir com o sistema R/3 utilizando uma interface que prover os servios de presentation.

    O MIDDLEWARE BASIS:

    O software Basis do R/3 (tambm chamado de middleware) roda em diferentes plataformas e tambm pode ser adaptado para atender as necessidades individuais das empresas. So vrios os papel de BASIS:

    Prov o ambiente de runtime para as aplicaes R/3 Cuida da perfeita interao das aplicaes com o sistema Define uma arquitetura estvel para as melhorias do sistema Contm todas as ferramentas necessrias para a administrao do

    ambiente Permite a distribuio eqitativa dos recursos e componentes do sistema Prov as interfaces necessrias para os sistemas descentralizados e os produtos externos ao R/3

    As principais caractersticas da tecnologia Basis so:

    uma arquitetura voltada para a configurao client/server Trabalha com bancos de dados relacionais Possui interface grfica com o usurio (GUI)

    Basis o responsvel ainda pela integrao dos aplicativos e do ABAP workbench com o software

    O profissional BASIS em geral o gerente do sistema, sendo responsvel ainda pelo transporte de requests, controle das rotinas de backup, coordenao da manuteno do sistema (como aplicao de notas e hot packages).

  • Material de treinamento Conceitos ABAP

    10

    SAP ON LINE SERVICE SYSTEM:

    OSS um service 24 x 7 disponibilizado pela SAP que permite acesso ao banco de dados de Notas, que provm solues para problemas no sistema R/3. Atravs do OSS os clientes abrem chamados ao suporte relatando problemas que so analisados pela equipe da SAP.

    Atualmente a SAP j disponibiliza esse servio pela Internet. O OSS est disponibilizado no site http://service.sap.comque faz parte do chamado market place da SAP.

    Como a grande maioria (quase totalidade) dos grandes sistemas o SAP/R3 tambm passvel de erros. Erros esses que podem e devem ser corrigidos com a aplicao de notas.

    Notas so comunicados/documentos emitidos pela SAP que relatam e tentam corrigir erros em programas dos diversos mdulos do SAP.

    Atravs do portal SAPnet na WEB podemos procurar uma nota que pode ser aplicada ao erro encontrado. No existindo uma nota especfica para o problema devemos abrir uma OSS que uma comunicao SAP de um possvel problema no R3. Essa OSS ento analisada pelos profissionais da SAP que nos informam qual o possvel problema, qual a soluo e se realmente no existir uma nota especfica a SAP trata de providenciar uma (cria uma nova nota e a divulga).

    CONCEITO DE MANDANTE:

    O R/3 um sistema voltado para clients. Com este conceito possvel controlar vrias empresas em um nico sistema, separando-os por client (ou mandante). As chaves para se logar no sistema tambm so separadas por client. Para efetuar um logon preciso ter chave no client especfico. Alm disso o sistema exige um password e por ser multilinge , deve-se ainda especificar a lngua desejada no momento do logon.

    Um client pode ser visto como uma entidade organizacional separada dentro do R/3, com seus prprios dados e parmetros especficos de customizao. Apesar dos dados serem armazenados em tabelas nicas, os dados dos diferentes clients coexistem separados pela diferenciao do campo MANDT que faz parte da chave da maioria das tabelas (client dependents). A nica exceo a tabela T000 (definio dos clients do sistema) que independent apesar de ter como primeiro o campo MANDT.

  • Material de treinamento Conceitos ABAP

    11

    Mandantes so como unidades independentes dentro de uma mesma unidade lgica.

    Geralmente temos a seguinte configurao de mandantes: Ambientes de desenvolvimento e parametrizaes funcionais em uma unidade lgica, ambiente de qualidade e testes em outra unidade lgica e o ambiente de produo em outra unidade lgica (esse representado por um mandante apenas).

    CHANGE REQUEST:

    As alteraes no software R/3 podem ser divididas em cinco categorias:

    Customizing: a configurao dos processos de negcio e funes de menu atravs do IMG

    Personalization: so as mudanas globais das caractersticas das telas e definio de valores default para determinados campos (SM3)

    Modification: so mudanas efetuadas pelo cliente no repositrio de objetos do R/3 (os SAP objects). estas alteraes precisam ser cuidadosamente avaliadas quando do upgrade de verses do sistema. A partir do release 4.5A a SAP introduziu o Modification Assistent para auxiliar a gerenciar e automatizar estas mudanas

    Enhancement: criao pelo cliente de objetos no repositrio que so referenciados pelos objetos standard do R/3 atravs de user exits. Estes desenvolvimentos so os ideais por reduzirem as necessidades de modification adjustments durante o processo de upgrade Customer Development: criao pelo cliente de objetos no repositrio atravs do ABAP Workbench (programas, etc.)

    Uma change request um pacote contendo os objetos que sero transportados de um sistema R/3 para outro. Por exemplo, no caso de um abap ser encapsulado o source, no caso de uma configurao ser encapsulado as entradas nas tabela e sua respectiva ao (cria/deleta/altera). Uma change request pode ser atribuida a vrios usurios atravs do conceito de tarefa. Apesar do nome tarefa ela no representa o que vai ser feito, ela representa a associao da change request com o usurio e a respectiva documentao (que no obrigatoria) do que foi feito.

    Todas as alteraes efetuadas nos objetos do repositrio so criadas e mantidas atravs do ABAP Workbench e gravadas em change requests. As demais alteraes de customizing e personalizations so criadas e mantidas pelas ferramentas de business engineer e tambm gravadas em change requests. Estes

  • Material de treinamento Conceitos ABAP

    12

    mecanismos permitem que estas alteraes sejam posteriormente propagadas pelo landscape para consistncia do ambiente.

    O workbench organizer oferece mecanismos que permite que os change requests sejam documentados atravs de uma descrio do seu propsito. Os change requests devem ser criados por gerentes de projeto que associam os objetos do repositrio que sero trabalhados, onde permanecem lockados com acesso permitido apenas aos desenvolvedores que foram autorizados ao change. As alteraes nos objetos do repositrio so criadas como tasks associadas ao change request e quando liberadas so transferidas como um todo atravs das rotas que definem o landscape, j que a unidade de transporte o change request. A liberao de um change request faz com que uma nova verso dos objetos nele contidos seja gravado no database de verses (somente no sistema R/3 que foi utilizado para o desenvolvimento).

    UNIDADES LGICAS COM SEUS MANDANTES -> DESENHO.

    QUALIDADE PRODUO

    REQUEST REQUEST

    DESENVOLVIMENTO

  • Material de treinamento Conceitos ABAP

    13

    OBJETOS Z E Y:

    Todos os objetos no Standard do SAP comeam com a letra Z ou Y, portanto quando criamos um programa, transao ou tabela dentro do SAP obedecemos essa nomenclatura de criao de nomes.

    CLASSE DE DESENVOLVIMENTO OU PACOTE:

    CADA MDULO POSSUI O SEU. O conceito de classe de desenvolvimento ou pacote se refere a uma diviso

    lgica criada por BASIS para instanciar diferentes mdulos de aplicao do R/3, proporcionando por exemplo que cada classe de desenvolvimento ou pacote tenha uma rota de transporte especfica.

    Assim temos diversas classes de desenvolvimento dentro do R/3 que permitem o transporte de change requests entre os diversos mandantes e unidades lgicas. Temos inclusive uma classe de desenvolvimento local, que no gera change requests e portanto no possui uma rota de transporte, sendo muito utilizada para testes locais num determinado ambiente.

    PROGRAMAS STANDARD DO SAP:

    No podem ser alterados. Caso haja essa necessidade a SAP disponibiliza EXITS para codificao ABAP. Os programas STANDARD so fechados.

    O que so exits?

    Espaos ou brechas em que a SAP permite que coloquemos codificao.

    Temos ento:

    FIELD EXITS Que so exits criadas para determinado campo. Ao trabalharmos com esses campos o SAP desvia a codificao para um espao em que podemos acrescentar cdigo ABAP. As field exits so criadas conforme as necessidades encontradas no ambiente de programao/regra de negcio.

    A Field exit, permite que seja feita alguma seleo ou checagem de um determinado campo no programa e tela desejados.

    Para isso, se faz necessrio, buscar o elemento de dados do campo que se deseja fazer a field exit.

  • Material de treinamento Conceitos ABAP

    14

    Para verses do R/3 at 4.5: Ir at a transao CMOD, clicar AMPLIAES TEXTO(menu), depois escolher Exits campo, aparecero todas as fields existentes.

    Para verses do R/3 aps 4.5: Rodar pela transao SE38 o relatrio Standard RSMODPRF.

    Para se criar uma nova: 1) Exit campo (menu ou relatrio, dependendo da verso) 2) Criar 3) Digitar o elemento de dados - Avanar 4) Digitar o cdigo, como uma funo 5) Depois clicar no boto Atribuir progr/tela, colocando o nome do programa e

    o nmero da tela, p/ pegar estas informaes, clicar F1 e F9, no campo desejado

    6) Visualiza ou modifica o contedo da field, no boto Processar MF, deve-se selecionar o elemento de dado desejado

    7) Ativar a field exit

    IMPORTANTE: Na field exit, voc precisa pegar o valor digitado no campo desejado, para isso existe a importao e a exportao, ou seja, as variveis INPUT e OUTPUT, voc precisa sempre colocar OUTPUT = INPUT, para que o valor possa voltar para tela origem.

    Observao: A Field exit s funcionar, se a mesma estiver ativa.

    Exemplo: Campo AUART na transao VA01

  • Material de treinamento Conceitos ABAP

    15

    Elemento de dados: AUART Programa: SAPMV45A Tela:0101

    Cdigo desenvolvido function field_exit_auart. *"----------------------------------------------------------------------

    *"*"Interface local: *" IMPORTING *" VALUE(INPUT) *" EXPORTING *" VALUE(OUTPUT) *"----------------------------------------------------------------------

    data: w_auart like vbak-auart. w_auart = input. export w_auart to memory id 'w_auart'. output = input.

    endfunction.

  • Material de treinamento Conceitos ABAP

    16

    Exemplo da tela de ativao de field_exit:

    Notar que temos uma listagem com:

    Elemento de dados. Status (ativo ou inativo). Programa (nome do programa especfico ou global) Tela (nmero da tela do programa na qual a exit estar ativa) Numerao para quando tivermos a exit ativa para mias de uma tela ou

    programa. Descrio herdada do elemento de dados.

    Tambm importante destacar que para cada funo que for criada para a field exit especfica deveremos associar um grupo de funes. A dica criar um grupo de funes para cada field exit criada.

  • Material de treinamento Conceitos ABAP

    17

    SCREEN EXIT So locais em telas de transaes Standard do SAP onde podemos criar campos adicionais ou qualquer outro objeto em tela. As menu exits so pr-definidas em determinadas telas de transaes e criadas pela prpria SAP como uma maneira de incluso de funcionalidades.

    USER-EXIT So espaos vazios que algumas transaes e seus programas possuem e so apresentadas como uma Include vazia dentro desses programas onde nos d a possibilidade de incluir codificao ABAP e alterar com isso diversos procedimentos de programao executados pela transao/programa Standard.

    As User Exits foram desenvolvidas originalmente para o Mdulo SD, com o propsito de permitir ao usurio modificar o sistema sem, no entanto, modificar o cdigo fonte.

    Consistem basicamente de sub-rotinas (rotinas FORM) em includes especiais, criados em um Pool de Mdulo ou Grupo de Funo, onde chamar essas sub-rotinas nos pontos do programa no qual ser permitida alterao pelo usurio.

    Essas sub-rotinas devem satisfazer a nomenclatura: USEREXIT_. A SAP nunca altera os includes. Se novas User Exits so adicionadas em uma nova verso, elas so

    colocadas em um novo programa include. A chamada da sub-rotina j est implementada nos programas dos

    mdulos Standard (SD, MM, FI, etc.). Normalmente, sub-rotinas desse tipo s trabalham com variveis globais.

    Obs: Como exemplo, podemos verificar os includes MV45AFZB e MV45AFZZ, referente ao programa SAPMV45A.

    Para encontrarmos User Exits em um determinado programa, podemos utilizar a transao SE38, em Utilitrios, na opo Encontrar na Fonte, e userexit_ como texto de procura. O resultado ser uma lista de todas as User Exits do programa, e onde elas foram chamadas em todas as telas do Pool de Mdulo.

    H ainda a viso de tabelas chamada INFO_MODS nas quais podemos visualizar todas as possibilidades de exits existentes em um programa especfico. Deveremos ento indicar o nome do programa que queremos buscar por exits no campo MEMBER e o campo TYP significa qual o tipo da exit como abaixo:

  • Material de treinamento Conceitos ABAP

    18

    TRANSAES IMPORTANTES AO DESENVOLVIMENTO:

    SE38 EDITOR ABAP SE80 OBJECT BROWSER (pode ser usada para chamarmos diversas outras transaes). SE11 DICIONRIO SE16 DATA BROWSER SE71 FORM PAINTER (EDITOR DE SAPSCRIPT) SE10 TRANSPORT ORGANIZER

    SM30 ATUALIZADOR DE VISO DE TABELAS ST22 ABAP ANLISE DE DUMP. ST05 TRACE REQUESTS (anlise de performance).

    ENTRADAS POSSVEIS NO CAMPO DE COMANDO:

    Chamar uma transao:

    - no mesmo modo (janela) Entrar: /nxxxx (xxxx = cdigo de transao).

    - no mesmo modo (janela), a primeira tela ignorada. Entrar: /*xxxx (xxxx = cdigo de transao).

    - em um modo adicional Entrar: /oxxxx (xxxx = cdigo de transao).

    Encerrar a transao atual:

  • Material de treinamento Conceitos ABAP

    19

    Entrar: /n. Ateno: modificaes no gravadas so perdidas sem aviso

    Eliminar o modo atual:

    Entrar: /i.

    Gerar uma lista de modos:

    Entrar: /o.

    Encerrar a transao atual e voltar ao menu inicial :

    Entrar: /ns000.

    Logoff do sistema:

    Entrar: /nend.

    Logoff do sistema sem consulta de segurana:

    Entrar: /nex. Ateno: modificaes no gravadas so perdidas sem aviso.

    TELAS DE SELEO:

    Chama-se telas de seleo as telas especiais usadas para a informao de valores nos programas Abap: em vez de usar o Screen Painter, podem ser criadas por meio de instrues Abap na lgica de processamento do programa. A lgica de fluxo de tela fornecida pelo sistema e permanece invisvel ao usurio como, o programador da aplicao.

    Definem-se as telas de seleo na parte da declarao de um programa Abap por meio das instrues de declarao especiais (PARAMETERS, SELECT-OPTIONS e SELECTION-SCREEN). Tais instrues declaram e formatam os campos de entrada de todas as telas de seleo.

    Os elementos mais importantes de uma tela de seleo so os campos de entrada para valores individuais e para tabelas de seleo. Estas permitem a entrada de critrios de seleo mais complicados e so fceis de usar no sistema Abap por serem processadas no prprio sistema. Como acontece no caso de outras telas. O sistema fornece ajuda de campos e os possveis valores para os campos de entrada que fazem referencia a um campo do Abap Dictionary. O

  • Material de treinamento Conceitos ABAP

    20

    sistema fornece conjuntos pr-configurados de valores de entrada para telas de seleo denominados variantes. Quando usada a instruo CALL SELECTION-SCREEN, o sistema permite chamar uma tela de seleo de um programa Abap. Caso se trate de um programa executvel (relatrio) de categoria 1, um programa do sistema automaticamente chama a tela de seleo definida na parte de declarao do programa. As telas de seleo acionam eventos e podem, assim, chamar blocos de evento em programas Abap.

    Posto que as telas de seleo contem principalmente campos de entrada, os dilogos da tela de seleo so mais orientados por entradas do que as telas definidas a partir do Screen Painter. As telas de dialogo podem conter campos de entrada e de sada. As telas de seleo, entretanto, mostram-se apropriadas quando o programa requer dados do usurio antes que possa continuar o processamento.

    Por exemplo, a tela de seleo poderia ser usada antes de acessar o banco de dados, para restringir o volume de dados lidos.

    PARAMETER:

    OBLIGATORY DEFAULT

    AS CHECKBOX RADIOBUTTON GROUP B1

    Exerccio. Criar um REPORT utilizando todas as opes acima com PARAMETERS. Combinar com os j apresentados

    SELECT-OPTIONS:

    A declarao SELECT-OPTIONS FOR insere dois campos de entrada na tela de seleo, com o mesmo tipo definido na referencia. Com isso, os usurios podem entrar um intervalo de valores ou selees mais complexas

    Os diversos valores ou intervalos, entrados para uma opo de seleo, so inseridos na tabela interna quando o usurio selecionar Executar.

    Exemplo:

    1 - Para exibirmos em tela um parmetro simples de entrada de dados:

  • Material de treinamento Conceitos ABAP

    21

    PARAMETERS: P_PEDIDO LIKE EKKO-EBELN.

    O que resultar na tela:

    2 - Para exibirmos em tela um parmetro composto de entrada de dados (possibilitando a digitao de um RANGE de dados):

    SELECT-OPTIONS: SO_PED FOR EKKO-EBELN.

    O que resultar na tela:

  • Material de treinamento Conceitos ABAP

    22

    DECLARAO DE VARIVEIS: uma definio de objetos de dados. A atribuio de categoria de objeto de dados feita pela referencia do objeto a uma categoria abap, a uma categoria definida pelo usurio ou a um objeto do dictionary.

    Sintaxe:

    TYPE . DATA: < varname> TYPE . LIKE .

  • Material de treinamento Conceitos ABAP

    23

    O sistema permite tambm referir o objeto a um outro objeto de dados existentes. Neste caso todos os atributos da categoria so herdados pelo novo objeto de dados. Exemplo:

    DATA: LIKE .

    - Categoria de dados 2 tipos: Predefinidos Definidos pelo usurio

    - Predefinidos No Abap existem 8 categorias de dados predefinidos:

    Numricos:

    Categoria Significado Adequado para

    P numero compactado contadores, quantidade, ndices, prazos

    I numero inteiro moedas, comprimentos, pesos

    F numero ponto flutuante calculo em um intervalo de valor muito grande.

    Alfanumricos:

    Categoria Significado

    N texto numrico

    C texto (caracter)

    D data

    T horrio (time)

    X hexadecimal

  • Material de treinamento Conceitos ABAP

    24

    Exemplo:

    DATA: TYPE .

    DATA: counter TYPE I, name(18) TYPE C, start_date TYPE D, sum(3) TYPE P DECIMALS 2.

    Numero de posies

    Determina o numero de casa decimais a ser usado

    Regras para dar nome aos objetos de dados: - Um nome pode Ter 30 caracteres no mximo. - Os seguintes smbolos NO so permitidos: ( ) + . , : - SPACE um campo obrigatrio.

    MENSAGENS:

    uma caixa de texto configurada para ser exibida ao usurio quando um determinado evento disparado.

    Todas as messages devero ser executadas com textos padres ou personalizados. Exemplos:

    - Texto padro:

    MESSAGE I027 (BCTRAIN).

    - Texto personalizado:

    MESSAGE W001(PC) WITH Cuidado, operao pode gerar danos ao sistema!.

    Chamada da message

    Tipo de message utilizada

    N da message na biblioteca

    Texto utilizado de uma biblioteca padro

    Chamada da message

    Tipo de message utilizada

    N aleatrio atribudo message

    Texto no padro utilizado

    Utilizao no padronizada

  • Material de treinamento Conceitos ABAP

    25

    Tipos de mensagens: A Abend

    W - Warning I - Information S Status E Erro. X Exit (termina com short dump).

    Exerccio. 01 Criar um report em que os parameters de entrada sejam exibidos em mensagens (testar todos os tipos).

    TRANSAO:

    Conceito: Um processo lgico no sistema R/3.

    Do ponto de vista do usurio, uma transao uma unidade lgica (por exemplo, gerar uma lista de clientes, criar uma reserva para um vo ou executar um programa).

    Do ponto de vista do programador um objeto complexo, que consiste num grupo de mdulos e uma srie de telas. As transaes se iniciam usando um cdigo de transao.

    Depois de entrar no sistema R/3 existem 3 nveis: nvel SAP, nvel Work rea e nvel de aplicao. Uma transao um processo em nvel de aplicao.

    Para iniciar a transao, o usurio poder usar os menus ou entrar com 4 caracteres para o cdigo da transao na linha de comando.

    Componentes de uma Transao: Programa ABAP Dilogos do usurio (Telas, listas e telas de seleo) GUI Interface grfica do usurio (Barra de Menus, Barra de

    ferramentas Standard e de aplicao e barra de ttulos)

    Etapas para criar uma nova transao:

    Analisar o problema escrevendo uma especificao do programa. importante tambm checar se existem solues similares j existentes;

    Baseado nessas anlises, escolher os tipos de dilogos do usurio (telas, listas ou telas de seleo). As telas permitem criar dilogos amigveis com

  • Material de treinamento Conceitos ABAP

    26

    botes, controles de Tabstrip, Table Control e outros elementos grficos. Vide PBO, PAI e seqncias de telas e comunicao entre tela e programa;

    Iniciar uma transao usando o seu cdigo correspondente. Esse cdigo deve iniciar com Z ou Y e o sistema armazena cdigo de transao na tabela TSTC;

    Inserir na caixa de texto User Command o cdigo de transao SE80; Clicar no boto Processar Objeto; Escolher a opo TRANSAO e escolher o nome da transao; Clicar em criar; Escolher o Tipo de Transao: Transao Dilogo Module Pool Chamada de tela Transao Reports Para reports Transao Variante Menu de rea Habilitar menu de rea Transao Parmetros Caso os passos acima tenham sido executados com sucesso a transao

    foi criada com xito.

    DEBUGGER:

    uma ferramenta de depurao de erros e anlise de execuo de comandos/instrues.

    Ele utilizado para procurar erros semnticos nos programas. Existem vrios modos de iniciar o Depurador:

    - No Repository Browser, selecionar Testar/Executar - No ABAP Editor, selecionar Depurao - Na transao a ser testada, digitar /h no campo de comando - Em qualquer tela, selecionar Sistema => Utilitrios => Depurao.

    A tela Depurador tem duas reas. A rea superior exibe o cdigo do programa. Na rea inferior, o sistema exibe vrias informaes adicionais, dependendo da viso selecionada. Para alterar entre as vrias vises, usam-se os botes da parte superior da tela. Selecionar Campos na parte inferior da tela para exibir o seu contedo. Posicionar o cursor no nome do campo na rea cdigo de programa e selecionar F2 ou clicar duas vezes no nome do campo.

    Pontos de parada

    Finalidade: quando selecionado Avanar no Depurador, o sistema continua a processar at alcanar o prximo ponto de parada. Os pontos de parada podem ser definidos como abaixo:

  • Material de treinamento Conceitos ABAP

    27

    no Depurador: atravs de um clique duplo; no Editor: atravs da instruo ABAP BREAK-POINT.

    TIPOS DE TABELAS:

    Tabela Transparente Existe uma tabela fsica no banco de dados para uma tabela transparente.

    Todos os dados empresariais e dados de aplicao so arquivados em tabelas transparentes.

    Exemplo: Todas as nossas tabelas do PW.ce. EKKO Cabealho do documento de compras. EKPO - Item do documento de compras.

    Nosso sistema PW.ce grava todas as informaes em tabelas transparentes

    Tabela Cluster uma tabela no banco de dados que contm um campo LONG RAW (como uma linha comprida). O campo long raw contm uma string concatenando vrias informaes. Essas tabelas existem para permitir a criao de tabelas com mais de 255 campos que de outra forma no seria possvel por uma limitao do banco de dados.

    Exemplo: Tabela BSEG.

    Nosso sistema PW.ce NO utiliza tabelas cluster.

    Tabela Pool - Um pool de tabelas uma tabela de banco de dados que permite que os dados de mltiplas tabelas do R/3 sejam armazenados dentro dele. As tabelas de Pool so uma estrutura proprietria da SAP e so utilizadas para armazenar um grande nmero de tabelas muito pequenas.

    Nosso sistema PW.ce NO utiliza tabelas pool.

    Viso ou view Um conjunto de duas ou mais tabelas transparente integradas de forma relacional de forma que possam fornecer os dados de forma integradas (fazendo um join). Muito utilizadas para melhoria de performance de leitura dos programas ABAP, evitando que sejam criadas leituras com condies de JOIN muito complexas e demoradas.

    A view uma Viso de um BD, ou seja, criam-se vises de bancos com o

  • Material de treinamento Conceitos ABAP

    28

    objetivo de que certos dados sejam visualizados sempre que for chamada uma view associada a eles.

    A maior utilidade deve-se ao fato de criar uma consulta default e toda vez que se quiser visualizar os dados no ser necessrio reinventar a roda, ou seja, montar todo o select novamente. Imagine uma consulta que manipule 10 tabelas e 40 campos ser que h necessidade de ficar refazendo toda vez? Claro que no, crie uma view e toda vez que haja necessidade faa uma chamada a ela! Uma view no utilizada apenas para visualizao dos dados, caso se crie uma view de apenas uma tabela, tem-se a opo de efetuar alteraes (update, insert e delete) na mesma replicando assim os dados para a tabela de onde a view foi gerada.

    Estruturas - So como tabelas que no armazenam dados, definem um conjunto de campos e geralmente so utilizadas para definir os dados em interface e telas, assim como para atribuir o tipo aos parmetros de mdulos de funo. Utilizado para alocar memria para um grupo de campos. Uma estrutura diferentemente de uma tabela no tem uma tabela de banco de dados associada a ela.

    Nosso sistema PW.ce utiliza estruturas para a exibio/alterao de dados nas telas de nossos programas, porm esses dados NO esto gravados fisicamente nessa estrutura, no caso esse campo dessa estrutura no possui dados fsicos. Os dados esto todos gravados em tabelas transparentes.

    DICIONRIO (DDIC).

    Funciona como uma interface com um banco de dados ou ainda como um mini gerenciador de banco de dados onde podemos definir e criar diversos objetos de dicionrio como tabelas transparentes, vises, estruturas elemento de dados, domnios, ajudas de pesquisa e objetos de bloqueio.

    SE11 MOSTRAR. Transao onde podemos criar, alterar, exibir eliminar objetos como: Tabelas transparente, vises, estruturas, elementos de dados, domnios, ajudas de pesquisa e objetos de bloqueio.

    APRESENTAR TABELA TRANSPARENTE -> Conceito tabela fsica no BD

    CRIAR UMA DE EXEMPLO: ZTALUNO.

  • Material de treinamento Conceitos ABAP

    29

    MANDANTE -> SEMPRE CHAVE TIPO DE CAMPO - CRIAR DENOMINAO DOMNIO CRIAR E EXIBIR AS CATEGORIAS MOSTRAR OPES TCNICAS. MOSTRAR ATUALIZAES PERMITIDAS. POPULAR A TABELA.

    Exerccio: 1 - Criar as tabelas ZTALUNO, ZTCLASSE, ZTPROF.

    CONCEITO DE CHAVE ESTRANGEIRA Toda chave estrangeira chave primria em alguma outra tabela do DDIC. Criar uma CE entre a tabela de classe e a tabela de professores: ZTCLASSE-CODPROF -> ZTPROF-CODPROF.

    Exerccio: 1 Criar CE entre a tabela de alunos e a tabela de classe onde: ZTALUNO-CLASSE -> ZTCLASSE-CLASSE.

    APRESENTAR ESTRUTURA Utilizado para exibir dados em tela, passagem de

    parmetros entre programas e criao de SAPscript.. No armazena dados -> Espao reservado para trnsito de dados.

    CRIAR UMA ESTRUTURA: ZFALUNO IDNTICA TABELA ZTALUNO

    Conceito de Tabelas de Verificao:

    Uma verificao de valores automaticamente executada, na tabela de verificao, caso um campo de tela faa referencia a um campo do Abap Dictionary com controle de chave externa.

    O Sistema exibe uma mensagem de erro e disponibiliza o campo para nova entrada quando uma tabela de verificao do campo no contem a entrada realizada.

    O boto (F4) exibe todas as entradas contidas na tabela de verificao de um campo.

    Todos os valores entrados em uma tela que possui valores fixos so, automaticamente, comparados com esses valores fixos.

    O sistema exibe uma mensagem de erro e disponibiliza o campo para nova entrada quando uma entrada no corresponde a qualquer um dos valores fixos da tela.

  • Material de treinamento Conceitos ABAP

    30

    Exerccio: 1 Criar uma estrutura para cada tabela transparente criada (ZTALUNO,

    ZTCLASSE, ZTPROFESSOR)

    ATUALIZADOR DE TABELA.

    MOSTRAR SM30 ATUALIZAO DE TABELAS. Podemos criar uma interface prpria para atualizarmos dados em tabelas

    transparentes. Essa interface se chama Viso de Atualizao e criada atravs da transao SM30.

    Temos que criar primeiro o gerados de atualizao de tabela atravs da transao SM11, opo do menu: utilitrios -> Gerador de atualizao de tabelas.

    Logo aps criado o gerador de atualizao de tabelas devemos: Entrar na transao SE93 -> Digitar um nome vlido para a trasao e

    clicar em criar. Na tela seguinte informar uma descrio para a transao e marcar a opo

    de Transao com parmetros e confirmar:

  • Material de treinamento Conceitos ABAP

    31

    Na tela seguinte informar: Uma descrio para o texto da transao. Na opo transao informar a SM30 na caixa de texto e marcar o flag Omitir 1 tela

    Na parte inferior da tela informar em valores propostos:

    Nome do campo de tela Valor VIEWNAME Nome da tabela transparente UPDATE_LTD X

  • Material de treinamento Conceitos ABAP

    32

    TABELA INTERNA.

    CONCEITOS: 1 - So espaos de memria criados por um programa ABAP que s podem ser utilizadas enquanto um programa est sendo utilizado.

    2 - Armazenar dados temporariamente dentro de um prog. ABAP. As tabelas internas s existem enquanto o programa estiver rodando.

    3 - Tabelas criadas e declaradas dentro de um programa abap que no existem fisicamente no BD.

    4 - So alimentadas por seleo em tabelas ou insero via comando do programa e servem para guardar momentaneamente esses dados.

    HEADER LINE

    As tabelas internas podem ser definidas com ou sem uma linha de cabealho. Uma tabela interna com linha de cabealho composta por uma rea de trabalho e o corpo real da tabela, ambos endereados com o mesmo nome.

    O usurio pode declarar uma tabela interna com uma linha de cabealho atravs do suplemento WITH HEADER LINE.

    Para evitar erros, recomenda-se que o usurio crie tabelas internas sem linha de cabealho. Entretanto, nas tabelas internas com linhas de cabealho quase sempre possvel usar uma sintaxe reduzida para certas operaes.

    Uma tabela interna uma seqncia de linhas do mesmo tipo. Em geral as tabelas internas ( tambm denominada matriz) so usadas

    para arquivar os resultados de processamento ou os dados de origem.

    Elas so usadas para: Armazenamento temporrio de dados das tabelas de banco de dados

    para processamento posterior. Arquivamento de dados para exibio de listas. Arquivo de dados para comunicao com o computador de mesa, outros

    servidores de aplicao do sistema R/3 ou sistemas no SAP.

    As tabelas internas so descritas atravs de vrios atributos, um dos quais o tipo de linha. O tipo de linha determina a estrutura dos registros de dados que podem ser armazenados em uma tabela interna.

  • Material de treinamento Conceitos ABAP

    33

    CARRID CONNID DISTANCIA Tipo de Linha

    AA 0017 2,572 LH 0400 6,162 Dados

    Outro atributo das tabelas internas so as chaves, que ajudam a identificar as entradas da tabela. O importante na definio de uma chave a seqncia de seus campos. Por exemplo, a chave CARRID CONNID diferente de CONNID CARRID.

    Existem dois tipos diferentes de acesso aos dados no Abap: com ndice e com chave.

    Acesso com ndice: Significa usar o ndice do registro de dados que o sistema mantem para acessar os dados.

    Acesso com chave: significa usar o termo de pesquisa, em geral uma chave da tabela ou uma chave da tabela genrica, para ter acesso aos dados.

    - Categorias de Tabelas

    As tabelas internas podem ser divididas em trs categorias. De acordo com o modo de acesso aos dados:

    Tabelas Standard: mantm, internamente, um ndice linear e podem ser acessadas atraves do seu ndice ou de sua chaves.

    Tabelas Ordenadas: So ordenadas de acordo com a chave e gravadas. Aqui, tambm um ndice linear utilizado internamente. Este tipo de tabela tambm pode ser acessada atravs do seu ndice ou de suas chaves.

    Tabelas Aleatrias de Prova: No mantm ndice linear interno e podem ser acessadas apenas atravs de suas chaves.

    As seguintes operaes podem ser executadas com tabelas internas em ABAP:

    Comando Efeito

    APPEND Anexa o contedo de uma rea de trabalho ao final de uma tabela interna

    INSERT Insere o contedo de uma rea de trabalho em um determinado ponto ( N linha).

  • Material de treinamento Conceitos ABAP

    34

    MODIFY Sobrescreve uma linha especifica com o contedo de uma rea de trabalho;

    DELETE Apaga uma linha especifica de uma tabela interna.

    LOOP AT Insere as entradas de uma tabela interna. Linha por linha em uma rea de trabalho.

    READ TABLE Insere exatamente uma entrada da tabela interna em uma rea de trabalho.

    SORT Ordena uma tabela interna.

    CLEAR Limpa (apaga) uma rea de trabalho ou uma tabela interna.

    - Preenchimento de Tabelas Internas

    O sistema permite usar tabelas internas sempre que houver uma seqncia de entradas ou linhas de mesmo tipo. Isto ocorre quase sempre quando um programa precisa de uma copia interna de uma determinada tabela do banco de dados.

    O usurio pode preencher uma tabela interna com registros de dados de uma tabela do banco de dados utilizando um loop SELECT para colocar registros individuais de dados na rea de trabalho de uma tabela interna e, depois, anexando o contedo da rea de trabalho tabela interna no loop SELECT.

    A instruo APPEND deve ser utilizada para preencher uma tabela interna.

    Ao declarar uma tabela standard, o usurio no precisa usar o suplemento STANDARD.

    Exemplos de criao. Debugar e mostrar vazia. Passar os parameters para dentro da ITAB. Mostrar APPEND -> explicar header line.

    Exerccio:

    Algumas sintaxes de criao:

    DATA: BEGIN OF itab_zprof OCCURS 0, codprof like zprofessor-codprof,

  • Material de treinamento Conceitos ABAP

    35

    nomeprof like zprofessor-nomeprof, dtnasc like zprofessor-dtnasc, END of itab_zprof.

    OU

    DATA: itab_zprof like zprofessor occurs 0 with header line. DATA: BEGIN OF itab_zprofessor OCCURS 0. include structure zprofessor. data: idade(02) type c. DATA: END OF itab_zprof.

    OU

    data: itab_zprof like zprofessor occurs 0 with heaDER LINE.

    Exerccio:

    01 Criar dentro do programa teste a declarao de tabela interna e compilar.

    02 Debugar a o programa e exibir HEADER LINE -> explicar. 03 - Criar parameters para tabela ZPROFESSOR e mover para tabela

    interna. 04 Criar SELECTION SCREEN com bloco e frame.

    Adendo a respeito da declarao OCCURS N em tabelas internas:

    General Performance Notes for Internal Tables

    OCCURS Value or INITIAL SIZE Specification

    Internal tables are a dynamic data structure. Their memory requirements are met in blocks. The initial memory allocation (hereafter called the OCCURS area), can be controlled using the " OCCURS n" or "INITIAL SIZE n " addition in the table definition (see DATA, TYPES). Once the OCCURS area is full, the next block to be created is twice as big as the OCCURS area (as long as this is not greater than 8 KB). All further blocks are then created with a constant size of 12 KB. You can leave it to the system to determine the size of the OCCURS area by specifying n = 0. In this case, the system allocates only a "small" portion of memory at the first INSERT or APPEND statement. "OCCURS 0" or "INITIAL SIZE 0" means that 16

  • Material de treinamento Conceitos ABAP

    36

    To avoid excessive memory requirements, the system handles large values of n as follows: The largest possible value of n is n_max = 8 KB divided by the line width. For larger values, n is set such that n multiplied by the line width is around 12 KB.

    MODULARIZAO:

    CONCEITOS: Organizao do programa: INITIALIZATION.

    START-OF-SELECTION. END-OF-SELECTION. TOP-OF-PAGE.

    Form Perform. A estrutura Form / Perform muito utilizada com qualquer tipo de programa,

    com ela executasse a modularizao do cdigo fonte atravs de blocos de processamento.

    Algumas vezes comum ocorrerem confuses entre funes e a estrutura form/perform pela seguinte causa:

    Na funo so passados valores quaisquer para serem processados e obtido um retorno X qualquer definido pelo programador, enquanto no form/perform valores so passados para serem processados (podendo-se passar at uma tabela inteira), mas no obtem-se um nico retorno.

    O que ocorre uma chamada a um processamento em bloco passando valores, representada pelo perform (que na realidade uma chamada ao form). O contedo do programa que vem abaixo do PERFORM s executado se o bloco de processamento FORM permitir, ou seja, neste tipo de estrutura no se fica esperando um nico retorno e sim um contnuo processamento.

    A maior utilizao do FORM / PERFORM d-se ao fato que em um programa bem modularizado o tempo de manutenabilidade fica reduzido gerando assim uma otimizao das tarefas.

    Exemplo:

    Criar os eventos e forms de processamento. Passar parmetros para o FORM.

  • Material de treinamento Conceitos ABAP

    37

    COMANDO WRITE:

    CONCEITO: Serve tanto para mover dados tanto para sada de dados em tela. Criar no END-OF-SELECTION a sada da tabela ZTPROF. Separadores do WRITE -> Cabealho de sada. FORMAT COLOR. INTENSIFYED ON/OFF. Criar e mostrar a sada de dados da tabela interna ZTPROF.

    Exerccio: 1 Criar o evento end-of-selection, o FORM de sada, o cabealho da

    sada, a sada dos dados e fazer a formatao de cores.

    TABELA SYST:

    CONCEITO: Tabela interna do sistema SAP/R3 que exibe controles internos

    importantes para o processamento dos Programas ABAP.

    A tabela Syst representatividade de todo o sitema R/3 atravs de alguns parmetros. Parmetros estes que permitem ao profissonal ABAP fazer verificaes no sistema.

    Verificaes englobam muitos detalhes, a tabela Syst to completa que nos permite fazer desde verificaes simples como a obteno da data corrente at checks mais complexos como a verificao de qual evento foi disparado pelo usurio em um determinado momento.

    Uma viso completa dos campos da tabela Syst importante para que o profissional ABAP fique alerta sobre quais os eventos que ele pode controlar dentro do sistema, abaixo seguem alguns exemplos:

    Sy-Index: Retorna um nmero de passagem atribudo, como por exemplo dentro de um loop.

    Sy-Tabix: Em tempo de execuo retorna a linha atual utilizada em uma tabela interna.

    Sy-Ttabc: Nmero da ltima linha lida em uma tabela interna. Sy-Linct: Nmero total de linhas de uma certa lista gerada. Sy-Listi: Nmero da linha que estiver atualmente selecionada em uma lista. Sy-Lsind: Nmero da lista de ramificao , pode-se por exemplo checar

    quantas sub-listas foram executadas a partir de uma lista X. Sy-Currow: Mostra a posio do cursor em uma linha. Sy-Lisel: Mostra a linha selecioanda.

  • Material de treinamento Conceitos ABAP

    38

    Sy-Cucol: Posio do cursor em uma coluna. Sy-Binpt: Retorna se um batch input est ou no ativo. Sy-Calld: Retorna se um modo de call est ou no ativo. Sy-Mandt: Nmero do mandante logado no sistema SAP. Sy-Opsys: Sistema operacional utilizado. Sy-Ucomm: Mostra a ao X qualquer que o usurio deseja realizar, aps

    um evento ter sido executado pelo usurio. Sy-Waers: Tipo de moeda utilizado. Sy-Datum: Data do dia. Sy-Uzeit: Hora Sy-Uname: Usurio logado no SAP. Sy-Host: Nome do host (mquina). Sy-Subrc: return code (resultado de comandos) Sy-tcode: Nome da transao.

    SY-SUBRC = um dos mais importantes -> Retorna 0 (zero) se a instruo anterior foi executada com sucesso.

    Nmero de retorno aps uma instruo ABAP. Instruo com sucesso = 0. Instruo com erro 0. Sempre utilizado aps SELECTS e diversos comandos de busca, insero e deleo de dados.

    COMMIT WORK/ROOLBACK WORK:

    Commit Work uma tcnica utilizada para salvar dados em um BD, esta gravao fsica, ou seja, os dados so jogados diretamente nas tabelas, para confirmar as operaes efetuadas no insert, update, etc. Normalmente deixamos o SAP fazer este gerenciamento de gravao pois ele consiste todos os dados em todas as tabelas, replicando assim as alteraes.

    O Commit no uma tcnica muito utilizada pois a margem de acontecimentos de erros em sua execuo bastante alta.

    Caso um processo de carga esteja sendo executado e acontea um erro e o Commit ainda no tenha sido efetuado podemos desfazer as operaes executadas at aquele momento com o comando ROLLBACK WORK.

    Exemplo I:

    Program ............................................. Module User_Command Input.

  • Material de treinamento Conceitos ABAP

    39

    ............................................................

    ............................................................

    Case save_ok. When BACK. ....................................

    ....................................

    Message Axxxx. ROLLBACK WORK.

    When SAVE. ....................................

    ....................................

    COMMIT WORK. EndCase. EndModule.

    Exemplo II:

    Ciclo de vida COMMIT x ROLLBACK

    |---------------------------------------|---------------------------------------|

    Lock Enqueue / Dequeue

    O programa SAP R/3 utiliza lock nas tabelas por motivo de consistncia dados; em tempo de execuo podem existir 2 ou mais pedidos de alterao quase ao mesmo tempo em um campo X.

    O sistema para evitar alteraes incorretas nos seus dados, se utiliza de um processo denominado LOGICAL LOCKS que consiste em criar uma fila de processamento com utilizao exclusiva da table para cada transao que deseja manipular a mesma.

    Exemplo:

    Em um intervalo de tempo de 0,001 s. chegam duas solicitaes para alterao, a transao de n.: 01 trava a tabela para que esta seja somente manipulada por ela que chegou 1. Aps a liberao desta tabela pela transao de n.: 01 a n.: 02 ir comear a manipular a tabela, ficando esta neste momento exclusiva da prpria transao.

    Observa-se que o processo de travamento da table efetuada por um objeto que chamado exclusivamente para isto:

    Incio Fim

    Commit Commit

    Rollback Rollback

  • Material de treinamento Conceitos ABAP

    40

    - ENQUEUE_. Para a liberao da mesma chamado um outro objeto:

    - DEQUEUE_. Outro detalhe a ser observado que antes de se utilizar os objetos, os mesmos devem ser criados no ABAP Dictionary. A criao destes objetos poder ser efetuada para a manipulao de 1 ou N tabelas, vale lembrar apenas que se houver manipulao em N tabelas deve antes existir um relacionamento entre elas.

    LOOP ENDLOOP:

    Estrutura de repetio comumente usada nos programas ABAP.

    Serve para percorrermos as tabelas internas, permitindo que registro a registro possam ser lidos e atualizados na header line fazendo com que esse possa ser manipulado.

    A instruo de loop LOOP AT .. ENDLOOP permite processar mltiplas entradas de tabela interna. Cada vez que a instruo executada no loop, o sistema coloca a prxima entrada da tabela na rea de trabalho especificada no campo INTO.

    O comando LOOP permite acessar as entradas da tabela interna atravs de ndice e de chaves.

    Ao acessar atravs de chaves, recomenda-se restringir o numero de entradas ou linhas a serem lidas com a clausula WHERE, exatamente como se faz com um comando SELECT.

    Sintaxe bsica:

    LOOP itab where campo = varivel. .

    .

    .

    ENDLOOP.

    Exerccio: 01 Dar LOOP nas tabelas internas criadas nos exerccios passados e debugar. 02 Dar LOOP com condies. (EX: Salrio do professor maior que R$1000,00).

  • Material de treinamento Conceitos ABAP

    41

    03 Dar LOOP na sada de resultados e s imprimir se salrio R$1000,00.

    IF, ELSE, ENDIF:

    Estrutura condicional usada para desviarmos o curso da programao TOP-DOWN.

    Sintaxe bsica:

    IF condiao1. Seqncia de comandos X .

    ELSE. Seqncia de comandos Y .

    ENDIF.

    A seqncia de comandos X ser executada caso a condio 1 seja verdadeira. Se a condio 1 for falsa somente a seqncia Y ser executada.

    Exerccio: 01 Criar um novo REPORT onde:

    Tela de seleo com Cdigo do aluno (obrigatrio), nome do aluno e sexo do aluno (usar a tabela ZTALUNOS como referncia).

    O relatrio dever ter no mximo 80 colunas .

    Mudar a descrio de tela dos parmetros utilizados para que fiquem com a aparncia do cabealho abaixo.

    O programa dever gravar em tabela interna todo o contedo da tela de seleo e apresentar como resultado de tela a seguinte listagem:

    Cd. Do aluno

    Nome do aluno

    Sexo

    Na tela de sada o programa deve verificar o sexo do aluno (se = M ou F) e preencher no campo de sada Sexo o texto varivel: MASCULINO ou FEMININO.

  • Material de treinamento Conceitos ABAP

    42

    Se o cdigo do aluno for igual a 000 o programa imprimir na tela de sada a constante: TRMINO DA LISTAGEM com o fundo em AMARELO.

    ATENO:

    01 Adicionalmente podemos incluir um TOP-OF-PAGE com os seguintes dados: ACADEMIA ABAP 2006 DATA DD/MM/AAAA HORA: HH:MM:SS

    02 os campos da tabela SYST contm valores referentes ao sistema, como hora, data, cdigo de transao que est sendo executada, cdigo de retorno de comandos (sy-subrc).

    03 Inserir na tabela interna ao menos 3 registros (1 via parameters 2 via MOVE/APPEND.

    CASE:

    Instruo condicional que permite diferenciao de caso. Exemplo:

    CASE sy-ucomm. Verifica o valor da varivel WHEN INC. Executa se o usurio clicar no boto incluir PERFORM incluir.

    WHEN CANC OR VOLT. Executa se clicar no boto cancelar SET SCREEN O. WHEN OTHERS. Executa quando for escolhida outra opo Instrues ENDCASE.

    INSERT.

    Adiciona novas linhas a uma tabela de dados. Grava fisicamente registros em tabelas transparentes. Se os dados da chave da tabela estiverem duplicados os registros na sero gravados -> SY-SUBRC = 4.

    Sintaxe bsica:

  • Material de treinamento Conceitos ABAP

    43

    INSERT dbtable FROM itab. Adiciona os dados de uma tabela interna em uma tabela de banco de dados.

    INSERT dbtable. Adiciona 1 registro na tabela de banco de dados.

    IMPORTANTE: Confirmar com SY-SUBRC = 0 e dar COMMIT WORK.

    Exerccio: 01 Utilizando o exerccio anterior realizar a gravao dos dados da tabela interna e aps a gravao exibir uma mensagem do tipo I (informao) dizendo se o registro corrente foi gravado ou no.

    SORT.

    O Comando SORT realiza uma organizao da tabela interna conforme a ordem declarada em sua sintaxe.

    Para ordenar uma tabela interna, deve-se usar a instruo SORT. As adies BY e ASCENDING ou DESCENDING permitem restringir a ordenao a campos especficos e determinar a seqncia e a hierarquia da ordenao.

    Campos texto podem ser ordenados por idioma utilizando o suplemento AS TEXT.

    DATA: itab_aluno TYPE TABLE OF ztaluno.

    SELECT * FROM ztalunoi INTO TABLE itab_aluno. SORT itab_aluno BY nomeal ASCENDING dtnasc DESCENDING.

    Sintaxe bsica:

    SORT itab BY campo1 campo2 campon. SORT itab DESCENDING BY campo1 campo2 campon.

    Exerccio: 01 utilizar o exerccio anterior e exibir a sada do relatrio organizando por nome do aluno e sexo -> ASCENDING e DESCENDING.

  • Material de treinamento Conceitos ABAP

    44

    MODIFY.

    Realiza alteraes de gravao em um registro de uma tabela interna.

    Insere registros em tabelas de banco de dados, se o registro j existir um UPDATE executado automaticamente nesse registro.

    Sintaxe bsica:

    MODIFY dbtable. MODIFY dttable FROM itab.

    MODIFY itab INDEX n TRANSPORTING c1 c2 cn. MODIFY itab transporting c1 c2 cn WHERE condio.

    Exerccio: 01 Com o exerccio anterior alterar todos os nomes dos alunos para a constante JOS DA SILVA.

    DELETE.

    Deleta registros de uma tabela interna. Deleta registros de uma tabela do BD.

    Sintaxe bsica:

    DELETE FROM dbtable WHERE condio.

    DELETE itab WHERE condio.

    DELETE ADJACENT DUPLICATES FROM itab.

    CLEAR:

    A instruo CLEAR utilizada para restaurar o contedo de um objeto de dados ao seu valor inicial, de acordo com a sua categoria.

    Considerando que as entradas da tabela interna so sempre de uma nica categoria, suficiente uma instruo CLEAR para eliminar toda a tabela ou os valores em sua header line.

  • Material de treinamento Conceitos ABAP

    45

    Sintaxe bsica:

    CLEAR itab. CLEAR itab[]. CLEAR wa.

    INCLUDE :

    So incluses no programa cuja finalidade chamar um sub-programa. Criada uma determinada include esta pode ser utilizada por diversos programas ao mesmo tempo bastando que para isso ela seja declarada no corpo do programa:

    INCLUDE zi_0001.

    Onde zi_0001 -> Include no Standard (criada por programador).

    INCLUDE

    Onde se refere a includes pr-definidas no SAP e que podem ser utilizadas como bibliotecas.

    A declarao da include comumente feita no incio do programa aps a declarao de TABLES.

    IMPORTANTE: Exibir a transao icon e explicar que podemos exibir em lista de sada esses cones com WRITE nome_do_cone AS ICON.

    Exerccio:

    01 - Retirar do programa principal todas as declaraes de tabelas internas e variveis e coloc-las dentro de uma include criada pelo aluno.

    Exerccio (DELETE + CONES):

    01 Deletar da tabela interna ZPROFESSOR os registros que o campo NOME estejam vazios. 02 Deletar da tabela transparente ZTPROFESSOR todos os registros que SALRIO = 0.

  • Material de treinamento Conceitos ABAP

    46

    03 Criar um report baseado na tabela ZTPROFESSOR onde a tela de seleo dever conter os seguintes campos:

    CDIGO DO PROFESSOR NOME DO PROFESSOR SALRIO MOEDA

    Com cdigo do professor obrigatrio.

    Incluir ao menos 4 registros na tabela interna de professor.

    Para todos os registros da tabela interna:

    Apagar da tabela transparente todos os registros onde SALRIO = vazio .

    Para cada registro da tabela interna:

    Se NOME DO PROFESSOR = vazio -> Alterar o campo da tabela interna para a constante NO INFORMADO, essa informao dever aparecer na tela de sada com a letra VERMELHA e fundo NORMAL.

    Gravar fisicamente o registro corrente na tabela transparente de professores e :

    Caso o registro seja gravado com sucesso acrescentar 1 a um contador de acerto (varivel do tipo I).

    Caso o registro no seja gravado com sucesso acrescentar 1 a um contador de erro (varivel do tipo I).

    ATENO: Funo para obteno do nome do dia da semana: RH_GET_DATE_DAYNAME

    LAY-OUT DE SADA:

    Academia ABAP 2006 PROCWORK Software Data: DD/MM/AA Quarta feira. Hora: HH:MM:SS Usurio : Login

  • Material de treinamento Conceitos ABAP

    47

    Cd. Professor

    Nome

    Salrio

    Moeda

    _______________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    As 3 ltimas linhas do relatrio trar a informao:

    INFORMAO.

    - Nmero de registros gravados com sucesso: XX. - Nmero de registros com erro : XX.

    UPDATE:

    Sobrescreve o contedo de campos na tabela transparente. Usado para alterar o contedo de um ou mais campos especficos de acordo com condies ou tabela interna.

    UPDATE dbtab SET f1 ... fn WHERE condio. UPDATE dbtab FROM TABLE itab.

    Mostrar um exemplo de UPDATE num dos programas exemplo.

    CONCATENATE:

    Concatenar string ou pedao de string em variveis do tipo texto (char).

    Exemplo: Data: v_nome(15) type c value JooMariaJose. Data: v_concatenado(40) type c.

    Concatenate v_nome+04(05) mulher do v_nome(04) irm do v_nome+09(04) into v_concatenado separated by space.

    String v_concatenado ficar: Maria mulher do Joo irm do Jos

  • Material de treinamento Conceitos ABAP

    48

    WS_UPLOAD e WS_DOWNLOAD:

    WS_UPLOAD:Funo Standard do SAP. Tem por finalidade carregar para tabela interna o contedo de um arquivo gravado localmente na estao de trabalho. Esse arquivo deve obedecer uma formatao que possa ser lida e jogada nos campos da tabela interna.

    Utilizar arquivo c:\teste.txt de exemplo.

    Exemplo de utilizao:

    DATA: v_salario TYPE p DECIMALS 2.

    DATA: BEGIN OF itab_prof OCCURS 0, mandt LIKE zprof-mandt, codprof LIKE zprof-codprof, nomeprof LIKE zprof-nomeprof, dtnasc LIKE zprof-dtnasc, salario(13) TYPE c, waers LIKE zprof-waers, END OF itab_prof.

    CALL FUNCTION 'WS_UPLOAD' EXPORTING filename = 'c:\teste.txt' FILETYPE = 'ASC' tables data_tab = itab_prof EXCEPTIONS FILE_OPEN_ERROR = 1 FILE_READ_ERROR = 2 NO_BATCH = 3 GUI_REFUSE_FILETRANSFER = 4 INVALID_TYPE = 5 NO_AUTHORITY = 6 UNKNOWN_ERROR = 7 BAD_DATA_FORMAT = 8 HEADER_NOT_ALLOWED = 9 SEPARATOR_NOT_ALLOWED = 10 HEADER_TOO_LONG = 11 UNKNOWN_DP_ERROR = 12 ACCESS_DENIED = 13 DP_OUT_OF_MEMORY = 14 DISK_FULL = 15 DP_TIMEOUT = 16 OTHERS = 17.

    LOOP AT itab_prof. MOVE: itab_prof-mandt TO zprof-mandt, itab_prof-codprof TO zprof-codprof, itab_prof-nomeprof TO zprof-nomeprof, itab_prof-dtnasc TO zprof-dtnasc,

  • Material de treinamento Conceitos ABAP

    49

    itab_prof-waers TO zprof-waers, itab_prof-salario TO v_salario, v_salario TO zprof-salario. INSERT zprof. ENDLOOP.

    WS_DOWNLOAD: Funo Standard do SAP. Tem por finalidade gravar na estao de trabalho um arquivo com os dados de uma tabela interna.

    Exemplo de utilizao:

    CALL FUNCTION 'WS_DOWNLOAD' EXPORTING filename = 'c:\teste.txt' filetype = 'ASC' * IMPORTING * FILELENGTH = TABLES data_tab = itab_prof EXCEPTIONS file_open_error = 1 file_write_error = 2 invalid_filesize = 3 invalid_type = 4 no_batch = 5 unknown_error = 6 invalid_table_width = 7 gui_refuse_filetransfer = 8 customer_error = 9 OTHERS = 10.

    Exerccio: 01 Apagar o contedo das tabelas ZTALUNO, ZTCLASSE e ZTPROF

    utilizando DELETE. 02 Carregar as tabelas internas de alunos, professores e classe com os

    arquivos texto correspondentes. 03 Carregar as tabelas transparentes de alunos, professores e classe

    com as tabelas inernas. 04 Com uma das trs tabelas internas carregadas utilizar a funo

    WS_DOWNLOAD e gravar o arquivo com a nomenclatura C:\saida_ddmmaaaa_hhmmss.txt

    WORK REA: Assim como a declarao tables, podemos criar uma rea de memria para uma estrutura de dados declarada na qual podemos manipular dados de cabealho, no podendo portanto armazenar mais do que uma linha de informao.

  • Material de treinamento Conceitos ABAP

    50

    Essa estrutura pode ser definida campo a campo ou fazendo-se referncia a tabelas transparente, tabelas internas ou estruturas.

    SELECT:

    Utilizado para preenchimento de dados em memria para podermos trabalhar com informaes gravadas em tabela.

    SELECT FROM INTO WHERE .

    - conjunto dos campos a serem selecionados - tabela transparente ou viso de consulta - Estrutura de destino, em memria - caso queira, condies de seleo

    Variaes

    SELECT SINGLE leitura de um nico registro.

    Para uma melhor performance, necessrio a apresentao da chave primria completa na clusula WHERE.

    INTO - destino work area, registro, estrutura; INTO (f1, f2,...,fn) destino, campos especficos; INTO CORRESPONDING FIELDS OF - destino, campos correspondente de um determinada estrutura. A comparao se d pelo nome das colunas; INTO TABLE - destino, para uma tabela interna; INTO CORRESPONDING FIELDS OF TABLE - destino, campos com mesmos nomes de uma determinada tabela interna;

    SELECT....ENDSELECT leitura de mltiplas linhas;

    Para esta situao no poderemos utilizar como adicionais do cdigo: SELECT SINGLE, INTO TABLE e INTO CORRESPONDING FIELD OF TABLE; gerado um SELECT-Loop para o pocesso.(Vide FETCH);

  • Material de treinamento Conceitos ABAP

    51

    SELECT....FROM...INTO....FOR ALL ENTRIES IN ...WHERE.... EQ -.

    FOR ALL ENTRIES restrio de seleo com base em tab. Interna preenchida anteriormente; Obrigatrio a apresentao de comparaes dos campos da tab. Interna na clusula WHERE; IMPORTANTE: CASO A TABELA INTERNA DE COMPARAO ESTEJA VAZIA, TODOS OS REGISTRO IRRESTRITAMENTE SERO CARREGADOS

    SELECT......UP to ROWS

    Seleo de dados com restrio de ocorrncias; pode ser fixo ou varivel; Vises

    SELECT ~ ~ FROM INNER JOIN ON ~ EQ ~ INTO ...WHERE...

    e tabelas a se relacionarem; INNER JOIN condio para somente os egistros relacionados; ON condio da relao; INTO e WHERE mesmo critrio da forma bsica;

    Exerccio:

    01 Selecionar todos os dados das 3 tabelas (professores, alunos e classe) e armazenar em tabela interna. 01.01 Exibir um relatrio com a sada (formatada campo a campo) com o contedo de todas as 3 tabelas internas carregadas.

    LAY-OUT:

    TABELA DE ALUNOS:

    Todos os campos menos o mandante.

  • Material de treinamento Conceitos ABAP

    52

    TABELA DE PROFESSORES:

    Todos os campos menos o mandante.

    TABELA DE PROFESSORES:

    Todos os campos menos o mandante.

    02 Criar o parmetro de tela: Cdigo do aluno. Selecionar na tabela aluno o nome do aluno a data de nascimento e a classe do aluno onde CODAL = Cdigo do aluno e armazenar numa WORK REA. 02.01 Selecionar da tabela de classe o cdigo do professor e a sala onde CLASSE = classe do aluno e armazenar numa WORK AREA. 02.03 Selecionar da tabela de professores o nome do professor onde CODPROF = cdigo do professor. 02.04 A sada dos dados deve ser apresentada da seguinte maneira:

    LAY-OUT:

    CDIGO DO ALUNO: XXXX. NOME DO ALUNO: XXXXXXXXXXXXXXXXXX.

    03 Criar um parmetro de seleo de tela Cdigo do Professor. Selecionar o nome do professor da tabela ZTPROFESSOR e armazenar numa WORK AREA. 03.01 Com o cdigo de professor selecionar os campos classe e sala da tabela ZCLASSE (todos os registros encontrados) e armazenar numa tabela interna. 03.02 Para todas as entradas da tabela interna de classe selecionar o nome do aluno e sexo da tabela ZTALUNOS onde CLASSE = classe da tabela de classe. 03.03 A sada dos dados deve ser apresentada da seguinte maneira:

    LAY-OUT:

    CDIGO DO PROFESSOR: XXXX. NOME DO PROFESSOR: XXXXXXXXXXXXXXXXXXXX.

    Sala de aula

    Cd. do professor Nome do professor

    Classe Sala Nome do aluno Sexo

  • Material de treinamento Conceitos ABAP

    53

    TOTAL DA LISTAGEM: XX

    SUBMIT:

    Comando utilizado para chamarmos reports externos ao programa atualmente executado.

    Sintaxe bsica:

    SUBMIT report.

    EXPORT IMPORT:

    Comandos utilizados para transferncia de dados entre programas. Basicamente podemos jogar em memria e recuperar informaes relevantes que podem ser usadas em outros programas ou exits. Podemos passar para memria dados como valores de variveis. work reas e tabelas internas atravs do comando EXPORT e recuperar eses dados em um determinado ponto com o comando IMPORT.

    Sintaxe bsica: EXPORT work_area to memory id MEM1. EXPORT varivel to memory id MEM2.

    Onde MEM1 e MEN2 so nomes qualquer dados por ns que se referenciaro automaticamente como endereos de memria no R/3.

    EXPORT itab TO DATABASE(01) id MEM1.

    Onde 01 um ndice numrico sequencial dados por ns e MEM1 um nome qualquer dados por ns.

    Por sua vez o IMPORT faz o commando contrrio, ou seja, busca da memria os dados passados pelo EXPORT:

    IMPORT work_area from memory id MEM1. IMPORT varivel from memory id MEM2.

    IMPORT itab from database(01) id MEM1.

  • Material de treinamento Conceitos ABAP

    54

    READ TABLE:

    Comando utilizado para procura de uma nica ocorrncia dentro de uma tabela interna. Podemos utiliz-lo dentro de LOOP para procura dinmica dentro de cada lao.

    No suporta AND e OR.

    A instruo READ TABLE deve ser utilizadas para ler entradas individuais da tabela. Todas as entradas de tabela lidas so colocadas na header line.

    Com o comando READ o usurio pode acessar as entradas da tabela interna atravs do ndice e das chaves.

    Sintaxe bsica:

    READ TABLE itab1 WITH KEY campo1 = itab_2-campo1 campo2 = itab_2-campo2 campo3 = 001 .

    A adio BINARY SEARCH realiza uma procura mais rpida e utiliza pesquisa binria, para funcionar corretamente a tabela deve estar sorteada pela chave completa. Caso no seja usada essa clusula a procura se torna linear.

    READ TABLE itab1 INDEX n.

    Onde INDEX n aponta para o nmero do registro que queremos ler dentro da itab.

    ATENO: Devemos sempre testar o retunr code (SY-SUBRC) aps a utilizao do comando READ TABLE.

    Exerccio:

    01 Incluir um SELECT-OPTIONS na tela com o campo cdigo da classe da tabela ZTCLASSE (SO_CLASSE).

    01.01 Selecionar CLASSE e CDIGO DO PROFESSOR da tabela ZCLASSE onde CLASSE =