¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como exibir uma mensagem de erro sem sair do programa no SAP ABAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 105 Vistas
0
Cargando...

Estimados desenvolvedores,

Aqui está o problema que estou enfrentando:

Quando estou em ME51 (Criar Requisição de Compra) --> Itens de requisição de compra. Criei uma saída de usuário para validar alguns campos de tela. Eventualmente, se eu colocar um tipo de mensagem E ou A, sairá do programa completo. Se eu colocar um tipo de mensagem W, permitirá ao usuário inserir o valor pressionando 'ENTER' uma vez.

O que eu quero é que, se o campo da tela for inválido, então o programa não saia, apenas mostre uma mensagem de erro e permaneça na tela. Tentei com SET SCREEN 106 mas não funcionou. De qualquer forma, por favor, ajuda! Existe algum comando que posso usar para a minha condição anterior?

Obrigado e cumprimentos.

Cumprimentos,

Isaac

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Caro Vivekanadan,

De qualquer forma, obrigado pela sua ajuda. Acredito que você interpretou mal a minha pergunta. Na verdade, minha pergunta é muito específica sobre o submódulo de requisição de compra e sobre a saída do usuário. A criação da classe de mensagem está feita, mas apenas o texto da mensagem é afetado, não a ação pela mensagem.

No entanto, inesperadamente, hoje eu testei e descobri que a mensagem de erro não me obriga a sair do sistema. Então, acredito que isso deve estar bem e atender aos requisitos do cliente.

Aliás, muito obrigado pela sua paciência.

Tenha um bom dia!

Atenciosamente,

Isaac

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Isaac,

SE91 é simplesmente um procedimento para criar suas próprias mensagens que você pode mostrar aos usuários. Não há mensagens padrão nele. Você precisa criar suas próprias mensagens nesta transação.

Vá para a transação SE91 e crie uma classe de mensagens inserindo um nome, por exemplo, consideremos Myclass

(Lembre-se de que todos os nomes devem começar com 'Z'). Desculpe, esqueci de mencionar na minha resposta anterior.

Isso o levará a uma tabela onde você deve fornecer uma breve descrição da sua classe de mensagens. Depois de feito, salve. Você será levado a outra janela onde será solicitado a inserir o pacote, mas salve os procedimentos clicando na aba "objeto local" no final da tabela.

Depois de fazer isso, selecione a aba de atributos na tabela e insira suas mensagens para serem mostradas em suas próprias palavras e anote o número da mensagem.

Por fim, salve as mensagens.

Agora você pode usar essas mensagens referindo-se ao número da mensagem: se for uma mensagem de erro, adicione 'e' ao número da mensagem e se for uma mensagem informativa, adicione 'i' antes do número da mensagem. Você deve adicionar o ID da mensagem, que é o nome da sua classe de mensagem, no seu código como "zExemplo ID da mensagem zMyclass" onde zExemplo representa o nome do seu programa ou relatório.

Apenas siga minhas respostas anteriores para acessar as mensagens nos códigos.

Espero que funcione e me avise se houver algum problema.

Saudações,

Vivekanadan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá!

Obrigado pela sua resposta. Acessei o SE91. No entanto, não sei como gerenciar minha mensagem de Informação/Erro/Aborto.

Dado que o tipo de mensagem padrão é definido pela SAP, há alguma forma de modificá-lo apenas para a minha classe de mensagem?

Outra alternativa que tentei foi usar 'SET SCREEN XXXX', mas descobri que não funciona no meu código ABAP... se for uma mensagem E, mesmo assim será fechada.

Por favor, me ilumine!

Obrigado e cumprimentos.

Saudações!

Isaac

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Isaac,

Na transação SE91, crie uma classe de mensagem (por exemplo, Mymsg) onde você pode personalizar sua mensagem de aviso/erro/informação para os usuários finais.

Na aba de atributos, escreva sua mensagem a ser exibida e anote o número de mensagem correspondente. No seu caso, escreva sua mensagem de erro e suponha que seu número de mensagem seja 001.

Agora vá para o seu código ABAP onde você está validando o campo de tela e simplesmente adicione o código [ message-ID Mymsg ] perto do nome do seu relatório ou programa.

Agora, na condição IF onde você verifica a validade do seu campo de tela, adicione o código [Message e001] para uma condição inválida. Isso atenderá ao seu requisito de exibir uma mensagem de erro e não sair da tela.

Na condição válida, se precisar exibir uma mensagem de informação como "salve suas entradas", isso também pode ser feito de forma semelhante adicionando a mensagem na classe de mensagem e fazendo referência a ela no código através do número da mensagem. A diferença aqui está na sintaxe para a mensagem de informação. [i002 - por exemplo]

Espero que isso ajude.

Saudações,

Vivekanandan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?