Sie sind auf Seite 1von 153

Marcelo Pereira de Azevedo

marcelo.azevedo38@yahoo.com.br

ABAP

Curso de Introduo Linguagem De Programao ABAP

CONTEDO PROGRAMTICO

CONTEDO PROGRAMTICO

Captulo 1 Introduo Captulo 2 Dicionrio de dados Captulo 3 Introduo linguagem ABAP Captulo 4 Conceito de Procedures, funo e includes Captulo 5 SQL Captulo 6 Programas On-line Captulo 7 Listas e ALV Captulo 8 Conceito de Batch-input e Bapis Captulo 9 Debug

Captulo 1

INTRODUO

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

Conceito do SAP

O que ?
um conjunto integrado de aplicativos projetado para tratar o processamento de dados em grandes corporaes. Ele foi desenvolvido na Alemanha pela empresa denominada SAP {uma sigla de Systems Applications and Products for data processing - aplicativos e produtos de sistemas para processamento de dados). Dentro do SAP , h um ambiente de tempo de execuo e um conjunto integrado de programas aplicativos escritos em 4GL do SAP - ABAP/4. Esses programas aplicativos foram projetados para atender ao processamento de dados necessrios para o negcio.

Conceito do SAP

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

O que so transaes no SAP


Transao um cdigo alfanumrico de 20 caracteres, utilizado para iniciar um processamento dentro do sistema SAP. Todo e qualquer processo ou parte dele deve ser executado dentro do sistema atravs de uma transao. A customizao de ABAP/4, sempre utilizada para necessidade 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 de dentro do sistema. Toda operao realizada atravs do menu do sistema, tambm corresponde a uma transao. Um mtodo para conhecermos o cdigo de uma 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.

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 utilizado para desenvolvimentos de programas do tipo executvel (Relatrios e Cargas).

ABAP Dictionary (SE11) para edio de objetos relacionados com o banco de dados.
Menu Painter (SE41) para desenho de interfaces de usurio (barra de menu).

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 ABAP Workbench, muito utilizado para criao de programas do tipo on-line ou module pool, pois, facilita e muito a visualizao de todos os objetos em uma mesma tela. Todo objeto do ABAP Workbench pode ser editado nessa transao e de uma forma bem mais organizada.

Instncia X Client (Dependent/Independent)


Client definido como sendo uma unidade independente do R/3. Em termos comerciais,organizacionais e tcnicos.Isso significa que possuem sua prpria configurao e dados cadastrais (master data). Instncia definida como um ambiente do R/3 que agrupa um ou mais clients, onde se executa um determinado trabalho. Objetos Client Dependent: Dependentes do mandante, por exemplo formulrios de Sapscript, Relatrios de Report Writer/Painter, ABAP QUERY(se criada na rea Standard), parametrizao/customizaes, contedo de tabelas etc. Objetos Client Independent: Independentes de mandante, por exemplo programas Z*, todos os programas standards, todas as funes, estrutura de tabelas etc.

Instncia X Client ( Dependent/Independent)

Ex: Cdigo Fonte Independent Telas,Menus e funes Independent Estrutura de tabelas,elementos e domnios - Independent Registros de dados em tabela - Dependent Formulrio SapScript - Dependent

Conceito de classe de desenvolvimento

Classe de desenvolvimento (Pacotes)


So importantes para transporte entre sistemas de produo, qualidade e desenvolvimento. 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

Controlando e administrando transportes

Request
Guarda as modificaes ou customizaes feitas e que se deseja transportar para um determinado ambiente. Uma vez liberada a ordem de transporte mantm as alteraes feitas at aquele momento. Novas alteraes/customizaes no mesmo lugar iro solicitar nova ordem de transporte. Ex : AF1K900109 AF1 Instncia K Gerao de arquivo de controle (Interno SAP) 900109 - Sequncial

Worbench Organizer
Esta transao pemite controlar as ordens (requests) geradas atravs das alteraes 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/SE10 Permite verificar as ordens de objetos client independent e dependent criados por um usurio.

Captulo 2

DICIONRIO DE DADOS

Captulo 2 Dicionrio 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.

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 estrutura lgica global de um banco de dados. Entidade: um objeto que existe e distinguvel de outros objetos, ou seja, identifica o agrupamento de objetos do mesmo tipo. Exemplos: Clientes, Bancos, Agncias, Contas-corrente.
Atributos: So os qualificadores de uma entidade, isto , representam no modelo o que uma entidade pretende ser. Exemplos: Nome, RG, CPF, Endereo, Nmero conta, Nmero agncia, Nmero banco.

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 de uma Agncia. Restries de Mapeamento: Representam o modo como as diferentes entidades de um modelo se relacionam. Determinadas pela cardinalidade dos relacionamentos entre as entidades.

Conceito de banco de dados relacionais

Um-para-Um: Uma ocorrncia da entidade A est relacionada com uma e apenas uma ocorrncia da entidade B. Um-para-N: Uma ocorrncia da entidade A est relacionada com uma ou vrias ocorrncias da entidade B. EX : MARCA X CARRO N-par-N: Vrias ocorrncias da entidade A esto relacionadas com vrias ocorrncias da entidade B. EX : FORNECEDOR X PRODUTO

