Você está na página 1de 25

Treinamento

ABAP

SAP R/3

MÓDULO ABAP

MODULE POOL
TREINAMENTOO

Técnicas Básicas de Programação de Diálogo


Componentes Básicos de um Diálogo

Transação do Object Bowser.

- Para a programação de Diálogos, você pode usar o Screen Painter e o Menu Painter, ou
simplesmente usar a transação ( SE80 ), onde você encontrará o Object Browser.

- A lógica da programação de Diálogos continua sendo feita em ABAP/4 normalmente, apenas


a criação das telas é que muda. Inclusive as estruturas encontradas no Dicionário ABAP/4
podem ser usadas neste tipo de programação.

- O Processador dos Diálogos controla a lógica de seu programa, gerando a intermediação


entre a tela e o programa em ABAP/4

Screen Painter

1Data : 05/10/07 CURSO DE ABAP/4 Página 1 de 25


TREINAMENTOO

- Para criar uma tela, siga os seguintes passos :

- Defina as características básicas da tela ( Atributos da Tela )

- Desenvolva o layout da tela ( Use o Editor de Telas )

- Defina os atributos dos campos ( Lista de Campos )

- Construa a Lógica das Telas

- Componentes principais do Programa ABAP/4

- Variáveis ou Estruturas Globais, geralmente colocados no TOP Include

- Módulo PBO ( Process Before Output ) -> Antes da tela aparecer

- Módulo PAI ( Process After Input ) -> Após Intervenção do Usuário

- Subrotinas ( Se necessário )

Abap/4 – Module Pool

2Data : 05/10/07 CURSO DE ABAP/4 Página 2 de 25


TREINAMENTOO

- A lógica das telas se divide em duas partes:

- PBO que é executado antes do aparecimento da tela

- PAI que é executado após a intervenção do usuário

- Nesta rotina, o controle do programa passa do Processador de Diálogos para o Processador


ABAP/4 e vice-versa.

- Existe uma área de trabalho nas telas onde por exemplo, após o processamento de todos os
módulos PBO, o conteúdo das variáveis são copiados para esta outra área de trabalho com os
nomes idênticos. Isto ocorre também antes dos módulos PAI serem processados.

- Ao criar um programa, pode-se utilizar um include para guardar os dados globais


necessários. Para isso o sistema oferece a criação automática deste include que terá
geralmente as últimas cinco letras, seguidas por TOP. Ex: SAPMTALA -> MTALATOP

Layout da Tela

3Data : 05/10/07 CURSO DE ABAP/4 Página 3 de 25


TREINAMENTOO

- Para a criação e desenvolvimento da tela, pode-se usar tanto o editor mas simples como o
editor gráfico, cujo contém várias funções bem mais fáceis de se trabalhar.

- Para a eliminação dos elementos das telas, basta clicar duas vezes com o mouse e escolher
DELETE.

- Para mover os elementos da tela, use o cursor para indicar o novo controle.

Características de Campos
- Como pode-se ver nas figuras, existem seis diferentes visões para se editar características de
um campo.

4Data : 05/10/07 CURSO DE ABAP/4 Página 4 de 25


TREINAMENTOO

- NO caso dos campos de tela, você deve usar os códigos externos de um dicionário para defini-
los como CHAR, NUMC, INT4 e não type C, type P ou type N. Porém no caso de o campo
indicado na tela estar criado no Dicionário ABAP/4, as características são automaticamente
assumidas, caso contrário deve ser posto manualmente..

5Data : 05/10/07 CURSO DE ABAP/4 Página 5 de 25


TREINAMENTOO

Definindo e Processando um Módulo

- Os módulos criados dentro do PBO, possuem a adição de OUTPUT, enquanto os módulos


criados durante o PAI, possuem a adição INPUT.

- Ao utilizar na lógica das tela dentro do módulos as variáveis, estas devem estar com
exatamente os mesmo nome para que haja a comunicação entre os processamentos do
Diálogo e do ABAP/4.

6Data : 05/10/07 CURSO DE ABAP/4 Página 6 de 25


TREINAMENTOO

Definindo Transações

- Para inicializar um programa de diálogo, deve-se usar as transações.

