Sie sind auf Seite 1von 15

Sonda Procwork

Academia ABAP Interna Julho de 2011

Pensando grande para voc, pensando grande como voc.

Ver. 1.1.1107

23 de Jun de 2

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Seleo de Dados Retornando vrios registros SELECT <campos> FROM <TT> INTO TABLE <TI> WHERE <campo1> = <condio1> AND(OR) <campo2> = <condio2>.

Usando a clusula INTO e fazendo um outro select posteriormente na mesma tabela interna, os dados desta sero sobrescritos pelos novos dados da seleo. Para que os dados anteriores sejam mantidos e os novos sejam colocados ao final da <TI>, usa-se a clusula APPENDING. 23 de Jun de 2012

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Seleo de Dados Retornando um nico registro SELECT SINGLE <campos> FROM <TT> INTO <area> ou <registro> WHERE <campo1> = <condio1>.

A clusula INTO deve ser utilizada se os campos forem especificados. Ao utilizar SELECT * no preciso pois a linha encontrada ser atribuda Header Line da prpria <TT>. Este tipo de SELECT s deve ser utilizado quando na clusula WHERE estiver a chave primria da

23 de Jun de 2012 3

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Seleo de Dados Retornando um nico registro SELECT <campos> UP TO 1 ROWS FROM <TT> INTO <area> WHERE <campo1> = <condio1>. ENDSELECT.

Este tipo de SELECT deve ser utilizado quando a chave primria da <TT> no estiver na clusula WHERE.

23 de Jun de 2012 4

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Seleo de Dados Retornando vrios registros com critrios em uma <TI> SELECT <campos> FROM <TT> INTO TABLE <TI_1> FOR ALL ENTRIES IN <TI_2> WHERE <campo1> = <TI_2>-campo1.

Cuidados utilizando FOR ALL ENTRIES:


A <TI_2> dever conter pelo menos um registro, caso contrrio ser feito um acesso total na <TT> e retornar todos os registros da tabela. Portanto, antes do select sempre verificar se a tabela do For all entries tem contedo. Para tal, a seguinte verificao poder ser feita:
If not <TI_2>[] is initial. SELECT ... 23 de Jun de 2012 5

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Seleo de Dados Unindo tabelas via JOIN SELECT <campos> FROM <TT_1> INNER JOIN <TT_2> ON <TT_2>~<campo> = <TT_1>~<campo> INTO TABLE <TI> WHERE <TT_1>~<campo> in s_selectoptions.

Os tipos de Joins que podem ser utilizados so:


[INNER] JOIN LEFT [OUTER] JOIN
23 de Jun de 2012 6

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Tela de Seleo Campos de Tela

Existem dois tipos de comandos para inserirmos campos na tela de seleo de um report.
PARAMETERS

Ex.: parameters pc_codal like ztbacXXXcodal.


SELECT-OPTIONS

Ex.: select-options so_codal for ztbacXXXcodal.

23 de Jun de 2012 7

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Tela de Seleo Parameters

Coloca uma caixa de texto para que o usurio possa entrar com um valor desejado para realizar o filtro na hora da seleo do report.

Select-Options

Coloca 2 caixas de texto, pois insere uma rea de intervalos (range).

De... At...

23 de Jun de 2012 8

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Tela de Seleo Parameters

Caso o campo do parameter no seja preenchido, a seleo ser feita usando-se um espao em branco para comparao de valores e no vai retornar valor nenhum. Logo, bom colocar os campos que esto com parameter como obrigatrios. Caso eles no possam ser obrigatrios trocar por select-options com no intervals e no-extension.

Select-Options

O comando select-options, funciona diferente, caso no se preencha nada no campo, a seleo ser feita sem nenhuma restrio e todos os registros sero selecionados. Parmetros do select-option:
NO INTERVALS: No traz a 2 caixa de texto nem a palavra at.
23 NO-EXTENSION: No traz o boto com a setinha que serve parade Jun de 2012 9

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Tela de Seleo Frame

Para se colocar um Frame em volta dos elementos da tela de seleo deve se usar o seguinte cdigo:
...

Selection-screen begin of block XX with frame title text-xxx. Selection-screen end of block XX.

Ttulo do Report

Para mudar o texto que aparece na tela de seleo ao executar o programa:

Ir Para Elementos de texto textos de seleo Em seguida alterar o texto e ativar.


23 de Jun de 2012 10

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Dica Melhor Performance

Quando os campos utilizados na tela de seleo no forem chaves da tabela transparente, evitar de coloclos diretamente no SELECT. Deixar para apagar os registros que no servem aps fazer a seleo.
Ex.: DELETE <TI> WHERE NOT <campo> IN so_nome.

23 de Jun de 2012 11

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Classe de Mensagens O que ?

uma classe que contm vrias mensagens prdefinidas; Criao:


Na transao SE80 Processar objeto Criar

Nas mensagens, o caracter & tem uma funo dinmica, para incluirmos algum valor/dado no meio da mensagem.

Ex.: Pedido nmero & processado com sucesso.


Para declarar a classe no cabealho do report utilizamos:

REPORT ZPACRXXX message-id ZLAC_ALUNOX.

23 de Jun de 2012 12

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Mensagens Comunicao com o Usurio

Para enviarmos mensagens ao usurio utilizaremos o comando MESSAGE.

Ex.:

MESSAGE <tipo><numero>(<classe>)

O item <classe> pode ser suprimido caso tenha sido declarado no cabealho do Report; Se formos usar mensagens com texto dinmico, acrescenta-se with text, onde text-xxx representa o elemento de texto que contm a mensagem dinmica. Ex.: MESSAGE i001(ZLAC_ALUNOX) with text-xxx.

Tipos de Mensagens
I Informao W Warning E Erro S Sucesso A Abend X Dump
23 de Jun de 2012 13

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Estruturas de Repetio LOOP AT

O Comando LOOP AT serve para percorrer as linhas de uma <TI>.

Ex.:

LOOP AT <TI>. ... ENDLOOP.

LOOP AT ... WHERE

Podemos utilizar o comando Loop com uma clusula Where.

Ex.: LOOP AT <TI> WHERE <campo> = <condio>. ...


23 de Jun de 2012 14

Argentina Brasil Chile Colmbia Costa Rica Equador Mxico Peru Uruguai

Dicas Varivel de Sistema

A varivel de sistemas SY-SUBRC serve para sabermos se um comando foi bem sucedido ou no. Ento aps a execuo de qualquer comando, ela poder retornar os seguintes valores:

SY-SUBRC = 0 comando bem sucedido. SY-SUBRC <> 0 comando mal sucedido (Erro)

Organizao do Cdigo

No report, no devemos colocar cdigo solto dentro da rea da lgica principal (depois do start-of-selection). Devemos declarar somente os performs nesta rea e codific-los dentro do form que foi criado associado ao perform.

23 de Jun de 2012 15

Das könnte Ihnen auch gefallen