Conceito de banco de dados relacionais

Modelo Relacional
Um banco de dados relacional a implementao fsica do modelo entidade-relacionamento e traduz concretamente o que o modelo conceitual procura representar. Consiste em uma coleo de tabelas cada uma das quais associada a um nome nico e que possuem relacionamentos entre si. Tabelas representam fisicamente as entidades.
Cada tabela possui uma estrutura similar quilo que pretende representar, 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 de ocorrncias pode ou no estar relacionado com ocorrncias de outras tabelas.

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 atributo em outra(s) tabela(s).

Tipo de dados do dicionrio ABAP

O dicionrio ABAP (Transao SE11) permite a administrao central de todas as definies de dados do R/3, permitindo a criao de tipos de dados definidos pelo usurio para uso posterior, alm de vrios itens auxiliares ao desenvolvimento de programas ( p.ex: search helps ). Podem ser definidas tabelas e vises dentro do dicionrio. O R/3 se encarrega, durante a ativao desses elementos, de cri-los no banco de dados. O dicionrio permite, ainda, a criao de ndices, que agilizam as buscas. A definio de ndices apropriados de suma importncia para o bom desempenho do sistema. Cabe lembrar que uma busca sem ndice realizada em um tabela extensa pode ter pesado custo em termos de performance.

Tipo de dados do dicionrio ABAP

As definies de tipos de dados dentro do R/3 incluem os elementos de dados, que definem um tipo elementar descrevendo o tipo bsico de dados, 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 campos em formato de tabela.

Por exemplo, uma estrutura do registro de uma estrutura de usurio que tivesse um campo para nmeros de telefone poderia usar um table type e permitir colocar vrios nmeros num mesmo campo.

Tipo de dados do dicionrio ABAP


Alm dessas definies, o dicionrio ABAP permite criar os search helps, que so tabelas de busca auxiliares aos campos de tela so as buscas e tabelas que aparecem quando se tecla F4 dentro de um campo em qualquer tela do R/3. Criando documentao para o elemento de dados dentro do dicionrio, automaticamente est disponvel a ajuda do campo, que pode ser invocada usando-se a tela F1 dentro dos campos de tela. Pode-se, ainda, definir verificaes de entrada automaticamente, bastando definir uma relao de foreign key.

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

Tipo de dados do dicionrio ABAP

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

Tipos de Dados I Campos numricos sem decimais, contadores, etc.


P Campos numricos com decimais, quantidade e moeda. C Campo alfa, mais utilizado para conter textos, pode conter nmeros at efetuar clculos, mas no usual.

Tipo de dados do dicionrio ABAP

N Campo alfa, utilizado para conter nmeros sem decimais e preenchidos com zeros esquerda. D Campo data, armazenado no banco de dados no formato AAAAMMDD, permite-se fazer contas do tipo 20041201 + 31 = 20050101. T Campo hora, armazenado no banco de dados no formato HHMMSS.

Conceito de domnio, elemento de dados.

Domnios
O domnio contm os tipo de dado e comprimento do campo. Podem conter os valores vlidos para o campo, atravs de valores fixos entrados no 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 e descrio dos campos em um s objeto. til quando os campos se repetem em diversas tabelas.

Criao de tabelas transparentes, estruturas e view. A definio de uma tabela consiste dos seguintes componentes:
Campos - Define o nome e o tipo dos campos da tabela.

Chaves Estrangeiras( Check Table ) - define o relacionamento entre a tabela e outras tabelas do sistema, usadas para manter a integridade dos dados no BD.
Opes Tcnicas - controla como a tabela deve ser criada no Banco de Dados. ndices - Para melhorar a performance nos acessos a tabela, pode-se criar ndices secundrios para ela.

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, devendo comear 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.

Criao de tabelas transparentes, estruturas e view.

Tabela Transparente Existe uma tabela fsica no banco de dados para uma tabela transparente. 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 em tabelas transparentes.

Criao de tabelas transparentes, estruturas e view.

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

Criao de tabelas transparentes, estruturas e view. Vises


So tabelas virtuais que resultam da unio de tabelas transparentes e que contm uma certa quantidade de informaes.

Criao de ndices primrios e secundrios

ndices
Um ndice pode ser considerado como uma cpia da tabela que foi reduzida a um certo nmero de campos. Esta cpia est sempre ordenada. A ordenao faz com que o acessos ao registros se torne mais rpido, o ndice tambm contm, um ponteiro para o registro real na tabela transparente, para que os campos que no esto no ndice tambm possam ser lidos. O ndice primrio separado dos ndices secundrios. O ndice primrio constitudo dos campos indicados como campo-chave na criao da tabela.

Criao de dilogo de manuteno

Pode ser feita uma criao automtica de programa on-line para manuteno de tabelas transparentes atravs da transao SE11. Para tanto 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 nvel nico, seno 2 nveis. Clicar procurar nmero de tela. O sistema sugere os nmeros das telas.Deixar assim.

Criao de dilogo de manuteno

Gerar mdulo.

Captulo 3