- As transações podem ser criadas de várias formas, neste caso como transação de Diálogos,
onde será especificado o nome da transação.

Checagem de Campos Automática


7Data : 05/10/07 CURSO DE ABAP/4 Página 7 de 25
TREINAMENTOO

- Quando um usuário estiver utilizando uma tela, mesmo sendo transparente para ele, o
sistema estará realizando um grande quantidade de checagens automáticas.

- Neste caso temos três tipos de checagens automáticas como por exemplo:

- Campos Obrigatórios, Tipo de Formato e o uso de chave estrangeira.

- No caso de Campo Obrigatório, este será acionado apenas se o programador tiver estipulado
tal característica ao campo e no caso de Chave estrangeira, isto ocorrerá apenas quando o
campo tiver sido criado como tal no Dicionário de Dados

Checagens Determinadas pelo Programador

- Se você quiser checar os dados inseridos pelo usuário e realizar algumas consistências, você
deve usar o comando FIELD primeiramente para usar o comando MODULE, pois somente
assim você estará habilitando o campo novamente para inserção de dados no caso de erro.

- Após feito isso, deve-se bolar a lógica e usar-se dos tipos de mensagens existentes como (E) de
erro, (W) de aviso e (A) de abortagem.

Resumo do Menu Painter


8Data : 05/10/07 CURSO DE ABAP/4 Página 8 de 25
TREINAMENTOO

- O Menu Painter permite a você definir as funções que serão usadas na sua tela, além do
status e assim designa-las à uma Barra de Menus, Barra de Botões Standard e Barra de
Botões customizadas.

- Em geral você define uma Barra de Menu para cada aplicativo e o designa a Ter um Status.
Em cada Status você consegue definir quais funções serão ativadas ou desativadas.

9Data : 05/10/07 CURSO DE ABAP/4 Página 9 de 25


TREINAMENTOO

Definindo Interface GUI

- As barras de Menu podem Ter até oito menus incluindo os dois menus que são do sistema,
sendo assim você pode definir até seis menus.

- Um menu pode Ter até 15 entradas, que seriam as funções e suas respectivas descrições, além
dos sub-menus e linhas de separação.

- Você deve especificar quais funções que estão ativas nos na barra de menu.

- Na barra de Botões Standard, você apenas deve colocar uma função para ativá-los.

- Na barra de botões customizados, você deve primeiramente criar os botões e então colocá-los
na barra.

- Esta funções podem conter o nome que você desejar.

10
Data : 05/10/07 CURSO DE ABAP/4 Página 10 de 25
TREINAMENTOO

Lendo Códigos de Funções


- Para cada botão é designado um código de função, sendo assim quando um usuário pressiona
um desses botões, este código é disparado junto do evento PAI.

- O código da função pressionada estará preenchido no campo que você definirá como formato
OK e este deve ser do tipo CHAR de tamanho 4. Este campo é conhecido como o Campo de
OKCODE, usado no Batch Input.

- É recomendado usar um Backup para este campo, para evitar que este receba algum valor ao
mudar de telas.

- Além deste campo, pode se ler o valor da função pressionada através do campo SY-UCOMM
que pertence a tabela do sistema chamada SYST.

11
Data : 05/10/07 CURSO DE ABAP/4 Página 11 de 25
TREINAMENTOO

Definindo Elementos Gráficos

- Para Campos de Checkbox e Radiobuttons você deve definir uma campo de um byte de
tamanho do tipo input/output e um campo de texto.

- No caso de se querer uma caixa de diálogo, você deve especificar um Título para a caixa
primeiramente. Então posicionar o cursor sobre o título e clicar em Elemento Gráfico para
mudar para o modo de seleção de características gráficas.

- No caso de subtelas, selecione uma posição na tela que será o canto superior esquerdo e
pressione o botão de Subtela. O modo de seleção mudará para que você possa o tamanho da
sua subtela. Porém antes você deverá especificar o nome desta subtela.

12
Data : 05/10/07 CURSO DE ABAP/4 Página 12 de 25
TREINAMENTOO

Definindo Elementos Gráficos – 2a. Parte

- No caso de Radiobuttons, você deve a partir do posicionamento do cursor no botão e


