slides curso abap

Upload: derik-macedo

Post on 04-Jun-2018

269 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Slides Curso ABAP

    1/153

    Marcelo Pereira de [email protected]

    ABAP

    Curso de Introduo Linguagem

    De Programao ABAP

  • 8/13/2019 Slides Curso ABAP

    2/153

    CONTEDO PROGRAMTICO

  • 8/13/2019 Slides Curso ABAP

    3/153

    CONTEDO PROGRAMTICO

    Captulo 1Introduo

    Captulo 2Dicionrio de dados

    Captulo 3Introduo linguagem ABAP

    Captulo 4Conceito de Procedures, funo e includes

    Captulo 5SQL Captulo 6Programas On-line

    Captulo 7Listas e ALV

    Captulo 8Conceito de Batch-input e Bapis

    Captulo 9Debug

  • 8/13/2019 Slides Curso ABAP

    4/153

    Captulo 1

    INTRODUO

  • 8/13/2019 Slides Curso ABAP

    5/153

    Captulo 1 - introduo

    Conceito do SAP

    O que so transaes no SAP

    Instncia X Client ( Dependent/Independent)

    Conceito de classe de desenvolvimento

    Controlando e administrando transportes - Request Worbench Organizer

  • 8/13/2019 Slides Curso ABAP

    6/153

    Conceito do SAP

    um conjunto integrado de aplicativos projetado para tratar o processamentode dados em grandes corporaes. Ele foi desenvolvido na Alemanha pelaempresa denominada SAP {uma sigla de Systems Applications and Products for

    data processing - aplicativos e produtos de sistemas para processamento dedados).

    Dentro do SAP , h um ambiente de tempo de execuo e um conjuntointegrado de programas aplicativos escritos em 4GL do SAP - ABAP/4. Esses

    programas aplicativos foram projetados para atender ao processamento dedados necessrios para o negcio.

    O que ?

  • 8/13/2019 Slides Curso ABAP

    7/153

    Conceito do SAP

    ABAP/4 (Advanced Business Application Programming 4GL) uma linguagem"orientada por eventos", "Top-Down, bem estruturada e poderosa.

  • 8/13/2019 Slides Curso ABAP

    8/153

    O que so transaes no SAP

    Transao um cdigo alfanumrico de 20 caracteres, utilizado parainiciar um processamento dentro do sistema SAP. Todo e qualquerprocesso ou parte dele deve ser executado dentro do sistema atravs deuma transao. A customizao de ABAP/4, sempre utilizada paranecessidade de um GAP ( procedimentos operacionais que no constam

    no SAP e que exigem adaptaes ), isso gera pelo menos uma transao,de modo que o usurio possa executar esse produto customizado dedentro do sistema.

    Toda operao realizada atravs do menu do sistema, tambmcorresponde a uma transao. Um mtodo para conhecermos o cdigo deuma transao, cujo caminho pelo menu sabido, entrarmos na mesma,na tela inicial desta transao e utilizarmos o menu SISTEMA STATUS,que informa o programa, tela e transao executados.

  • 8/13/2019 Slides Curso ABAP

    9/153

    O que so transaes no SAP

    No desenvolvimento em ABAP/4, as principais transaes so:

    ABAP Editor (SE38) para escrita e edio de programas, mais utilizadopara desenvolvimentos de programas do tipo executvel (Relatrios eCargas).

    ABAP Dictionary (SE11) para edio de objetos relacionados com obanco de dados.

    Menu Painter (SE41) para desenho de interfaces de usurio (barra de

    menu).

  • 8/13/2019 Slides Curso ABAP

    10/153

    O que so transaes no SAP

    Screen Painter (SE51)para desenho de telas para dilogo de usurio,

    no utilizado para telas de seleo em report.

    Function Builder(SE37)para programao de mdulos de funes.

    Repository Browser (SE80) integra todas as ferramentas do ABAPWorkbench, muito utilizado para criao de programas do tipo on-line oumodule pool, pois, facilita e muito a visualizao de todos os objetos emuma mesma tela. Todo objeto do ABAP Workbench pode ser editadonessa transao e de uma forma bem mais organizada.

  • 8/13/2019 Slides Curso ABAP

    11/153

  • 8/13/2019 Slides Curso ABAP

    12/153

    Instncia X Client ( Dependent/Independent)

    Ex: Cdigo Fonte IndependentTelas,Menus e funes IndependentEstrutura de tabelas,elementos e domnios - IndependentRegistros de dados em tabela - DependentFormulrio SapScript - Dependent

  • 8/13/2019 Slides Curso ABAP

    13/153

    Conceito de classe de desenvolvimento

    Classe de desenvolvimento (Pacotes)

    So importantes para transporte entre sistemas de produo, qualidade edesenvolvimento.

    As classes tambm so importantes para combinar todos os objetos

    pertencentes a um determinado desenvolvimento, como por exemplo: ZBC0 Classe de desenv.para Basis

    ZCO_DES Classe para objetos de CO

    ZFI_DES Classe para objetos de FI

  • 8/13/2019 Slides Curso ABAP

    14/153

    Controlando e administrando transportes

    Request

    Guarda as modificaes ou customizaes feitas e que se desejatransportar para um determinado ambiente. Uma vez liberada a ordem de

    transporte mantm as alteraes feitas at aquele momento. Novasalteraes/customizaes no mesmo lugar iro solicitar nova ordem detransporte.

    Ex : AF1K900109

    AF1Instncia

    KGerao de arquivo de controle (Interno SAP)900109 - Sequncial

  • 8/13/2019 Slides Curso ABAP

    15/153

    Worbench Organizer

    Esta transao pemite controlar as ordens (requests) geradas atravs dasalteraes feitas nos objetos ABAP e customizaes funcionais.

    Ordem Local : Alteraes no transportveis para objetos ABAP/4 so

    gravadas em ordens locais.

    Ordens Transportveis : Alteraes transportveis para objetos do ABAP/4.

    Isto permite que as ordens possam ser transportadas entre clients.

    Transaes importantes :

    SE09/SE10Permite verificar as ordens de objetos client independent edependent criados por um usurio.

  • 8/13/2019 Slides Curso ABAP

    16/153

    Captulo 2

    DICIONRIO DE DADOS

  • 8/13/2019 Slides Curso ABAP

    17/153

    Captulo 2Dicionrio de dados

    Conceito de banco de dados relacionais.

    Tipo de dados do dicionrio ABAP.

    Conceito de domnio, elemento de dados.

    Criao de tabelas transparentes, estruturas e view.

    Criao de ndices primrios e secundrios. Criao de dilogo de manuteno.

  • 8/13/2019 Slides Curso ABAP

    18/153

    Conceito de banco de dados relacionais

    Modelo de Entidade e Relacionamento

    Modelo desenvolvido para facilitar o projeto de banco de dados,permitindo a especificao de um esquema que represente a estruturalgica global de um banco de dados.

    Entidade: um objeto que existe e distinguvel de outros objetos, ouseja, identifica o agrupamento de objetos do mesmo tipo. Exemplos:Clientes, Bancos, Agncias, Contas-corrente.

    Atributos: So os qualificadores de uma entidade, isto , representam nomodelo o que uma entidade pretende ser. Exemplos: Nome, RG, CPF,Endereo, Nmero conta, Nmero agncia, Nmero banco.

  • 8/13/2019 Slides Curso ABAP

    19/153

    Conceito de banco de dados relacionais

    Domnio: Conjunto de valores permissveis para um atributo. Exemplo:(Casado,Solteiro e Etc ).

    Relacionamento: a associao entre duas entidades, ou seja, representa

    a maneira como duas entidades esto relacionadas ou ligadas. Exemplos:Conta-corrente de um Cliente, Agncias de um Banco, Contas-Corrente deuma Agncia.

    Restries de Mapeamento: Representam o modo como as diferentes

    entidades de um modelo se relacionam. Determinadas pela cardinalidadedos relacionamentos entre as entidades.

  • 8/13/2019 Slides Curso ABAP

    20/153

    Conceito de banco de dados relacionais

    Um-para-Um: Uma ocorrncia da entidade A est relacionada com uma eapenas uma ocorrncia da entidade B.

    Um-para-N: Uma ocorrncia da entidade A est relacionada com uma ouvrias ocorrncias da entidade B.

    EX : MARCA X CARRO

    N-par-N: Vrias ocorrncias da entidade A esto relacionadas com vriasocorrncias da entidade B.

    EX : FORNECEDOR X PRODUTO

  • 8/13/2019 Slides Curso ABAP

    21/153

    Conceito de banco de dados relacionais

    Modelo RelacionalUm banco de dados relacional a implementao fsica do modeloentidade-relacionamento e traduz concretamente o que o modeloconceitual procura representar. Consiste em uma coleo de tabelas cada

    uma das quais associada a um nome nico e que possuemrelacionamentos entre si. Tabelas representam fisicamente as entidades.

    Cada tabela possui uma estrutura similar quilo que pretenderepresentar, isto , tabelas so formadas de linhas que por sua vez so

    formadas por colunas. Colunas representam fisicamente os atributos.A cada linha da tabela chamaremos de ocorrncia e o conjunto deocorrncias pode ou no estar relacionado com ocorrncias de outrastabelas.

  • 8/13/2019 Slides Curso ABAP

    22/153

    Conceito de banco de dados relacionais

    Como distinguir as ocorrncias umas das outras?

    Utilizando o conceito de chave primria.

    Chave Primria: Conjunto de atributos que garante a unicidade de cada

    ocorrncia da tabela. Exemplos: RG, CPF, Nmero do Chassis.Normalizao: Processo de reconhecimento da chave primria.

    Como representar os relacionamentos entre tabelas?

    Transferindo a chave primria de uma tabela para a outra.

    Chave Estrangeira: Quando a chave primria de uma tabela um atributoem outra(s) tabela(s).

  • 8/13/2019 Slides Curso ABAP

    23/153

    Tipo de dados do dicionrio ABAP

    O dicionrio ABAP (Transao SE11) permite a administrao central detodas as definies de dados do R/3, permitindo a criao de tipos dedados definidos pelo usurio para uso posterior, alm de vrios itensauxiliares ao desenvolvimento de programas ( p.ex: search helps ).

    Podem ser definidas tabelas e vises dentro do dicionrio. O R/3 seencarrega, durante a ativao desses elementos, de cri-los no banco dedados. O dicionrio permite, ainda, a criao de ndices, que agilizam asbuscas. A definio de ndices apropriados de suma importncia para obom desempenho do sistema. Cabe lembrar que uma busca sem ndicerealizada em um tabela extensa pode ter pesado custo em termos deperformance.

  • 8/13/2019 Slides Curso ABAP

    24/153

    Tipo de dados do dicionrio ABAP

    As definies de tipos de dados dentro do R/3 incluem os elementosde dados, que definem um tipo elementar descrevendo o tipo bsico dedados, o comprimento e, eventualmente, as casas decimais; as estruturas,que podem receber elementos de vrios tipos (semelhante representao de um registro numa tabela); e as estruturas append, que

    seriam camposem formato de tabela.

    Por exemplo, uma estrutura do registro de uma estrutura de usurioque tivesse um campo para nmeros de telefone poderia usar um tabletype e permitir colocar vrios nmeros num mesmo campo.

  • 8/13/2019 Slides Curso ABAP

    25/153

    Tipo de dados do dicionrio ABAP

    Alm dessas definies, o dicionrio ABAP permite criar os searchhelps, que so tabelas de busca auxiliares aos campos de tela so asbuscas e tabelas que aparecem quando se tecla F4 dentro de um campoem qualquer tela do R/3.

    Criando documentao para o elemento de dados dentro dodicionrio, automaticamente est disponvel a ajuda do campo, que podeser invocada usando-se a tela F1 dentro dos campos de tela. Pode-se,ainda, definir verificaes de entrada automaticamente, bastando definiruma relao de foreign key.

    No dicionrio tambm so criados os objetos de lock, que permitemdefinir o travamento de dados dentro do R/3. Por exemplo, podem-sedefinir objetos de lock para impedir que dois usurios editem a mesmainformao ao mesmo tempo no sistema.

  • 8/13/2019 Slides Curso ABAP

    26/153

    Tipo de dados do dicionrio ABAP

    O dicionrio integrado s ferramentas de desenvolvimento e execuodo R/3, permitindo o acesso das ferramentas s definies nele contidas.Por exemplo, possvel navegar de um programa que esteja sendo criadono editor ABAP para definies de campos, elementos e tabelas usadas noprograma.

    Tipos de Dados

    ICampos numricos sem decimais, contadores, etc.

    PCampos numricos com decimais, quantidade e moeda.

    C Campo alfa, mais utilizado para conter textos, pode conter nmeros atefetuar clculos, mas no usual.

  • 8/13/2019 Slides Curso ABAP

    27/153

    Tipo de dados do dicionrio ABAP

    N Campo alfa, utilizado para conter nmeros sem decimais e preenchidoscom zeros esquerda.

    DCampo data, armazenado no banco de dados no formato AAAAMMDD,

    permite-se fazer contas do tipo 20041201+ 31 = 20050101.

    TCampo hora, armazenado no banco de dados no formato HHMMSS.

  • 8/13/2019 Slides Curso ABAP

    28/153

    Conceito de domnio, elemento de dados.

    Domnios

    O domnio contm os tipo de dado e comprimento do campo. Podemconter os valores vlidos para o campo, atravs de valores fixos entradosno domnio ou por uma tabela de valores (Value Table).

    Tabela de Valores

    Contm os valores que o domnio pode assumir.

    Elementos de dados.Os elementos de dados agrupam as definies de tipo, tamanho edescrio dos campos em um s objeto. til quando os campos serepetem em diversas tabelas.

  • 8/13/2019 Slides Curso ABAP

    29/153

    Criao de tabelas transparentes,estruturas e view.

    A definio de uma tabela consiste dos seguintescomponentes:

    Campos - Define o nome e o tipo dos campos da tabela.

    Chaves Estrangeiras( Check Table ) - define o relacionamento entre atabela e outras tabelas do sistema, usadas para manter a integridadedos dados no BD.

    Opes Tcnicas - controla como a tabela deve ser criada no Banco deDados.

    ndices - Para melhorar a performance nos acessos a tabela, pode-secriar ndices secundrios para ela.

  • 8/13/2019 Slides Curso ABAP

    30/153

    Criao de tabelas transparentes,estruturas e view.

    Ao se criar uma tabela ser necessrio informar :

    Campo: O nome do campo pode conter at 16 caracteres, devendocomear com uma letra.

    Flag-Chave: Indicativo para campos chave.

    Tipo: Tipo de dado do campo. Comprimento: Comprimento do campo.

    Casas Decimais: Nmero de casas decimais aps a vrgula.

    Texto Breve: Descrio breve do campo.

  • 8/13/2019 Slides Curso ABAP

    31/153

    Criao de tabelas transparentes,estruturas e view.

    Tabela Transparente

    Existe uma tabela fsica no banco de dados para uma tabelatransparente. Os nomes da tabela fsica e da definio lgica de tabela

    so coincidentes no ABAP Dictionary.Todos os dados empresariais e dados de aplicao so arquivados emtabelas transparentes.

  • 8/13/2019 Slides Curso ABAP

    32/153

    Criao de tabelas transparentes,estruturas e view.

    Estruturas

    So como tabelas que no armazenam dados, definem um conjunto decampos e geralmente so utilizadas para definir os dados na interface de

    pools de mdulos e telas, assim como para atribuir o tipo aos parmetrosde mdulos de funo. Uma estrutura diferentemente de uma tabela notem uma tabela de banco de dados associada a ela.

  • 8/13/2019 Slides Curso ABAP

    33/153

    Criao de tabelas transparentes,estruturas e view.

    VisesSo tabelas virtuais que resultam da unio de tabelas transparentes e quecontm uma certa quantidade de informaes.

    d d d

  • 8/13/2019 Slides Curso ABAP

    34/153

    Criao de ndices primrios e secundrios

    ndices

    Um ndice pode ser considerado como uma cpia da tabela que foireduzida a um certo nmero de campos. Esta cpia est sempre

    ordenada. A ordenao faz com que o acessos ao registros se tornemais rpido, o ndice tambm contm, um ponteiro para o registroreal na tabela transparente, para que os campos que no esto nondice tambm possam ser lidos.

    O ndice primrio separado dos ndices secundrios. O ndiceprimrio constitudo dos campos indicados como campo-chave nacriao da tabela.

  • 8/13/2019 Slides Curso ABAP

    35/153

    Criao de dilogo de manuteno

    Pode ser feita uma criao automtica de programa on-line paramanuteno de tabelas transparentes atravs da transao SE11. Paratanto basta seguir estes procedimentos :

    Informar o nome da tabela a ser alimentada.

    Clicar no menu utilitrios/Gerador de atualizao de tabelas.

    Informar grupo de funes

    Informar o grupo de autorizao

    Se a tabela contiver poucos campos, usar nvelnico,seno

    2 nveis.

    Clicar procurarnmero de tela. O sistema sugere os nmeros das

    telas.Deixar assim.

  • 8/13/2019 Slides Curso ABAP

    36/153

    Criao de dilogo de manuteno

    Gerar mdulo.

  • 8/13/2019 Slides Curso ABAP

    37/153

    Captulo 3

    INTRODUO LINGUAGEM ABAP

  • 8/13/2019 Slides Curso ABAP

    38/153

    Captulo 3Introduo linguagem ABAP

    Como funciona a transao SE38Editor ABAP.

    Blocos de eventos.

    Declarao de variveis, tabelas internas, ranges e constants.

    Definio de parmetros de entrada.

    Principais comandos ABAP. Executando um programa report.

    f d

  • 8/13/2019 Slides Curso ABAP

    39/153

    Como funciona a transao SE38Editor ABAP.

    Transao SE38.

    Permite a visualizao, edio e execuo de programas ABAP, bem

    como duplicao de um programa e deleo do mesmo, entre outros

    recursos.

    C f i t

  • 8/13/2019 Slides Curso ABAP

    40/153

    Como funciona a transaoSE38 Editor ABAP

    C f i

  • 8/13/2019 Slides Curso ABAP

    41/153

    Como funciona a transaoSE38Editor ABAP

    - Voltar, encerrar e cancelar.

    - Compilar e ativar.

    - Executar,ref.cruzada,anlise de ambiente e ajuda on-line.

    - Eliminar,copiar e renomear.

    - Criar o novo programa.

  • 8/13/2019 Slides Curso ABAP

    42/153

    Como funciona a transaoSE38Editor ABAP

    Texto fonteTexto principal do programa.Variantes Exibe as variantes gravadas p/execuo do

    programa.CaractersticasExibe as caractersticas do programa

    como classe de desenvolvimento,tipo do fonte (includes, executvel e etc).

    DocumentaoDocumentao simplificada doprograma.

    Elementos de textoTextos que sero utilizados paraexecuo do programa

    - Exibio do fonte e modificao do fonte.

  • 8/13/2019 Slides Curso ABAP

    43/153

    Como funciona a transaoSE38Editor ABAP

    -Imprimir fonte,localizar e localizar prxima.

    - Modificar, ativar desativar, outro objeto e ampliar.

    - Compilar, ativar,testar e ref.cruzada.

    - Lista de Objetos,janela de navegao, tela completa e ajuda.- Ponto de parada na sesso, ponto de parada externo,

    modelo e identao.

    - Recuar, recuperar,localizar,localizar prxima,

    upload e download.

    - Gravar o fonte.

    C f i t

  • 8/13/2019 Slides Curso ABAP

    44/153

    Como funciona a transaoSE38Editor ABAP

    - Controle de verso

  • 8/13/2019 Slides Curso ABAP

    45/153

    Como funciona a transaoSE38Editor ABAP

  • 8/13/2019 Slides Curso ABAP

    46/153

    Como funciona a transaoSE38Editor ABAP

    - Tipos de editor

  • 8/13/2019 Slides Curso ABAP

    47/153

    Blocos de eventos

    Eventos:

    Evento um Tag que identifica uma seo de cdigo. A seo de cdigo

    Associada com um evento comea com um nome de evento e termina

    quando o prximo encontrado.

    INITIALIZATIONEvento acionado antes da tela de seleo ser acionada.

    Seria uma preparao para executar o programa.

    Ex: inicializao de variveis de tela com condio.

    AT SELECTION SCREEN Evento processado depois da entrada dousurio na tela de seleo ativa.Isso pode ser quando o usurio pressionauma tecla de funo ou d um clique em um boto.

    l d

  • 8/13/2019 Slides Curso ABAP

    48/153

    START-OF-SELECTION Evento onde executa o processamento principaldo programa.

    END-OF-SELECTIONEvento onde finaliza o processamento do programa.

    TOP-OF-PAGE (incio relatrio) Evento utilizado quando executado oprimeiro comando write.

    END-OF-PAGE (fim relatrio) - Evento utilizado no final do relatrio.

    AT USER-COMMAND (tratamento de botes)Evento para tratamento debotes.

    Blocos de eventos

    Blocos de e entos

  • 8/13/2019 Slides Curso ABAP

    49/153

    Blocos de eventos

    AT LINE-SELECTION O processamento das listas de detalhe dentro do R/3 feito pelo evento AT LINE-SELECTION. O R/3 executa os comando que houverdentro desse evento toda vez que o usurio clica duas vezes sobre uma linhaem uma lista ou clica sobre um campo marcado com HOTSPOT, ou teclando-seF2 sobre um registro, ou escolhendo um boto que tenha o cdigo standard

    PICKa ele associado.

    Blocos de eventos

  • 8/13/2019 Slides Curso ABAP

    50/153

    Blocos de eventos

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    51/153

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao : Locais e Globais.

    Locais:Essas declaraes so apenas vistas dentro da mesma sub-rotuna.So utilizadas no caso de processos individuais dentro do programa.

    Globais:Essas declaraes podem vistas de qualquer ponto no programa,seja dentro de um evento ou sub-rotina. boa a prtica decolocar definies globais na parte superior do programa.

    D l d i i t b l i t

  • 8/13/2019 Slides Curso ABAP

    52/153

    Declarao de variveis, tabelas internas,ranges e constants

    -Tipos de dados:

    D l d i i t b l i t

  • 8/13/2019 Slides Curso ABAP

    53/153

    Entre as formas de tipos de dados, as mais usadas no desenvolvimento deprogramas ABAP/4 so:

    Variveis : So declaradas para receber valores que so alterados durante aexecuo do programa.

    Contants : So declaradas quando existem valores que no so alteradosdurante a execuo do programa. A forma da declarao e o tipos de dadosseguem o mesmo padro das variveis.

    Ranges : Tabela interna com a mesma estrutura de um select-options, mas semconexo com uma tela de entrada.

    Declarao de variveis, tabelas internas,ranges e constants

    D l d i i t b l i t

  • 8/13/2019 Slides Curso ABAP

    54/153

    VariveisDATA: varname(n)TYPE _.

    DATA: varname LIKE varname2VALUE valor_default.

    Exemplo:

    DATA: w_contador TYPE I value 100.

    DATA: w_data LIKE sy-datum VALUE 20040106.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    55/153

    Constantes

    CONSTANTS: constname(n)TYPE _.

    CONSTANTS: constname(n)LIKE varname2VALUE valor_default.

    Exemplo:

    CONSTANTS: c_contador TYPE I value 100.

    CONSTANTS: c_data LIKE sy-datum VALUE 20040106.

    Declarao de variveis, tabelas internas,ranges e constants

  • 8/13/2019 Slides Curso ABAP

    56/153

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    57/153

    Tabelas Transparentes: So declaradas quando existem seleo, insero,alteraes e excluso de valores em tabelas.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    58/153

    Tabelas Transparentes:

    TABLES: tabbanco, tab1, tab2, tab3,...tabn.

    Exemplo:TABLES: LFA1, EKKO.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    59/153

    Tabela Interna : Uma tabela interna consiste em uma srie de linhas domesmo tipo de dados. Os dados so armazenados linha a linha na memria, ecada linha tem a mesma estrutura.

    Deve-se usar tabelas internas sempre que precisar usar registros de tabelas

    transparentes dentro do programa.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    60/153

    Tipos de tabelas internas :

    Standard table: Permite acesso sequncial aos dados;

    Sorted table: o tipo mais apropriado se voc precisa de uma tabela

    ordenada independente do seu preenchimento. No pode ser utilizar ocomando sort nesse tipo de tabela;

    Hashed table: As tabelas do tipo Hashed table so organizadas de acordocom a chave especificada e no permitem operaes utilizando o nmerosequncial dos registros. So mais adequadas a grande volume de dados.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    61/153

    Tabelas Internas:DATA: t_tab1TYPE tabinttipoOF estrutnameWITH HEADER LINE,

    t_tab2LIKE tabinttipoOF tab1 WITH HEADER LINE.

    Exemplo:DATA: T_TAB1 TYPE STANDARD TABLE OF TP_BANCO WITH HEADER LINE,

    T_TAB2 TYPE STANDARD TABLE OF LFA1 WITH HEADER LINE.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    62/153

    Estruturas:So modelos de tabelas sem dados. Esses modelos podem serutlizados com referncias para criao de tabelas internas, parmetros defuno e etc.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    63/153

    Estruturas

    TYPES: BEGIN OF,

    var1 TYPE _,

    var2 LIKE tab1-campo,

    .....

    END OF.

    TYPES BEGIN OF,.

    INCLUDE STRUCTURE.

    TYPES END OF,.

    Exemplo

    TYPES: BEGIN OF TP_BANCO

    numero TYPE N,

    agencia TYPE N,

    nome(30) TYPE C,

    END OF TP_BANCO.

    TYPES BEGIN OF FORNECEDOR.

    INCLUDE STRUCTURE LFA1.TYPES END OF FORNECEDOR.

    Declarao de variveis, tabelas internas,ranges e constants

    Declarao de variveis tabelas internas

  • 8/13/2019 Slides Curso ABAP

    64/153

    Registros

    TYPES: BEGIN OF,

    var1TYPE _,

    var2LIKE tab1-campo,

    .....

    END OF.

    DATA:T_TAB1TYPE.

    Exemplo

    TYPES: BEGIN OF TP_BANCO

    numero TYPE N,

    agencia TYPE N,

    nome(30) TYPE C,

    END OF TP_BANCO.

    DAtA: T_BANCO TYPE TP_BANCO.

    Declarao de variveis, tabelas internas,ranges e constants

    Definio de parmetros de entrada

  • 8/13/2019 Slides Curso ABAP

    65/153

    p

    Parmetros de entrada :Essa instruo muito parecida com a instruo data, mas quando voc executa oprograma, o sistema exiber os parmetros como campos de entrada em uma tela deseleo antes que o programa realmente comece a ser executado. O usurio pode digitarou modificar seus valores e ento pressionar o boto execute, para iniciar oprocessamento.

    PARAMETERS: uma forma de entrada de dados que o usurio poder escolher

    apenas 1 valor em cada execuo.

    SELECT-OPTIONS: Select-Options uma forma de entrada de dados que o usuriopoder escolher N valores em cada execuo. No parmetro SELECT-OPTIONSpodemos tambm definir faixas de dados, valores individuais, excluso de valoresindividuais, excluso de faixas e etc.

    CHECK-BOX : Esse parmetro utilizado para funcionalidades ligadas ou desligadas.No trabalha com grupo de seleo.

    RADIOBUTTON: Esse parmetro utilizado para funcionalidades ligadas ou desligadas,envolvendo vrias opes. Trabalha com grupo de seleo.

    Definio de parmetros de entrada

  • 8/13/2019 Slides Curso ABAP

    66/153

    p

    PARAMETERS:p_par1 TYPE __ ,

    p_par2 LIKE var1DEFAULT valor_default,

    p_par3 AS CHECKBOX ,

    p_par4 RADDIOBUTTON GROUP grpname

    OBLIGATORY.

    SELECTION-SCREEN:

    BEGIN OF BLOCK bl_nameWITH FRAME

    TITLE title_text.

    END OF BLOCK bl_name.

    BEGIN OF LINE.END OF LINE.

    COMMENTpos(dim) text

    POSITIONpos.

    Definio de parmetros de entrada

  • 8/13/2019 Slides Curso ABAP

    67/153

    SELECT-OPTIONS: s_par1 FOR campo1 ,

    NO-EXTENSION.

    NO INTERVALS.

    DEFAULT valor1TO valor2.

    OBLIGATORY.NO-DISPLAY.

    MEMORY IDmem.

    MATCHCODE OBJECT obj.

    p

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    68/153

    p

    Comando/Funo Descrio

    ADD Adiciona um valor a outro camponumrico

    APPEND Gravar em tabela interna

    APPEND LINES Gravar linhas em tabela interna

    APPEND SORTED BY Usado para classificar linhas emordem durante o append

    AT END OF Identifica o ultimo registro de umasequncia (quebra)

    AT EXIT-COMMAND Usado para definir a execuo de

    mdulos com botesAT FIRST Identifica o primeiro registro da

    tabela percorrida

    AT LAST Identifica o ultimo registro da tabelapercorrida

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    69/153

    p

    Comando/Funo Descrio

    AT LINE-SELECTION Evento para abrir uma segunda teladentro de um relatrio

    AT NEW Identifica o primeiro registro de umasequncia

    AT SELECTION-SCREEN ON Analisar o resultado de uma varivelAT USER-COMMAND Evento para inicializar os botes

    criados

    AUTHORITY-CHECK OBJECT Para verificar a autorizao paradeterminado objeto

    AS TEXT Usado para classificar caracteresacentuados

    ASSIGN f1 TO Atribuio dinmica

    AS SYMBOL / AS ICON / AS LINE Comandos usados para formataoem relatrios

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    70/153

    Comando/Funo Descrio

    CALL TRANSACTION Comando usado para chamartransaes

    CASE... WHEN... ENDCASE Comando para tomadas de deciso

    CHECK Substitui o comando IF

    CLEAR Limpar o contedo de uma varivelCLOSE DATASET Fecha um arquivo externo

    CLOSE_FORM Funo usada para fechar umformulrio sapscript

    COLLECT Organiza a tabela com todas as

    descries esquerda totalizando oscampos numricos

    COMMIT WORK Efetiva as alteraes no banco

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    71/153

    Comando/Funo Descrio

    CONCATENATE Agrupa vrios campos em um s

    CONSTANTS Criar constantes para serem usadasem todo o programa

    CONTINUE Volta ao incio de um loop aps a

    verificao de uma condioCONDENSE Remove os espaos em branco em

    um texto

    DATA Criar tabelas internas e variveis

    DELETE Deleta um registro de uma tabela

    internaDESCRIBE TABLE Determina o nmero de linhas de

    uma tabela interna

    DO... ENDDO Usado para criar um loop

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    72/153

    Comando/Funo Descrio

    GUI_DOWNLOAD Funo para download de arquivo

    END_FORM Funo usada para finalizar umformulrio sapscript

    END-OF-PAGE Evento executado ao finalizar a

    impresso de uma pginaEND-OF-SELECTION Evento executado logo aps o

    evento START-OF-SELECTION

    EXIT Comando usado para sair de umloop ou sub-rotina

    FORM Indica o incio de uma sub-rotinaFORMAT COLOR Usado para formatar a sada do

    comando write(COR)

    FREE Libera espao de memria utilizadopor uma tabela interna

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    73/153

    Comando/Funo Descrio

    HIDE Usado para definir campos para umasegunda janela em relatrios

    ID... FIELD... Objetos de autorizao

    IF... ELSE... ENDIF Comando de deciso

    IF NOT... IS INITIAL Verifica se uma varivel est vaziaINITIALIZATION Primeiro evento executado dentro de

    um programa

    INSERT Insere o contedo de um registro emuma tabela transparente

    INSERT LINES Insere mais de uma linha em umatabela transparente

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    74/153

    Comando/Funo Descrio

    LEAVE PROGRAM Comando encerra um programa

    LEAVE TO SCREEN Comando que direciona a ida de umatela para outra

    LINE-COUNT Limita o nmero de linhas por pgina

    LINE-SIZE Limita o nmero de colunas porpgina

    LOOP AT Loop no contedo de uma tabelainterna

    MESSAGE Usado para mostrar mensagens na

    telaMESSAGE-ID Usado para definir uma classe de

    mensagem

    MODIFY Modifica o contedo de uma linha databela interna

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    75/153

    Comando/Funo Descrio

    MODULE Usado para a criao de sub-rotinasem programas on-line

    MOVE Move o contedo de uma varivelpara outra

    MOVE-CORRESPONDING Move apenas campos com o mesmonome

    NEW-PAGE Fora quebra de pgina em umrelatrio

    NO STANDARD PAGE HEADING Ignora a impresso do cabealhostandard do SAP em relatrios

    OPEN DATASET Para abrir arquivo externo(somentepara UNIX)

    OPEN_FORM Funo para abrir formulriosapscript

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    76/153

    Comando/Funo Descrio

    PARAMETERS Criar parmetros de seleo

    PERFORM Usado para chamar sub-rotinas

    READ DATASET... INTO Usado para ler e importar dados deum arquivo externo (UNIX)

    READ TABLE Ler registro em tabela internaREFRESH Limpa todo o contedo de uma

    tabela interna

    REPLACE Substitui um texto dentro de outrotexto

    REPORT Incio de um relatrio(programa)SEARCH Procura um texto dentro de outro

    texto

    SELECT Usado para selecionar dados emuma tabela

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    77/153

    Comando/Funo Descrio

    SELECT-OPTIONS Declarar parmetros de seleo comopes

    SELECTION-SCREEN Criar BOX na tela

    SET PF-STATUS Comando usado para definir menu a

    ser usadoSET TITLEBAR Criar ttulos em janelas

    SKIP Saltar linha

    SORT Ordenar o contedo de uma tabelainterna

    SPLIT... AT... INTO Comando usado para separarcontedo de uma varivel e outra(s)

    START_FORM Funo para iniciar formulriosapscript

    START-OF-SELECTION Evento para marcar incio da rotina

    principal do programa

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    78/153

    Comando/Funo Descrio

    STRLEN Retorna o tamanho de um texto

    SUBTRACT Subtrai um valor numrico de outrovalor

    SUM Totaliza um campo numrico

    SY-BATCH Indica execuo em backgroundSY-DATUM Retorna a data atual do sistema

    SY-LANGU Retorna o idioma de logon

    SY-LINNO Linha corrente em um relatrio

    SY-LISEL Linha selecionada em relatriosinterativos

    SY-MANDT Retorna o mandante

    SY-PAGNO Faz paginao automtica(num.Pagina)

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    79/153

    Comando/Funo Descrio

    SY-SUBRC Retorna o resultado de umaexecuo(OK ou No OK)

    SY-TABIX Linha corrente de uma tabela interna

    SY-UCOMM Retorna o nome de um boto

    SY-UNAME Retorna o usurio logadoSY-UZEIT Retorna a hora atual do sistema

    SY-VLINE Serve para fazer o fechamento debordas de um relatrio

    SY-ULINE Imprime uma linha com n posies

    SY-CPROG Retorna o nome do programaprincipal

    SY-TCODE Retorna o cdigo da transao

    TABLES Usado para declarar tabelas

    Principais comandos ABAP

  • 8/13/2019 Slides Curso ABAP

    80/153

    Comando/Funo Descrio

    TOP-OF-PAGE Evento para incio de cabealho emum relatrio

    TRANSFER... TO... Usado para ler e gravar em arquivoexterno (UNIX)

    TYPES Define estrutura para tabelasinternas

    UPDATE Atualiza o contedo de uma tabelatransparente

    WHILE... ENDWHILE Cria laos de execuo

    WRITE Sada em relatrioWRITE_FORM Funo para escrever no formulrio

    sapscript

    WS_UPLOAD Funo para fazer upload de umarquivo externo

  • 8/13/2019 Slides Curso ABAP

    81/153

  • 8/13/2019 Slides Curso ABAP

    82/153

    Captulo 4

    CONCEITO DE PROCEDURES, FUNO EINCLUDES

    Conceito de Procedures, funo e includes

  • 8/13/2019 Slides Curso ABAP

    83/153

    Como criar uma procedure. Como criar um Include.

    Como criar uma mdulo de funo em ABAP.

    Testando a execuo de uma funo.

    Criando um report chamando procedures e funes.

    Conceito de Procedures, funo e includes

  • 8/13/2019 Slides Curso ABAP

    84/153

    Procedures: mdulos internos do programa, que possuem uma interface.Com uma declarao ABAP, possvel chamar um subprograma em umprograma, a partir de qualquer outro bloco de processamento.

    Mdulos de funo: mdulos com uma interface transparente, disponveisem todo o sistema. Esses mdulos podem ser chamados de qualquerbloco de processamento e em qualquer programa ABAP que utilize umadeclarao ABAP especial.

    Conceito de Procedures, funo e includes

  • 8/13/2019 Slides Curso ABAP

    85/153

    Procedures

    O bloco de processamento de um subprograma comea com 'FORM ' e termina com ' ... ENDFORM. ' .

    possvel utilizar a declarao DATA em uma rotina FORM para declararos dados locais. Se um objeto local tem o mesmo nome de um objetoglobal, o global ser invisvel dentro do subprograma.

    Conceito de Procedures, funo e includes

  • 8/13/2019 Slides Curso ABAP

    86/153

    - A interface definida da seguinte maneira:

    Aps USING, deve-se relacionar em uma lista todos os parmetros que osubprograma s precisa ler.

    Aps CHANGING, deve-se relacionar em uma lista todos os parmetrosque o subprograma vai modificar e cujos valores sero transferidos para oprograma de chamada.

    Aps TABLES, deve-se relacionar em uma lista todas as tabelas internas

    que ir modificar e cujos valores sero transferidos para o programaprincipal.

    Conceito de Procedures, funo e includes

  • 8/13/2019 Slides Curso ABAP

    87/153

    Exemplo :

    DATA sflight_tab TYPE STANDARD TABLE OF sflight.

    PARAMETERS: p_carr TYPE sflight-carrid,

    p_conn TYPE sflight-connid.

    PERFORM select_sflight TABLES sflight_tab

    USING p_carr p_conn.

    FORM select_sflight TABLES flight_tab LIKE sflight_tab

    USING f_carr TYPE sflight-carrid

    f_conn TYPE sflight-connid.

    SELECT *

    FROM sflight

    INTO TABLE flight_tab

    WHERE carrid = f_carr AND

    connid = f_conn.

    f_carr = BB.

    ENDFORM.

    Conceito de Procedures, funo e includes

  • 8/13/2019 Slides Curso ABAP

    88/153

    As rotinas FORM podem ser chamadas a partir de qualquer bloco deprocessamento ABAP por meio de PERFORM .

    O nmero de parmetros atuais deve ser igual ao de parmetros formais.

    No possvel ter parmetros opcionais. Os parmetros so atribudos naseqncia em que esto relacionados na lista.

    Quando um subprograma chamado com a declarao PERFORM, osistema verifica se os tipos dos parmetros atuais de PERFORM socompatveis com os parmetros formais.

    Conceito de Procedures, funo e includes

  • 8/13/2019 Slides Curso ABAP

    89/153

    Existe a possibilidade de omitir o tipo. Nesse caso, o parmetro formalherda o tipo do parmetro atual correspondente.

    Como criar um mdulo de funo em ABAP

  • 8/13/2019 Slides Curso ABAP

    90/153

    Exemplo :

    DATA: a1 TYPE string value 'a1',a2 TYPE string value 'a2',

    a3 TYPE string value 'a3',

    a4 TYPE string value 'a4'.

    PERFORM test USING a1 a2 a3 a4.

    a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.

    PERFORM test CHANGING a1 a2 a3 a4.

    a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.

    PERFORM test USING a1 CHANGING a2 a3 a4.a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.

    PERFORM test USING a1 a2 CHANGING a3 a4.

    a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.

    PERFORM test USING a1 a2 a3 CHANGING a4.

    FORM test USING p1 TYPE string

    p2 TYPE string

    CHANGING p3 TYPE string

    p4 TYPE string.

    p1 = 'b1'.

    p2 = 'b2'.

    p3 = 'b3'.

    p4 = 'b4'.

    ENDFORM.

    Testando a execuo de uma funo

  • 8/13/2019 Slides Curso ABAP

    91/153

    Tambm podemos executar procedures relacionadas em outros programas

    utilizando a sintaxe abaixo:

    - PERFORM IN PROGRAM

    CHANGING IF FOUND.

    Criando um report chamando procedurese funes

  • 8/13/2019 Slides Curso ABAP

    92/153

    e funes

    - Submit :O comando submit utilizado para chamar de dentro de um programa outroprograma com os parmetros desejados.

    Ex : SUBMIT < Nome do programa >USING SELECTION-SCREEN < Nmero da tela >WITH EQ

    IN AND RETURN.

    Criando um report chamando procedurese funes

  • 8/13/2019 Slides Curso ABAP

    93/153

    Funes :

    -Mdulos de funo so subprogramas externos com uma interfacetransparente. A interface considerada transparente porque no est includanas declaraes do programa ABAP para a parte executvel do mdulo defuno. A interface definida separadamente e pode ser atualizada

    independentemente do texto.

    -Com os parmetros opcionais, acrscimos interface podem tornar asdeclaraes do programa ABAP completamente executveis sem qualquermodificao. Eles so armazenados de forma centralizada no Repository R/3.

    -Cada mdulo de funo pertence a um grupo de funes.

    -Existem vrias funes STANDARD que podem ser utilizadas nos programascustomizados (Pesquisa na SE37).

    e funes

    Criando um report chamando procedurese funes

  • 8/13/2019 Slides Curso ABAP

    94/153

    - Transao SE37

    A transao SE37 responsvel pela criao de funes.

    e funes

    Criando um report chamando procedurese funes

  • 8/13/2019 Slides Curso ABAP

    95/153

    Caractersticas: So definidas as caractersticas da funo, como texto breve,

    qual grupo de funo pertence, responsvel etc.- Mdulo de funo normal definida como default. Trata-se de umafuno internamente pelo sistema.

    - Mdulo de acesso remoto definida quanto a funo chamadaremotamente de outra plataforma No SAP.

    Parmetros da interface: possvel utilizar objetos de dados elementares, estruturas ou

    tabelas internas como parmetros de importao, exportao e modificao. Os mdulosde funo utilizam os mesmos mtodos de transmisso de parmetros que as rotinasFORM.

    Excees: se, durante o processamento, ocorre um erro em um mdulo, possvel inserira correo dentro do prprio mdulo como uma exceo. possvel antecipar possveis erros e escrever o programa de modo que eles nocausem erros de tempo de execuo. As possveis excees so denominadas nainterface do mdulo de funo e acionadas a partir do texto de programa, por meio dadeclarao RAISE. Cada programa que chama o mdulo de funo consulta sy-subrcpara interpretar as excees.

    e funes

  • 8/13/2019 Slides Curso ABAP

    96/153

    Criando um report chamando procedurese funes

  • 8/13/2019 Slides Curso ABAP

    97/153

    Criar uma funo z_busca_price.Essa funo dever buscar o campo priceda tabela SFLIGHT, utilizando os parmetros abaixo :

    Parmetros de importao :carrid companhia area(obrigatrio).connid cdigo de conexo do vo(obrigatrio).

    fldate

    data do vo(No obrigatrio).

    Parmetros de exportao :Price preo do vo.

    Excees :

    Error_parameters = 1

    e funes

    Criando um report chamando procedurese funes

  • 8/13/2019 Slides Curso ABAP

    98/153

    - Includes:Programas do tipo include, pode se modularizar um programa utilizandocdigos fontes no executveis e chama-se esses cdigo de dentro doprograma principal. utilizado para declaraes de variveis em programasmuito extensos.

    e funes

    Criando um report chamando procedurese funes

  • 8/13/2019 Slides Curso ABAP

    99/153

    - Criar um programa utilizando funo e procedures.

    e funes

  • 8/13/2019 Slides Curso ABAP

    100/153

    Captulo 5

    SQL

    Captulo 5SQL

  • 8/13/2019 Slides Curso ABAP

    101/153

    Comandos SQL. Performance.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    102/153

    Comandos SQL

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    103/153

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    104/153

    DATA: BEGIN OF WA,CARRID TYPE SPFLI-CARRID,CONNID TYPE SPFLI-CONNID,CITYFROM TYPE SPFLI-CITYFROM,CITYTO TYPE SPFLI-CITYTO,

    END OF WA,

    ITAB LIKE SORTED TABLE OF WAWITH NON-UNIQUE KEY

    CITYFROM CITYTO.SELECT CARRID CONNID CITYFROM CITYTOINTO CORRESPONDING FIELDS OF TABLE

    ITABFROM SPFLI.

    IF SY-SUBRC EQ 0.WRITE: / SY-DBCNT, 'Connections'.

    SKIP.

    LOOP AT ITAB INTO WA.WRITE: / WA-CARRID,

    WA-CONNID,

    WA-CITYFROM,

    WA-CITYTO.ENDLOOP.

    ENDIF.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    105/153

    ALGUNS TIPOS DE SELECT

    SELECT FROM INTO TABLE .

    A estrutura da tabela interna deve corresponder estrutura da tabela que

    est sendo acessada. O sistema l os registros em conjunto, noindividualmente, e os coloca dentro de uma internal table. Este processo mais rpido que ler individualmente atravs de um LOOP e ir gravandoos registros, um a um.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    106/153

    SELECT * FROM APPENDING TABLE .L os registros e os inclui - no sobrepe - em uma internal table.

    SELECT . INTO CORRESPONDING FIELDS OF TABLE .

    Neste caso a estrutura da tabela interna no precisa corresponder

    estrutura da tabela que est sendo acessada. o nome da internal

    table. Movimentar os registros para as colunas definidas na internal table

    que possuam nome igual ao da tabela acessada).

    Obs.: corresponding ou appending corresponding no exigem o endselect.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    107/153

    SELECT .. APPENDING CORRESPONDING FIELDS OF TABLE .L e grava (no sobrepe) os dados em uma internal table que possua

    nomes idnticos aos nomes da tabela que est sendo lida.

    SELECT SINGLE * FROM SPFLI WHERE .... EQ

    Toda vez que se usa select single * a chave primria completa deve ser

    especificada. Se a chave especificada no qualificada, voc receber

    uma mensagem de warning e a performance ficar prejudicada.

    No caso de haver a necessidade de acessar um nico registro via select,

    as opes so: select * .. seguido de comando exit OU select * upto 1 row. Neste caso no necessrio especificar a chave completa.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    108/153

    SELECT * FROM

    Quando no se impe nenhum tipo de restrio, ocorre uma varredura sequencial dosregistros da tabela. Quando se utiliza grandes tabelas, isso obviamente afeta oruntime.

    Select * seleciona todas as colunas de uma tabela. melhor sempre especificar as

    colunas, pois em caso de tabelas com muitas colunas, prejudicar performance.

    SELECT * FROM WHERE eq .

    L todos os registros da tabela especificada onde o campo igual ao contedoespecificado. O ideal que se qualifique a clusula WHERE tanto mais quanto sejapossvel. Atentar que isso vlido para tabelas do tipo Pool e Transparent. ParaCluster, seguir as recomendaes dadas anteriormente.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    109/153

    SELECT INTO (, , ) FROM .WHERE .

    L as colunas especificadas (a1, a2). Aps INTO devero ser especificadas as reas detrabalho auxiliares (f1, f2). O nmero de colunas lidas dever ser igual ao nmero dework-areas especificadas.

    SELECT * FROM WHERE BETWEEN and .

    Ex.: field1 = 100 e field2 = 500. Pega inclusive 100 e 500. Voc trabalha

    com o range.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    110/153

    SELECT * FROM WHERE LIKE ._R%._ = a primeira letra no importa o que vir a segunda dever ser R (eu defini)

    % = no importa a sequncia de caracteres que vir.

    (Varredura para que possa realizar a comparao)

    SELECT * FROM WHERE IN (.,.).Exemplo: select * from where campo1 in (123,1000) - podem ser valores ouliterais. igual a perguntar se campo1 123 ou 1000.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    111/153

    SELECT * FROM FOR ALL ENTRIES IN WHEREcampo1 = and

    campo2 =

    Defino uma tabela interna. Alimento os campos desta tabela interna. (move eappend). No meu select campo1 e campo2 sero os campos definidos e alimentados

    na tabela interna.

    Esta uma excelente soluo quando se trabalha com grandes tabelas.

    O select for all entries simula a funcionalidade join.

    Comandos SQL

  • 8/13/2019 Slides Curso ABAP

    112/153

    SELECT * FROM ORDER BY PRIMARY KEY.

    Obs.: Classifica a tabela interna numa rea auxiliar, sem afetar a tabela

    original. Evitar o uso de sorts dentro de um select. Consome mais tempo

    que descarregar os dados em uma tabela interna e classific-los.

    Performance

  • 8/13/2019 Slides Curso ABAP

    113/153

    Para se obter uma otimizao da performance em programas ABAP, deve-seminimizar o tempo de acesso ao database.

    Grandes viles no que se refere performance

    Ninhos de select;

    Select . Endselect ao invs de comandos que recuperem do banco de dadostodos os registros de uma nica vez;

    Select * ao invs de select com as colunas necessrias ao processamento;

    Select single sem chave completa especificada ao invs de Select up to 1 row;

    Selects genricos, ou seja, onde a clusula where no foi fortementeespecificada, com vrias condies, visando restringir ;

    ndices no utilizados;

    Performance

  • 8/13/2019 Slides Curso ABAP

    114/153

    Falta de ndices;

    Select em tabelas com alto nmero de registros utilizando clusulawhere baseada em tela de seleo onde o preenchimento no obrigatrio;

    Definio funcional falha; Grandes tabelas do sistema: BKPF, BSEG, EKKO, EKPO, VBAK, VBAB,

    MKPF, MSEG, J_1BNFDOC, J_1BNFLIN, EKET, EKBZ.

    Performance

  • 8/13/2019 Slides Curso ABAP

    115/153

    Comandos Select

    Visando garantir a performance e evitar problemas futuros, cuidadocom os comandos empregados. Existem alguns tipos de select maiseficientes que outros. Analise a aplicao que ser desenvolvida e faaa melhor escolha.

    Performance

  • 8/13/2019 Slides Curso ABAP

    116/153

    Dicas para otimizao do cdigo

    Use o comando FREE para liberar espao em internal tables; Sempre usar oscomandos Clear / Refresh aps o fim de um LOOP;

    Evite comparaes num SELECT com campos numricos versus campos

    alfanumricos; o sistema perde tempo para converso; Testar SY-SUBRC aps cada acesso ao banco de dados;

    O comando MOVE-CORRESPONDING bom para tabelas pequenas. interessanteque a tabela interna contenha os campos na sequncia em que seromovimentados;

    Ao utilizar o comando CASE, codificar sempre a clusula WHEN OTHERS;

    Performance

  • 8/13/2019 Slides Curso ABAP

    117/153

    Sempre identifique se um SORT ascending ou descending e especifique aclusula BY . Caso contrrio, todos os campos sero classificados.

    Evitar lgicas do tipo IF not CPOA = CPOB. mais claro codificar IF CPOA ne CPOB.

    Evitar construes do tipo:

    SORT tabela1, SORT tabela2, SORT tabela3.

    LOOP tabela1, LOOP tabela2, LOOP tabela3

    Para cada SORT fazer o LOOP correspondente. A ento iniciar novo SORT e

    LOOP, e assim por diante.

    Campos chave devem ser sempre os primeiros campos da tabela. Assim, todos osdemais campos sero comprimidos;

    Performance

  • 8/13/2019 Slides Curso ABAP

    118/153

    SELECT (para Transparent e Pool Tables): a clusula WHERE deve conter,

    preferencialmente, os campos chaves e demais campos que possam restringir apesquisa;

    SELECT (para Cluster Tables): s os campos chaves devem ser especificados naclusula WHERE. Os demais devem ser checados atravs do comando CHECK;

    O conhecimento do contedo dos dados de uma tabela pode auxiliar no momento dacodificao do comando select. O campo que ocorrer em nmero menor de vezesdever constar na clusula where antes daquele que ocorre um nmero maior devezes, caso seja necessrio satisfazer a ambas condies. Isso faz com que oprocessamento seja mais gil.

    Manuseio de tabelas: Estudar a possibilidade de manuseio em tabelas internas paraagilizar o processo. Analisar tambm o uso de comando select, sendo o que melhorse adapte a situao em questo.

    Performance

  • 8/13/2019 Slides Curso ABAP

    119/153

    MXIMASDABOAPROGRAMAO:

    Remova todo o cdigo/processamento desnecessrio/redundante!

    Gaste tempo documentando e adote boas prticas de alterao de cdigo!

    Gaste todo tempo preciso analisando as necessidades de negcio, fluxos de

    processos, estruturas de dados e modelos de dados! Qualidade a chave! Planeje e execute um bom plano de testes

    A Experincia sempre ajuda!

    Performance

  • 8/13/2019 Slides Curso ABAP

    120/153

    Para mais informaes chame a Transao SE30

    Boto Tips & Tricks

  • 8/13/2019 Slides Curso ABAP

    121/153

    Captulo 6

    PROGRAMAS ON-LINE

  • 8/13/2019 Slides Curso ABAP

    122/153

    Conceito de PBO, PAI e module.

  • 8/13/2019 Slides Curso ABAP

    123/153

    Mdulo Pool o programa principal de um "Dialog" ou On-line. O Dialog composto por um programa principal (pool module), includes, mdulos etelas.

    No pool de mdulo voc encontrar apenas os includes que por sua vez

    contm os mdulos e sub-rotinas que formam o programa. Cada mduloest associado a uma tela, e a tela possui sua parte grfica que pode serdesenhada usando a transao SE80(screen painter).

    A SE80 a transao usada para se gerar on-lines, pois nela todos os

    objetos e programas podem ser criados e manipulados facilmente.Um programa do tipo mdulo pool s pode ser executado atravs de umatransao, o que uma particularidade deste tipo de programa.

  • 8/13/2019 Slides Curso ABAP

    124/153

    Como criar um programa ON-LINE

  • 8/13/2019 Slides Curso ABAP

    125/153

    Os Componentes Principais de um Dialog Program (On-line)

    Voc usa o Screen Paiter e o Menu Painter para criar e desenhar telas eprogramas de telas.

    Voc define o processamento lgico no module pool do programa ABAP/4

    . Estruturas de dados so definidas no Dicionrio ABAP/4. Voc pode

    acessar essas estruturas do programa ABAP/4 e quando define campos detela.

    O processador de dilogo controla o fluxo do seus programa dilogo.

  • 8/13/2019 Slides Curso ABAP

    126/153

    Como criar um programa ON-LINE

  • 8/13/2019 Slides Curso ABAP

    127/153

    Quando todos os mdulos do PBO forem processados, o contedo doscampos da rea de trabalho (work rea) ABAP/4 so copiados para oscampos de mesmo nome da rea de trabalho (work rea) da tela.

    Antes do mdulo PAI processado. O contedo dos campos na rea de

    trabalho da tela (work rea) so copiados para campos de mesmo nomena rea de trabalho (work rea) ABAP/4.

    Criando telas no ON-LINE

  • 8/13/2019 Slides Curso ABAP

    128/153

    Screen Painter - ABAP/4

    Para criar uma tela, siga os seguintes passos:

    Defina as caractersticas bsicas da tela (screen atributes);

    Projete um layout de tela (in full screen editor);

    Defina os atributos dos campos (field list);

    Escreva o fluxo lgico da tela (programa).

    Criando telas no ON-LINE

  • 8/13/2019 Slides Curso ABAP

    129/153

    Definindo o Layout (Graphical Screen Painter) A interface do Graphical Screen Painter contm funes fceis de usar

    para definir os vrios elementos da tela (ex.: campos de entrada esada, campos textos, caixas, etc.).Voc escolhe cada elemento da tela e posiciona na tela usando o

    mouse.

    Para deletar elementos da tela, voc seleciona o elemento com omouse e ento escolhe Delete.

    Para mover elementos da tela, voc usa o mouse para arrastar oelemento para a posio desejada.

    Criando um ON-LINE

  • 8/13/2019 Slides Curso ABAP

    130/153

    Transao SE80

  • 8/13/2019 Slides Curso ABAP

    131/153

    Captulo 7

    LISTAS E ALV

    Captulo 7Listas e ALV

  • 8/13/2019 Slides Curso ABAP

    132/153

    Formatao de relatrios Principais comandos para uma lista

    Formatao do relatrio ALV

    Criando uma Lista e um relatrio ALV

    Formatao de relatrios

  • 8/13/2019 Slides Curso ABAP

    133/153

    O que o ALV O Abap List Viewer(ALV) uma ferramenta que padroniza e simplifica o

    uso de listas e relatrios no sistema R/3 tanto para o desenvolvedor tantopara o usurio que interage com o relatrio.

    O ALV atravs de suas funes e estruturas torna o desenvolvimento maissimples na medida que economiza significativas linhas de cdigo como porexemplo no tratamento de quebras,totais,subtotais,cores e outrasvantagens que veremos a seguir.

    Principais estruturas de montagem do relatrio ALV

    slis_layout_alv slis_sortinfo_alv

    slis_t_fieldcat_alv

    Formatao de relatrios

  • 8/13/2019 Slides Curso ABAP

    134/153

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'EXPORTING

    i_callback_program = c_repidi_callback_pf_status_set = 'SET_PF_STATUS'i_callback_user_command = 'USER_COMMAND'is_layout = s_layout2

    it_fieldcat = it_inf_campos2it_sort = t_qbr_campos[]

    TABLESt_outtab = it_lote2.

  • 8/13/2019 Slides Curso ABAP

    135/153

    Principais comandos para uma lista

  • 8/13/2019 Slides Curso ABAP

    136/153

    SLIS_SORTINFO_ALV

    Criar estrutura do tipo SLIS_SORTINFO_ALV

    Ex.: sortinfo type slis_sortinfo_alv

    Campos fundamentais da SLIS_SORTINFO_ALV SposSequncia de ordenao.

    FieldnameNome do campo da i_tab que deseja fazer a ordenao.

    UpDireo de ordenao ascendente.

    TabnameNome da i_tab de sada

    Principais comandos para uma lista

  • 8/13/2019 Slides Curso ABAP

    137/153

    SLIS_T_FIELDCAT_ALV

    Criar Workarea do tipo SLIS_T_FIELDCAT_ALV.Ex: data: s_fieldcat type slis_t_fieldcat_alv with header line.

    Campos fundamentais da SLIS_T_FIELDCAT_ALV

    row_possada na linha desejada.

    col_pos - Coluna a qual desejamos exibir o campo da I_tab de sada

    FieldnameNome do campo da tabela interna(importante que esse nome de campo da

    tabela referida em ref_tabname) TabnameTabela interna onde se encontra campo.

    KeyDefinio de campo chave na sada do relatrio com formatao especfica dopadro do R3.

    CheckboxPrecisamos informar apenas em ALV Hierarquico na i_tab de itens

    JustJustificar e podemos passar Right( R ) Left(L) ou Center( C )

    LzeroOmitir zeros em impresso de relatrio fix_columnFlag ou no para manter campo fixado na tela

    do_sumtotal do campo especificado

    no_outExibio obrigatria(O) No exibir em sada default(X)

    Formatao do relatrio ALV

  • 8/13/2019 Slides Curso ABAP

    138/153

    type-pools slis

    Seleo de dados e tratamento de informaes em tabela de sada

    Slis_t_fieldcat_alv para Formatao dos campos

    Slis_layout_alv para Layout

    Slis_sortinfo_alv para ordenao

  • 8/13/2019 Slides Curso ABAP

    139/153

    Captulo 8

    CONCEITO DE BATCH-INPUT E BAPIS

    Captulo 8Conceito de Batch-input e Bapis

  • 8/13/2019 Slides Curso ABAP

    140/153

    Qual a funo de um Batch-input O que uma BAPI

    Criar um mapeamento.

    Criar um report utilizando Batch-input

    Qual a funo de um Batch-input

  • 8/13/2019 Slides Curso ABAP

    141/153

    Batch Input

    O Batch Input uma tcnica standard para a transferncia de grandes volumes dedados para o Sistema R/3. O fluxo transacional simulado ( SHDB) e os dados sotransferidos como se entrassem de forma online. A vantagem que so executadostodas as verificaes relevantes garantindo uma entrada consistente dos dados.

    O processo de Batch Input dividido em duas fases: Criao da sesso de Batch Input com os dados; Processamento da sesso de Batch Input executando transaes do sistema R/3

    As pastas de Batch input podem ser processadas de vrias formas: Foreground; Background;

    Durante o processamento com display de erro;

    Qual a funo de um Batch-input

  • 8/13/2019 Slides Curso ABAP

    142/153

    Funes para criar Sesses:call function 'BDC_OPEN_GROUP'

    exporting

    client =

    group =

    user =

    keep = 'X'. (manter pasta)

    call function 'BDC_INSERT'

    exporting

    tcode =

    tablesdynprotab = .

    call function 'BDC_CLOSE_GROUP'.

    Qual a funo de um Batch-input

  • 8/13/2019 Slides Curso ABAP

    143/153

    Executar Sesses:SM35 (transao utilizada para rodar o batch input)

    Gerar automat.programa:

    SHDB (grava a transao para rodar automaticamente, tal como carga de dados - parecidocom macro)

    Processamento:

    Cancelar sesso:/N Apagar sesso: /BDEL

    Cancelar e marcar incorreta: /NEND

    Alterar p/ mdulo de dilogo: /BDA

    Alterar p/ visuallizao de Erro: /BDE

    Alterar p/ execuo em background: /BDN

    Qual a funo de um Batch-input

  • 8/13/2019 Slides Curso ABAP

    144/153

    Call Transaction O call transaction mais rpido que o batch input. Tambm usado para carga dedados.

    Sintaxe:

    CALL TRANSACTION

    [AND SKIP FIRST SCREEN] (pula a 1tela da transao) [USING ][MODE ]

    [UPDATE ]

    MESSAGES INTO (mensagem standard)

    O que uma BAPI

  • 8/13/2019 Slides Curso ABAP

    145/153

    BAPIs so funes disponibilizadas pela SAP para realizar processos dentro doR/3. Exemplo: Criao pedido de compra, ordem de venda e outros.

    Normalmente so implementadas como mdulos de funes. Todas so criadas egerenciadas no Function Builder (SE37).

    Pode ser executada por uma aplicao externa. Exemplo: VB, Delphi, VBA e outras.

    Para consultar as BAPIs disponveis executar a transao BAPI.

    O ideal verificar a existncia de uma BAPI e s se no existir, utilizar o batchinput ou call transaction.

  • 8/13/2019 Slides Curso ABAP

    146/153

  • 8/13/2019 Slides Curso ABAP

    147/153

    Captulo 9

    DEBUG

    Captulo 9Debug

  • 8/13/2019 Slides Curso ABAP

    148/153

    Qual a funo do Debug. Principais comandos para utilizar um Debug.

    Executar um Debug

    Qual a funo do Debug

  • 8/13/2019 Slides Curso ABAP

    149/153

    O ABAP Debugger uma ferramenta integrada de teste dentro do ABAPWorkbench. usada para achar erros no cdigo fonte de um programa ABAP.

    No Debugger, podemos executar o cdigo fonte passo a passo, desta forma oprograma em execuo interrompido depois de cada passo, permitindo quevoc verifique seu processo lgico e o resultado individual de comandos.

    Existem duas estratgias para inicializar o Debugger no ABAP Workbench: Definindo breakpoints e ento rodando o programa Ou rodando o programa em modo debugging.

    Principais comandos para utilizar um Debug

  • 8/13/2019 Slides Curso ABAP

    150/153

    Para chamar o debugger do SAP (R/3) basta inserir o /h como umatransao.

    Verificar a barra de status.

    A partir deste momento o mode debugger do SAP est emfuncionamento, em qualquer transao, que estivermos, poderemosvisualizar cdigo-a-codigo, o que o compilador, ABAP est interpretando.

    Principais comandos para utilizar um Debug

  • 8/13/2019 Slides Curso ABAP

    151/153

    Observe no modo Debug a seguinte tela:

    Nesta tela que poderemos EXIBIRe MODIFICARvalores das variveisem tempo de execuo do programa, Lembre-se estamos em modo debugonde cada comando segue passo a passo o que pedimos.

    Principais comandos para utilizar um Debug

  • 8/13/2019 Slides Curso ABAP

    152/153

    Etapa Individual: Boto ou F5 :

    Use essa opo para navegar no programa comando a comando.

    Isto permite que voc passe em subrotinas e em mdulos de funo,executando-as passo a passo tambm. Uma vez que um mdulo da subrotinaou da funo foi processado, o controle retorna ao comando seguinte doCALL FUNCTION ou do PERFORM.

    Entra nas subrotinas

    Executar: Boto ou F6 :

    Use essa opo para executar o programa linha a linha. Todos os comandos dalinha corrente so processados em um nico passo. Se estiver posicionado emuma linha que chama uma subrotina, o Debugger processa a subrotina emmodo oculto e retorna para a linha seguinte a chamada da subrotina. Issopermite que pule nos comandos dentro da subrotina.

    No entra nas subrotinas

    Principais comandos para utilizar um Debug

  • 8/13/2019 Slides Curso ABAP

    153/153

    Retorno: Boto ou F7:

    O debugger retorna de uma rotina para o ponto de controle definido noprograma principal. Use esta opo para retornar de uma subrotina, mdulode funo, ou programa chamado ao programa de chamada.

    Executa a subrotina e pra aps seu trmino

    Avanar (at o cursor): Boto ou F8:

    Use essa opo para processar o programa at o prximo breakpoint. Se noexistir mais breakpoints no programa e nenhum cursor for definido o sistemasai do modo debugging e executa o resto do programa normalmente.

    Executa toda a rotina at o final, sem parar.