INTRODUO LINGUAGEM ABAP

Captulo 3 Introduo linguagem ABAP


Como funciona a transao SE38 Editor ABAP. Blocos de eventos. Declarao de variveis, tabelas internas, ranges e constants. Definio de parmetros de entrada. Principais comandos ABAP. Executando um programa report.

Como funciona a transao SE38 Editor 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.

Como funciona a transao SE38 Editor ABAP

Como funciona a transao SE38 Editor 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.

Como funciona a transao SE38 Editor ABAP

Texto fonte Texto principal do programa. Variantes Exibe as variantes gravadas p/execuo do programa. Caractersticas Exibe as caractersticas do programa como classe de desenvolvimento, tipo do fonte (includes, executvel e etc). Documentao Documentao simplificada do programa. Elementos de texto Textos que sero utilizados para execuo do programa

- Exibio do fonte e modificao do fonte.

Como funciona a transao SE38 Editor ABAP

- Gravar o fonte. - 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.

Como funciona a transao SE38 Editor ABAP

- Controle de verso

Como funciona a transao SE38 Editor ABAP

Como funciona a transao SE38 Editor ABAP

- Tipos de editor

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.

INITIALIZATION Evento 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 do usurio na tela de seleo ativa.Isso pode ser quando o usurio pressiona uma tecla de funo ou d um clique em um boto.

Blocos de eventos

START-OF-SELECTION Evento onde executa o processamento principal do programa. END-OF-SELECTION Evento onde finaliza o processamento do programa. TOP-OF-PAGE (incio relatrio) Evento utilizado quando executado o primeiro comando write. END-OF-PAGE (fim relatrio) - Evento utilizado no final do relatrio. AT USER-COMMAND (tratamento de botes) Evento para tratamento de botes.

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 houver dentro desse evento toda vez que o usurio clica duas vezes sobre uma linha em uma lista ou clica sobre um campo marcado com HOTSPOT, ou teclando-se F2 sobre um registro, ou escolhendo um boto que tenha o cdigo standard PICK a ele associado.

Blocos de eventos

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 de colocar definies globais na parte superior do programa.

Declarao de variveis, tabelas internas, ranges e constants


- Tipos de dados:

Declarao de variveis, tabelas internas, ranges e constants


Entre as formas de tipos de dados, as mais usadas no desenvolvimento de programas ABAP/4 so: Variveis : So declaradas para receber valores que so alterados durante a execuo do programa. Contants : So declaradas quando existem valores que no so alterados durante a execuo do programa. A forma da declarao e o tipos de dados seguem o mesmo padro das variveis. Ranges : Tabela interna com a mesma estrutura de um select-options, mas sem conexo com uma tela de entrada.

Declarao de variveis, tabelas internas, ranges e constants

Variveis
DATA: varname(n) TYPE _. DATA: varname LIKE varname2 VALUE 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

Constantes CONSTANTS: constname(n) TYPE _. CONSTANTS: constname(n) LIKE varname2 VALUE 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

Ranges Ranges: rangename FOR _.

Exemplo: Ranges: r_vstel FOR vbap-vstel.

Declarao de variveis, tabelas internas, ranges e constants


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

Declarao de variveis, tabelas internas, ranges e constants

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

Exemplo:
TABLES: LFA1, EKKO.

Declarao de variveis, tabelas internas, ranges e constants

Tabela Interna : Uma tabela interna consiste em uma srie de linhas do mesmo tipo de dados. Os dados so armazenados linha a linha na memria, e cada 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

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 o comando sort nesse tipo de tabela; Hashed table: As tabelas do tipo Hashed table so organizadas de acordo com a chave especificada e no permitem operaes utilizando o nmero sequncial dos registros. So mais adequadas a grande volume de dados.

Declarao de variveis, tabelas internas, ranges e constants

Tabelas Internas:

DATA: t_tab1 TYPE tabinttipo OF estrutname WITH HEADER LINE, t_tab2 LIKE tabinttipo OF 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


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

Declarao de variveis, tabelas internas, ranges e constants

Estruturas

Exemplo

TYPES: BEGIN OF <typename>, var1 TYPE _, var2 LIKE tab1-campo, ..... END OF <typename>. TYPES BEGIN OF <typename>,. INCLUDE STRUCTURE <tabbanco>. TYPES END OF <typename>,.

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

Registros

Exemplo

TYPES: BEGIN OF <typename>, var1 TYPE _, var2 LIKE tab1-campo, ..... END OF <typename>. DATA: T_TAB1 TYPE <typename>.

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.

Definio de parmetros de entrada


Parmetros de entrada : Essa instruo muito parecida com a instruo data, mas quando voc executa o programa, o sistema exiber os parmetros como campos de entrada em uma tela de seleo antes que o programa realmente comece a ser executado. O usurio pode digitar ou modificar seus valores e ento pressionar o boto execute, para iniciar o processamento. 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 usurio poder escolher N valores em cada execuo. No parmetro SELECT-OPTIONS podemos tambm definir faixas de dados, valores individuais, excluso de valores individuais, 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