pressionando a tecla de Elemento Gráfico, definir um Grupo Gráfico para que estes botões
escolhidos para este grupo lhe permitam apenas uma escolha por vez.

- No caso de Subtelas, você define também através deste botão de elemento gráfico o fim da
área da subtela.

13
Data : 05/10/07 CURSO DE ABAP/4 Página 13 de 25
TREINAMENTOO

Definindo Ícones

- No momento em que você está criando o campo, você tem a opção de associar ao elemento
gráfico um ícone que o SAP tenha.

- O tamanho deste campo para receber um ícone deve Ter no mínimo 6 bytes de tamanho que
seria no caso sem textos de ícone, ou maior para que receba os textos.

- Se quiser Ter certeza que o ícone vai ocupar o mínimo espaço possível na sua tela, deve-se
criar um campo também com um mínimo de 6 bytes de comprimento, porém com apenas 2
bytes de comprimento visível.

14
Data : 05/10/07 CURSO DE ABAP/4 Página 14 de 25
TREINAMENTOO

Checagem Automática: Valores Fixos


- Estes valore fixos, podem ser definidos no Dicionário ABAP/4

- Se você definir um campo na tela, o qual esteja criado no dicionário de dados e este possua
um domínio com valores fixo

- Estes valores fixos podem ser exibidos com a tecla F4

- Os valores colocados neste campo serão checados quanto a existência deles

15
Data : 05/10/07 CURSO DE ABAP/4 Página 15 de 25
TREINAMENTOO

Checagem Através de Mensagens


- Se você quiser checar valores colocados nas telas, pode-se gerar críticas através do comando
message que será usado dentro de um módulo no evento PAI. Se este erro estiver se
referenciando a um campo específico, você deve usar o comando FIELD para fazer esta
referência.

- No caso das mensagens de erro (E) e warning (W), a tela é refeita sem passar pelos modulos
do PBO, os textos são mostrados e apenas os campos referenciados são aptos para entrada de
dados novamente.

- Note que sem o uso do comando FIELD, no caso da mensagem de erro se executada, o campo
que contém o dado com problema não será reabilitado e apenas será mostrado a mensagem
de erro.

16
Data : 05/10/07 CURSO DE ABAP/4 Página 16 de 25
TREINAMENTOO

Controle de Mensagens de Erro


- Quando um usuário modifica o conteúdo original de uma entrada resultando em um erro ou
em um aviso, os módulos PAI não precisam necessariamente ser reprocessados inteiramente,
mas reinicializados a partir do ponto crítico do processamento. Para isto deve-se estabelecer
as seguintes coisas:

- Determinar qual comandos CHAIN e FIELD possuem a mensagem de erro

- Determinar todos os nomes de campos com o comando FIELD para o comando CHAIN

- Reinicializar no exato campo ( FIELD ) do relevante ( CHAIN )

- Se o usuário passa por cima de uma mensagem de Aviso, não mudando o valor dos campos, o
processamento continua a partir do módulo após o comando de mensagem de aviso.

17
Data : 05/10/07 CURSO DE ABAP/4 Página 17 de 25
TREINAMENTOO

Valores Padrões na Memória do SAP

- Na memória do SAP, você pode guardar valores sob um Parameter iD. Estes valores são
guardados para cada sessão de usuário e levados através das sessões.

- O comando SET PARAMETER copia o conteúdo durante o PAI para a memória.

- O comando GET PARAMETER copia o conteúdo da memória para o campo em questão no


final do Módulo PBO, isso desde que o campo esteja com seu valor inicial, ou seja, padrão.

- Você pode definir estes comandos nos atributos do campo em questão, ou no caso do campo
já Ter isso como referência no Dicionário de Dados.

- Os Parameter Ids estão localizados na tabela TPARA.

18
Data : 05/10/07 CURSO DE ABAP/4 Página 18 de 25
TREINAMENTOO

Seqüência Dinâmica de Telas

- Você pode modificar a seqüência de telas da seguinte maneira:

- Usando SET SCREEN para mudar o valor temporariamente

- No caso de usar SET SCREEN, você deverá usar o comando LEAVE SCREEN que
assumirá o valor da próxima tela que estiver na memória.

