¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo mostrar un mensaje de error sin salir del programa en SAP ABAP

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

Estimados desarrolladores,

Aquí está el problema que estoy enfrentando:

Cuando estoy en ME51 (Crear Requisición de Compra) --> Ítems de requisición de compra. He creado una salida de usuario para validar algunos campos de pantalla. Eventualmente, si pongo un tipo de mensaje E o A, saldrá del programa completo. Si pongo un tipo de mensaje W, permitirá al usuario ingresar el valor presionando 'ENTER' una vez.

Lo que quiero es que, si el campo de pantalla es inválido, entonces el programa no se salga, simplemente muestre un mensaje de error y permanezca en la pantalla. Intenté con SET SCREEN 106 pero no funcionó. De cualquier manera, ¡Por favor ayuda! ¿Hay algún comando que pueda usar para mi condición anterior?

Gracias y saludos.

Saludos,

Isaac

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

4 Respuestas

0
Cargando...

Estimado Vivekanadan,

De todos modos, gracias por tu ayuda. Creo que has malinterpretado mi pregunta. En realidad, mi pregunta también es muy específica sobre el submódulo de requisición de compra y sobre la salida de usuario. La creación de la clase de mensaje está hecha, pero solo el texto del mensaje afecta, no la acción por el mensaje.

Sin embargo, inesperadamente, hoy probé y encontré que el mensaje de error no me obligará a salir del sistema. Así que creo que eso debería estar bien y cumplir con los requisitos del cliente.

Por cierto, muchas gracias por tu paciencia.

¡Que tengas un buen día!

Saludos,

Isaac

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

Hola Isaac,

SE91 es simplemente un procedimiento para crear tus propios mensajes que podrás mostrar a los usuarios. No hay mensajes estándar en él. Necesitas <b>crear tus propios mensajes</b> en esta transacción.

Ve a la transacción SE91 y crea una clase de mensajes ingresando un nombre, por ejemplo, consideremos Myclass

(Recuerda que todos los nombres deben comenzar con 'Z'). Lo siento, olvidé mencionarlo en mi respuesta anterior.

Te llevará a una tabla en la que debes dar una breve descripción de tu clase de mensajes. Una vez hecho, guárdalo. Te llevará a otra ventana donde te pedirá ingresar el paquete, pero guarda los procedimientos haciendo clic en la pestaña "objeto local" al final de la tabla.

Después de hacerlo, selecciona la pestaña de atributos en la tabla e ingresa tus mensajes para ser mostrados en tus propias palabras y toma nota de su número de mensaje.

Finalmente, guarda los mensajes.

Ahora puedes usar estos mensajes refiriéndote al número de mensaje: si es un mensaje de error, agrega 'e' al número de mensaje y si es un mensaje informativo, agrega 'i' antes del número de mensaje. Debes agregar el ID del mensaje, que es el nombre de tu clase de mensaje, en tu código como "zEjemplo ID de mensaje zMyclass" donde zEjemplo representa el nombre de tu programa o reporte.

Solo sigue mis respuestas anteriores para acceder a los mensajes en los códigos.

Espero que funcione y házmelo saber si hay algún problema.

Saludos,

Vivekanadan

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

¡Hola!

Gracias por tu respuesta. He ingresado en SE91. Sin embargo, no sé cómo gestionar mi mensaje de Información/Error/Aborto.

Dado que el tipo de mensaje estándar está definido por SAP, ¿hay alguna forma de modificarlo solo para mi clase de mensaje?

Otra alternativa que he intentado es usar 'SET SCREEN XXXX', pero descubrí que no funciona en mi código ABAP... si es un mensaje E, aún así se cerrará.

¡Por favor, ilumíname!

Gracias y saludos.

¡Saludos!

Isaac

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

Hola Isaac,

En la transacción SE91, crea una clase de mensaje (por ejemplo, Mymsg) donde puedas personalizar tu mensaje de advertencia/error/información para los usuarios finales.

En la pestaña de atributos, escribe tu mensaje a mostrar y toma nota de su número de mensaje correspondiente. En tu caso, escribe tu mensaje de error y supongamos que su número de mensaje es 001.

Ahora ve a tu código ABAP donde estás validando el campo de pantalla y simplemente agrega el código [ message-ID Mymsg ] cerca del nombre de tu informe o programa.

Ahora, en la condición IF donde verificas la validez de tu campo de pantalla, agrega el código [Message e001] para una condición inválida. Esto cumplirá tu requisito de mostrar un mensaje de error y no salir de la pantalla.

En la condición válida, si necesitas mostrar un mensaje de información como "guarda tus entradas", esto también se puede hacer de manera similar agregando el mensaje en la clase de mensaje y refiriéndote a él en el código a través del número de mensaje. La diferencia aquí es la sintaxis para el mensaje de información. [i002 - por ejemplo]

Espero que esto ayude.

Saludos,

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?