PARAMETERS: p_par1 TYPE __ , p_par2 LIKE var1 DEFAULT valor_default, p_par3 AS CHECKBOX , p_par4 RADDIOBUTTON GROUP grpname OBLIGATORY. SELECTION-SCREEN: BEGIN OF BLOCK bl_name WITH FRAME TITLE title_text. END OF BLOCK bl_name. BEGIN OF LINE. END OF LINE. COMMENT pos(dim) text POSITION pos.

Definio de parmetros de entrada

SELECT-OPTIONS: s_par1 FOR campo1 NO-EXTENSION. NO INTERVALS. DEFAULT valor1 TO valor2. OBLIGATORY. NO-DISPLAY. MEMORY ID mem. MATCHCODE OBJECT obj.

Principais comandos ABAP

Comando/Funo ADD APPEND APPEND LINES APPEND SORTED BY AT END OF

Descrio Adiciona um valor a outro campo numrico Gravar em tabela interna Gravar linhas em tabela interna Usado para classificar linhas em ordem durante o append Identifica o ultimo registro de uma sequncia (quebra)

AT EXIT-COMMAND
AT FIRST AT LAST

Usado para definir a execuo de mdulos com botes


Identifica o primeiro registro da tabela percorrida Identifica o ultimo registro da tabela percorrida

Principais comandos ABAP

Comando/Funo AT LINE-SELECTION AT NEW AT SELECTION-SCREEN ON AT USER-COMMAND AUTHORITY-CHECK OBJECT AS TEXT

Descrio Evento para abrir uma segunda tela dentro de um relatrio Identifica o primeiro registro de uma sequncia Analisar o resultado de uma varivel Evento para inicializar os botes criados Para verificar a autorizao para determinado objeto Usado para classificar caracteres acentuados

ASSIGN f1 TO <f>
AS SYMBOL / AS ICON / AS LINE

Atribuio dinmica
Comandos usados para formatao em relatrios

Principais comandos ABAP

Comando/Funo CALL TRANSACTION CASE... WHEN... ENDCASE CHECK CLEAR

Descrio Comando usado para chamar transaes Comando para tomadas de deciso Substitui o comando IF Limpar o contedo de uma varivel

CLOSE DATASET CLOSE_FORM


COLLECT

Fecha um arquivo externo Funo usada para fechar um formulrio sapscript


Organiza a tabela com todas as descries esquerda totalizando os campos numricos

COMMIT WORK

Efetiva as alteraes no banco

Principais comandos ABAP

Comando/Funo CONCATENATE CONSTANTS CONTINUE CONDENSE DATA DELETE DESCRIBE TABLE DO... ENDDO

Descrio Agrupa vrios campos em um s Criar constantes para serem usadas em todo o programa Volta ao incio de um loop aps a verificao de uma condio Remove os espaos em branco em um texto Criar tabelas internas e variveis Deleta um registro de uma tabela interna Determina o nmero de linhas de uma tabela interna Usado para criar um loop

Principais comandos ABAP

Comando/Funo GUI_DOWNLOAD END_FORM END-OF-PAGE END-OF-SELECTION EXIT FORM FORMAT COLOR FREE

Descrio Funo para download de arquivo Funo usada para finalizar um formulrio sapscript Evento executado ao finalizar a impresso de uma pgina Evento executado logo aps o evento START-OF-SELECTION Comando usado para sair de um loop ou sub-rotina Indica o incio de uma sub-rotina Usado para formatar a sada do comando write(COR) Libera espao de memria utilizado por uma tabela interna

Principais comandos ABAP

Comando/Funo HIDE

Descrio Usado para definir campos para uma segunda janela em relatrios

ID... FIELD...
IF... ELSE... ENDIF IF NOT... IS INITIAL INITIALIZATION INSERT INSERT LINES

Objetos de autorizao
Comando de deciso Verifica se uma varivel est vazia Primeiro evento executado dentro de um programa Insere o contedo de um registro em uma tabela transparente Insere mais de uma linha em uma tabela transparente

Principais comandos ABAP

Comando/Funo LEAVE PROGRAM LEAVE TO SCREEN LINE-COUNT LINE-SIZE LOOP AT

Descrio Comando encerra um programa Comando que direciona a ida de uma tela para outra Limita o nmero de linhas por pgina Limita o nmero de colunas por pgina Loop no contedo de uma tabela interna

MESSAGE
MESSAGE-ID MODIFY

Usado para mostrar mensagens na tela


Usado para definir uma classe de mensagem Modifica o contedo de uma linha da tabela interna

Principais comandos ABAP

Comando/Funo MODULE MOVE MOVE-CORRESPONDING NEW-PAGE NO STANDARD PAGE HEADING

Descrio Usado para a criao de sub-rotinas em programas on-line Move o contedo de uma varivel para outra Move apenas campos com o mesmo nome Fora quebra de pgina em um relatrio Ignora a impresso do cabealho standard do SAP em relatrios

OPEN DATASET
OPEN_FORM

Para abrir arquivo externo(somente para UNIX)


Funo para abrir formulrio sapscript

Principais comandos ABAP

Comando/Funo PARAMETERS PERFORM READ DATASET... INTO READ TABLE