- Pode se usar também o comando LEAVE TO SCREEN ##, que irá direto para a tela
designada pelo comando, independentemente do que estiver na memória.

- Usando CALL SCREEN para inserir um processamento de uma ou mais telas antes da
que seria a próxima tela. O processamento continua normalmente após a saída desta tela.

- No caso do uso do CALL SCREEN, deve-se usar os comandos SET SCREEN 0 e


LEAVE SCREEN ou LEAVE TO SCREEN 0, para que o processamento volte
exatamente de onde foi interrompido pelo CALL SCREEN

19
Data : 05/10/07 CURSO DE ABAP/4 Página 19 de 25
TREINAMENTOO

Inserindo Telas como Caixas de Diálogos


- No caso de se desejar incluir uma tela como uma caixa de diálogo, deve-se usar os as
seguintes adições ao comando CALL SCREEN:

- STARTING AT e ENDING AT, pois assim você especifica em que lugar da tela
começara e terminara a exibição de sua tela

- No caso de se usar a adição ENDING AT, o sistema a caixa de diálogo na área


predeterminada pelas coordenadas, sendo que se esta área for menor, a tela será
truncada e aparecerão barras de rolagem.

20
Data : 05/10/07 CURSO DE ABAP/4 Página 20 de 25
TREINAMENTOO

Execução Condicional de Modulos

- Se você especificar ON INPUT depois do comando MODULE dentro de um comando


FIELD, o módulo somente será executado se o campo em questão tiver outro valor que não o
inicial.

- No caso do comando CHAIN, você deverá especificar ON CHAIN-INPUT. Isto fará


que o módulo somente seja processado se pelo menos um dos campos possuir um valor
diferente do inicial.

- Se você especificar ON REQUEST depois do comando MODULE dentro de um comando


FIELD, o módulo somente será executado se o campo em questão tiver um novo valor.

- No caso do comando CHAIN, você deverá especificar ON CHAIN-INPUT. Isto fará


que o módulo somente seja processado se pelo menos um dos campos possuir um novo
valor.

- Você só poderá usar estes comandos ON INPUT, ON REQUEST se os módulos estiverem


associados a um campo.

- Se na Interface GUI, o campo tiver sido definido como função do tipo ‘E’, o modulo com a
adição AT EXIT COMMAND será executado antes das checagens automáticas dos campos.

21
Data : 05/10/07 CURSO DE ABAP/4 Página 21 de 25
TREINAMENTOO

Tipos de Funções

- Os tipos de funções informam ao processador das telas como interpretar o código de função
estipulado.

- Por exemplo, no caso do tipo ‘E’, irá executar o modulo AT EXIT COMMAND, porém
no caso do tipo ‘T’, este irá tentar executar o código de função como se fosse uma
transação no SAP.

22
Data : 05/10/07 CURSO DE ABAP/4 Página 22 de 25
TREINAMENTOO

Textos Dinâmicos e Estáticos

- Ao definir um Texto para uma função você pode escolher entre este texto ser estático ou
dinâmico.

- No caso do texto estático, nunca poderá ser mudado durante a execução do programa,
porém no caso do dinâmico, este texto será determinado pelo próprio programa durante a
execução.

- Você pode usar a opção CHANGE TEXT TYPE para converter o tipo de texto.

- Além destes dois tipos de texto, como vimos anteriormente em relação aos comandos, você
pode definir um Ícone para o texto.

- Estes ícones estão em uma lista de ícones que pode ser acessada pelo botão Propose Icons.

- Porém estes ícones são apenas mostrados na barra de botões customizados.

Definindo Áreas de Menu


23
Data : 05/10/07 CURSO DE ABAP/4 Página 23 de 25
TREINAMENTOO

- Você pode definir uma Área de Menu através da transação SE93, que criará apenas uma
interface GUI, sem lógica de processo ou amarração a telas, apenas o menu.

- Esta transação não tem nenhum código em especial, apenas funciona com o comando CALL
TRANSACTION.

- Estas Áreas de Menu podem ser adicionadas a determinados usuários para passarem a ser o
seu MENU PRINCIPAL, colocando este código de transação no PROFILE do usuário.

24
Data : 05/10/07 CURSO DE ABAP/4 Página 24 de 25

Você também pode gostar