sexta-feira, 13 de abril de 2012

Classe de Mensagens - SE91

  "  Para uma melhor organização das mensagens e as vezes porque o Cliente
" não deixa usar Hardcodes ( Sabe akelas coisas que você usa entre aspas
" simples que ficam verdes dentro do código fonte.... Isso são Hardcodes. )
" usamos as Classe de mensagens é la colocamos as informações que servem
" como interação com o Usuário.
"  Pra começar vamos entrar na transação SE91.

 




"  Coloquem um nome na classe e apertem o botão 'Criar', na aba
" 'Características' Informe o 'Texto Breve' que seria a descrição da classe.
" Agora na aba 'mensagens' escreva na Mensagem '000' conforme abaixo.



"  Pronto agora você tem uma classe de mensagens, agora como vamos usar...
" Segue abaixo dois programas, um usando Hardcode e outro usando Classe
" de mensagem.

*&---Programa msg Hardcode---------------------------------------------*
REPORT z_msg_na_unha.

DATA :
  message TYPE string.

START-OF-SELECTION.

  CONCATENATE 'O Usuário ' sy-uname 'não está fazendo nada.'
    INTO message
    SEPARATED BY space.

  MESSAGE message TYPE 'E'.

END-OF-SELECTION.
*&---------------------------------------------------------------------*

*&---Programa com Classe de MSG----------------------------------------*
REPORT z_class_message.

START-OF-SELECTION.

"  Aqui ele pega a mensagem 000 da classe de msg Z_MSGTST com o Tipo Erro,
" pois tem um 'e' na frente do número da mensagem e o sy-uname e o valor que
" substituirá o '&' (e Comenrcial) dentro da mensagem. Se eu não me engano,
" pode ter até 4 entradas ( & ) dentro de cada mensagem da classe.
  MESSAGE e000(z_msgtst) WITH sy-uname.

END-OF-SELECTION.
*&---------------------------------------------------------------------*

"  A classe de mensagem também dá um grande auxílio para que possamos traduzir
" os textos de interação com o Usuário, mas isso eu passo na próxima.t+.

3 comentários:

  1. " Existe uma outra forma também que eu esqueci de comentar que é
    " declarando a classe de mensagem como padrão do programa usando
    " o comando 'MESSAGE-ID' depois do nome do programa conforme abaixo,
    " fazendo isso não será preciso informar depois do numero da msg
    " o nome da classe de mensagem, isso irá funcionar para todas as
    " mensagens, mas caso durante o código você queira usar uma única
    " msg de outra classe então e só identificar essa msg especifica
    " com a classe dela quinem exemplo do post mesmo. segue exemplo.

    REPORT z_class_message MESSAGE-ID z_msgtst.

    START-OF-SELECTION.

    MESSAGE e000 WITH sy-uname.

    END-OF-SELECTION.

    ResponderExcluir
  2. Top, estou gostando muito dos seus ensinamentos! Bem didático!

    ResponderExcluir
  3. Muito legal! Bem direto e objetivo. Obrigado!

    ResponderExcluir