Descrio Criar parmetros de seleo Usado para chamar sub-rotinas Usado para ler e importar dados de um arquivo externo (UNIX) Ler registro em tabela interna

REFRESH
REPLACE REPORT SEARCH SELECT

Limpa todo o contedo de uma tabela interna


Substitui um texto dentro de outro texto Incio de um relatrio(programa) Procura um texto dentro de outro texto Usado para selecionar dados em uma tabela

Principais comandos ABAP

Comando/Funo

Descrio

SELECT-OPTIONS
SELECTION-SCREEN SET PF-STATUS SET TITLEBAR SKIP SORT SPLIT... AT... INTO

Declarar parmetros de seleo com opes


Criar BOX na tela Comando usado para definir menu a ser usado Criar ttulos em janelas Saltar linha Ordenar o contedo de uma tabela interna Comando usado para separar contedo de uma varivel e outra(s)

START_FORM
START-OF-SELECTION

Funo para iniciar formulrio sapscript


Evento para marcar incio da rotina principal do programa

Principais comandos ABAP

Comando/Funo STRLEN SUBTRACT SUM SY-BATCH

Descrio Retorna o tamanho de um texto Subtrai um valor numrico de outro valor Totaliza um campo numrico Indica execuo em background

SY-DATUM
SY-LANGU SY-LINNO SY-LISEL SY-MANDT SY-PAGNO

Retorna a data atual do sistema


Retorna o idioma de logon Linha corrente em um relatrio Linha selecionada em relatrios interativos Retorna o mandante Faz paginao automtica(num. Pagina)

Principais comandos ABAP

Comando/Funo SY-SUBRC

Descrio Retorna o resultado de uma execuo(OK ou No OK)

SY-TABIX
SY-UCOMM SY-UNAME

Linha corrente de uma tabela interna


Retorna o nome de um boto Retorna o usurio logado

SY-UZEIT
SY-VLINE SY-ULINE SY-CPROG SY-TCODE TABLES

Retorna a hora atual do sistema


Serve para fazer o fechamento de bordas de um relatrio Imprime uma linha com n posies Retorna o nome do programa principal Retorna o cdigo da transao Usado para declarar tabelas

Principais comandos ABAP

Comando/Funo TOP-OF-PAGE TRANSFER... TO... TYPES UPDATE WHILE... ENDWHILE WRITE WRITE_FORM WS_UPLOAD

Descrio Evento para incio de cabealho em um relatrio Usado para ler e gravar em arquivo externo (UNIX) Define estrutura para tabelas internas Atualiza o contedo de uma tabela transparente Cria laos de execuo Sada em relatrio Funo para escrever no formulrio sapscript Funo para fazer upload de um arquivo externo

Executando um programa report

Captulo 4

CONCEITO DE PROCEDURES, FUNO E INCLUDES

Conceito de Procedures, funo e includes

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

Procedures: mdulos internos do programa, que possuem uma interface. Com uma declarao ABAP, possvel chamar um subprograma em um programa, a partir de qualquer outro bloco de processamento. Mdulos de funo: mdulos com uma interface transparente, disponveis em todo o sistema. Esses mdulos podem ser chamados de qualquer bloco de processamento e em qualquer programa ABAP que utilize uma declarao ABAP especial.

Conceito de Procedures, funo e includes

Procedures O bloco de processamento de um subprograma comea com 'FORM <subroutine name> <interface definition>' e termina com ' ... ENDFORM. ' . possvel utilizar a declarao DATA em uma rotina FORM para declarar os dados locais. Se um objeto local tem o mesmo nome de um objeto global, o global ser invisvel dentro do subprograma.

Conceito de Procedures, funo e includes

- A interface definida da seguinte maneira: Aps USING, deve-se relacionar em uma lista todos os parmetros que o subprograma s precisa ler. Aps CHANGING, deve-se relacionar em uma lista todos os parmetros que o subprograma vai modificar e cujos valores sero transferidos para o programa de chamada. Aps TABLES, deve-se relacionar em uma lista todas as tabelas internas que ir modificar e cujos valores sero transferidos para o programa principal.

Conceito de Procedures, funo e includes

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

As rotinas FORM podem ser chamadas a partir de qualquer bloco de processamento ABAP por meio de PERFORM <nome do subprograma> <interface>. O nmero de parmetros atuais deve ser igual ao de parmetros formais. No possvel ter parmetros opcionais. Os parmetros so atribudos na seqncia em que esto relacionados na lista. Quando um subprograma chamado com a declarao PERFORM, o sistema verifica se os tipos dos parmetros atuais de PERFORM so compatveis com os parmetros formais.

Conceito de Procedures, funo e includes

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

Como criar um mdulo de funo em ABAP

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

Tambm podemos executar procedures relacionadas em outros programas utilizando a sintaxe abaixo:

- PERFORM <nome da procedure> IN PROGRAM <nome do programa> CHANGING <valor> IF FOUND.

Criando um report chamando procedures e funes

- Submit

O comando submit utilizado para chamar de dentro de um programa outro programa com os parmetros desejados. Ex : SUBMIT < Nome do programa > USING SELECTION-SCREEN < Nmero da tela > WITH <PARAMETERS> EQ <valor do parmetro> <SELECT-OPTIONS> IN <valor do parmetro> AND RETURN.

