" 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+.
" Existe uma outra forma também que eu esqueci de comentar que é
ResponderExcluir" 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.
Top, estou gostando muito dos seus ensinamentos! Bem didático!
ResponderExcluirMuito legal! Bem direto e objetivo. Obrigado!
ResponderExcluir