Criando um report chamando procedures e funes Funes :


-Mdulos de funo so subprogramas externos com uma interface transparente. A interface considerada transparente porque no est includa nas declaraes do programa ABAP para a parte executvel do mdulo de funo. A interface definida separadamente e pode ser atualizada independentemente do texto. -Com os parmetros opcionais, acrscimos interface podem tornar as declaraes do programa ABAP completamente executveis sem qualquer modificao. 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 programas customizados (Pesquisa na SE37).

Criando um report chamando procedures e funes


- Transao SE37
A transao SE37 responsvel pela criao de funes.

Criando um report chamando procedures e funes


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 uma funo internamente pelo sistema. - Mdulo de acesso remoto definida quanto a funo chamada remotamente 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 mdulos de funo utilizam os mesmos mtodos de transmisso de parmetros que as rotinas FORM.

Excees: se, durante o processamento, ocorre um erro em um mdulo, possvel inserir a correo dentro do prprio mdulo como uma exceo. possvel antecipar possveis erros e escrever o programa de modo que eles no causem erros de tempo de execuo. As possveis excees so denominadas na interface do mdulo de funo e acionadas a partir do texto de programa, por meio da declarao RAISE. Cada programa que chama o mdulo de funo consulta sy-subrc para interpretar as excees.

Criando um report chamando procedures e funes


Valor proposto : Valor inicial para o parmetro caso no seja passado nenhum valor na interface.

Opcional: Parmetro no obrigatrio.

Transf.Valores: A transferncia do parmetro efetuada com transferncia de valor. Isto significa que o contedo do parmetro copiado durante a transferncia. Em estruturas que contm tabelas, isto pode levar a fortes redues de performance e, se possvel, no deve ser utilizado.

Criando um report chamando procedures e funes


Criar uma funo z_busca_price. Essa funo dever buscar o campo price da 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

Criando um report chamando procedures e funes - Includes:


Programas do tipo include, pode se modularizar um programa utilizando cdigos fontes no executveis e chama-se esses cdigo de dentro do programa principal. utilizado para declaraes de variveis em programas muito extensos.

Criando um report chamando procedures e funes


- Criar um programa utilizando funo e procedures.

Captulo 5

SQL

Captulo 5 SQL

Comandos SQL. Performance.

Comandos SQL

Comandos SQL

Comandos SQL

Comandos SQL

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 WA WITH NON-UNIQUE KEY CITYFROM CITYTO. SELECT CARRID CONNID CITYFROM CITYTO INTO CORRESPONDING FIELDS OF TABLE ITAB FROM 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

ALGUNS TIPOS DE SELECT


SELECT FROM <table> INTO TABLE <INTERNAL TABLE> . A estrutura da tabela interna deve corresponder estrutura da tabela que est sendo acessada. O sistema l os registros em conjunto, no individualmente, e os coloca dentro de uma internal table. Este processo mais rpido que ler individualmente atravs de um LOOP e ir gravando os registros, um a um.

Comandos SQL

SELECT * FROM <table> APPENDING TABLE <internal table>. L os registros e os inclui - no sobrepe - em uma internal table. SELECT . INTO CORRESPONDING FIELDS OF TABLE <itab>. Neste caso a estrutura da tabela interna no precisa corresponder estrutura da tabela que est sendo acessada. <itab> 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

SELECT .. APPENDING CORRESPONDING FIELDS OF TABLE <itab>. 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 ..<campo>.. EQ <contedo> 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 * up to 1 row. Neste caso no necessrio especificar a chave completa.

Comandos SQL

SELECT * FROM <tabela> Quando no se impe nenhum tipo de restrio, ocorre uma varredura sequencial dos registros da tabela. Quando se utiliza grandes tabelas, isso obviamente afeta o runtime. 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 <tabela> WHERE <campo> eq <contedo>. L todos os registros da tabela especificada onde o campo igual ao contedo especificado. O ideal que se qualifique a clusula WHERE tanto mais quanto seja possvel. Atentar que isso vlido para tabelas do tipo Pool e Transparent. Para Cluster, seguir as recomendaes dadas anteriormente.

Comandos SQL

SELECT <a1> <a2> INTO (<f1>, <f2>, ) FROM .<tabela> WHERE . L as colunas especificadas (a1, a2). Aps INTO devero ser especificadas as reas de trabalho auxiliares (f1, f2). O nmero de colunas lidas dever ser igual ao nmero de work-areas especificadas.

SELECT * FROM <table> WHERE <table field> BETWEEN <field1> and <field2>. Ex.: field1 = 100 e field2 = 500. Pega inclusive 100 e 500. Voc trabalha com o range.

Comandos SQL

SELECT * FROM <table> WHERE <table field> 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 <table> WHERE <table field> IN (.,.). Exemplo: select * from <table> where campo1 in (123,1000) - podem ser valores ou literais. igual a perguntar se campo1 123 ou 1000.

Comandos SQL

SELECT * FROM <table> FOR ALL ENTRIES IN <internal table> WHERE campo1 = <contedo> and campo2 = <contedo> Defino uma tabela interna. Alimento os campos desta tabela interna. (move e append). 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

SELECT * FROM <table> ORDER BY <field1> <field2> 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

Para se obter uma otimizao da performance em programas ABAP, deve-se minimizar 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 dados todos 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 fortemente especificada, com vrias condies, visando restringir ; ndices no utilizados;

Performance

Falta de ndices; Select em tabelas com alto nmero de registros utilizando clusula where 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

Comandos Select
Visando garantir a performance e evitar problemas futuros, cuidado com os comandos empregados. Existem alguns tipos de select mais eficientes que outros. Analise a aplicao que ser desenvolvida e faa a melhor escolha.

Performance

Dicas para otimizao do cdigo


Use o comando FREE para liberar espao em internal tables; Sempre usar os comandos 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. interessante que a tabela interna contenha os campos na sequncia em que sero movimentados; Ao utilizar o comando CASE, codificar sempre a clusula WHEN OTHERS;

Performance

Sempre identifique se um SORT ascending ou descending e especifique a clusula BY <fields>. 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 LOOP, e assim por diante.

novo

SORT

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

Performance

SELECT (para Transparent e Pool Tables): a clusula WHERE deve conter, preferencialmente, os campos chaves e demais campos que possam restringir a pesquisa; SELECT (para Cluster Tables): s os campos chaves devem ser especificados na clusula WHERE. Os demais devem ser checados atravs do comando CHECK;

O conhecimento do contedo dos dados de uma tabela pode auxiliar no momento da codificao do comando select. O campo que ocorrer em nmero menor de vezes dever constar na clusula where antes daquele que ocorre um nmero maior de vezes, caso seja necessrio satisfazer a ambas condies. Isso faz com que o processamento seja mais gil.
Manuseio de tabelas: Estudar a possibilidade de manuseio em tabelas internas para agilizar o processo. Analisar tambm o uso de comando select, sendo o que melhor se adapte a situao em questo.

Performance

MXIMAS DA BOA PROGRAMAO:


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

Para mais informaes chame a Transao SE30 Boto Tips & Tricks

Captulo 6

PROGRAMAS ON-LINE

Captulo 6 Programas On-line

Conceito de PBO e PAI e module. Como criar um programa ON-LINE. Criando telas no ON-LINE. Criando um ON-LINE.

Conceito de PBO, PAI e module.

Mdulo Pool o programa principal de um "Dialog" ou On-line. O Dialog composto por um programa principal (pool module), includes, mdulos e telas. No pool de mdulo voc encontrar apenas os includes que por sua vez contm os mdulos e sub-rotinas que formam o programa. Cada mdulo est associado a uma tela, e a tela possui sua parte grfica que pode ser desenhada 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 uma transao, o que uma particularidade deste tipo de programa.

Conceito de PBO, PAI e module.

Lembre-se: no programa tipo pool de mdulo voc s ver os includes, para entender todo o funcionamento ter que entrar nos includes modules screens. Geralmente os includes pertencem a 4 nveis distintos: 1) Top (rea geral de declarao); 2) PBO (Process Before Output - Processos antes de Apresentar a Tela); 3) PAI (Process After Input - Processos aps Entrada de Dados) e 4) Contm as subrotinas chamadas pelos mdulos "PERFORM".

Como criar um programa ON-LINE

Os Componentes Principais de um Dialog Program (On-line) Voc usa o Screen Paiter e o Menu Painter para criar e desenhar telas e programas 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 de tela. O processador de dilogo controla o fluxo do seus programa dilogo.

Como criar um programa ON-LINE

Comunicao: Tela ABAP/4 module Pool O fluxo lgico da tela dividido em dois eventos para cada tela: O evento PBO executado antes da tela ser apresentada. O evento PAI executado aps o usurio pressionar ENTER. O sistema processa os mdulos de evento numa sequncia Em cada mdulo, o controle passa do processador de dilogo para o processador ABAP/4. Depois do processamento, o controle retornado para o processador de dilogo.

Como criar um programa ON-LINE

Quando todos os mdulos do PBO forem processados, o contedo dos campos da rea de trabalho (work rea) ABAP/4 so copiados para os campos 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 nome na rea de trabalho (work rea) ABAP/4.

Criando telas no ON-LINE

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

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 e sada, 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 o mouse e ento escolhe Delete.

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

Criando um ON-LINE

Transao SE80

Captulo 7

LISTAS E ALV

Captulo 7 Listas e ALV

Formatao de relatrios Principais comandos para uma lista Formatao do relatrio ALV Criando uma Lista e um relatrio ALV

Formatao de relatrios

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 tanto para o usurio que interage com o relatrio. O ALV atravs de suas funes e estruturas torna o desenvolvimento mais simples na medida que economiza significativas linhas de cdigo como por exemplo no tratamento de quebras,totais,subtotais,cores e outras vantagens que veremos a seguir. Principais estruturas de montagem do relatrio ALV
slis_layout_alv slis_sortinfo_alv slis_t_fieldcat_alv

Formatao de relatrios

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'


EXPORTING i_callback_program i_callback_pf_status_set i_callback_user_command is_layout it_fieldcat it_sort TABLES t_outtab

= c_repid = 'SET_PF_STATUS' = 'USER_COMMAND' = s_layout2 = it_inf_campos2 = t_qbr_campos[]


= it_lote2.

Principais comandos para uma lista

SLIS_LAYOUT_ALV Criar estrutura do tipo SLIS_LAYOUT_ALV Ex:s_layout2 type slis_layout_alv Campos fundamentais da SLIS_LAYOUT_ALV
colwidth_optimize - otimizao de largura de colunas.Passar flag ou no. zebra - mudana de cores de cada sada de linha do Relatrio na mesma estrutura. Passar flag ou no. box_fieldname Exibio de checkbox em cada item da(s) I_TABs de exibio do relatrio.Passar o nome real do(s) campo(s) checkbox. window_titlebar Ttulo na barra de ttulo

Principais comandos para uma lista

SLIS_SORTINFO_ALV Criar estrutura do tipo SLIS_SORTINFO_ALV Ex.: sortinfo type slis_sortinfo_alv

Campos fundamentais da SLIS_SORTINFO_ALV


Spos Sequncia de ordenao. Fieldname Nome do campo da i_tab que deseja fazer a ordenao. Up Direo de ordenao ascendente. Tabname Nome da i_tab de sada

Principais comandos para uma lista

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_pos sada na linha desejada. col_pos - Coluna a qual desejamos exibir o campo da I_tab de sada Fieldname Nome do campo da tabela interna(importante que esse nome de campo da tabela referida em ref_tabname) Tabname Tabela interna onde se encontra campo. Key Definio de campo chave na sada do relatrio com formatao especfica do padro do R3. Checkbox Precisamos informar apenas em ALV Hierarquico na i_tab de itens Just Justificar e podemos passar Right( R ) Left(L) ou Center( C ) Lzero Omitir zeros em impresso de relatrio fix_column Flag ou no para manter campo fixado na tela do_sum total do campo especificado no_out Exibio obrigatria(O) No exibir em sada default(X)

Formatao do relatrio ALV

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

Captulo 8

CONCEITO DE BATCH-INPUT E BAPIS

Captulo 8 Conceito de Batch-input e Bapis

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

Batch Input O Batch Input uma tcnica standard para a transferncia de grandes volumes de dados para o Sistema R/3. O fluxo transacional simulado ( SHDB) e os dados so transferidos como se entrassem de forma online. A vantagem que so executados todas 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

Funes para criar Sesses: call function 'BDC_OPEN_GROUP' exporting client = <cliente> group = <nome_pasta> user = <usurio> keep = 'X'. (manter pasta)

call function 'BDC_INSERT' exporting tcode = <cod_trans> tables dynprotab = <bdc_tab>.


call function 'BDC_CLOSE_GROUP'.

Qual a funo de um Batch-input

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 - parecido

com 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

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

Sintaxe: CALL TRANSACTION <tcod> [AND SKIP FIRST SCREEN] (pula a 1 tela da transao) [USING <itab>] [MODE <display_mode>] [UPDATE <update_mode>] MESSAGES INTO <imsg > (mensagem standard)

O que uma BAPI

BAPIs so funes disponibilizadas pela SAP para realizar processos dentro do R/3. Exemplo: Criao pedido de compra, ordem de venda e outros. Normalmente so implementadas como mdulos de funes. Todas so criadas e gerenciadas 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 batch input ou call transaction.

Criar um mapeamento.

Transao SHDB

Captulo 9

DEBUG

Captulo 9 Debug

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

Qual a funo do Debug

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

No Debugger, podemos executar o cdigo fonte passo a passo, desta forma o programa em execuo interrompido depois de cada passo, permitindo que voc 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

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

Verificar a barra de status.

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

Principais comandos para utilizar um Debug

Observe no modo Debug a seguinte tela:

Nesta tela que poderemos EXIBIR e MODIFICAR valores das variveis em tempo de execuo do programa, Lembre-se estamos em modo debug onde cada comando segue passo a passo o que pedimos.

Principais comandos para utilizar um Debug

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 subrotina ou da funo foi processado, o controle retorna ao comando seguinte do CALL FUNCTION ou do PERFORM. Entra nas subrotinas Executar: Boto ou F6 :

Use essa opo para executar o programa linha a linha. Todos os comandos da linha corrente so processados em um nico passo. Se estiver posicionado em uma linha que chama uma subrotina, o Debugger processa a subrotina em modo oculto e retorna para a linha seguinte a chamada da subrotina. Isso permite que pule nos comandos dentro da subrotina. No entra nas subrotinas

Principais comandos para utilizar um Debug

Retorno: Boto

ou F7:

O debugger retorna de uma rotina para o ponto de controle definido no programa principal. Use esta opo para retornar de uma subrotina, mdulo de 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 no existir mais breakpoints no programa e nenhum cursor for definido o sistema sai do modo debugging e executa o resto do programa normalmente. Executa toda a rotina at o final, sem parar.

Das könnte Ihnen auch gefallen