Cómo mostrar múltiples mensajes en una única ventana, en programas ABAP
Conozca un modo de mostrar múltiples mensajes de diferentes tipos en una única ventana en programas ABAP, utilizando la función standard de SAP C14ALD_BAPIRET2_SHOW.
Resulta trivial mostrar al usuario el status erróneo del proceso que acaba de disparar para un documento comercial determinado. De hecho el problema se resuelve con una única sentencia MESSAGE … que mostrará un mensaje potencialmente expresivo y acorde a los estándares de SAP.
Sin embargo, cuando se procesan muchos documentos en un reporte al mismo tiempo, por ejemplo en un ALV, es complicado mostrar un resumen de mensajes indicando los resultados individuales.
Una posibilidad implicaría el desarrollo de una dynpro que muestre este resumen en un “modal dialog box” , pero se requiere un esfuerzo adicional por la codificación manual necesaria para ello y la mayoría de las veces no se dispone de ese tiempo extra.
Entre algunas alternativas de solución, este artículo detalla la utilización de una función standard apropiada para mostrar mensajes de BAPIs, que tiene una interfaz altamente estandarizada y fácil de usar.
Uso de la función C14ALD_BAPIRET2_SHOW
1. Ir a la transacción SE37 para testear la función. Escribir el nombre: C14ALD_BAPIRET2_SHOW y hacer click en “Test/Execute” .
Se podrá ver que solo existe un parámetro del tipo TABLES. En él se escribirán los datos propios a cada mensaje como se explica a continuación.
Notar que la estructura de la tabla es del tipo BAPIRET2, utilizada para recibir los mensajes en la mayoría de las BAPIs.
2. Hacer click en para comenzar a llenar la tabla. Se podrá ver la estructura de la misma, que se completa de la siguiente forma:
a. TYPE (T): Es el tipo de mensaje, ej: ‘E’, ‘W’, ‘I’, etc. Esto impactará en un ícono a modo de “semáforo” de acuerdo a la gravedad del tipo de mensaje elegido.
b. ID: El nombre de la Clase de Mensajes de la cual proviene el mensaje que se quiere mostrar, ej: ZMSJ_CLASS01.
c. NUMBER (NUM): El número de mensaje que se quiere mostrar en la clase de mensaje especificada en el ítem anterior, ej: 001 o 127.
d. MESSAGE_V1/2/3/4: Si el mensaje especificado tiene valores variables (‘&’) en él. Es en estos campos donde se pueden escribir sus valores. Es equivalente al agregado WITH… de la sentencia MESSAGE…, donde se puede escribir lo que se desee.
e. El resto de los campos de la estructura no requieren ser completados.
A modo de ejemplo se puede completar la estructura de la siguiente manera, mostrando los campos a completar en las 2 figuras que siguen::
3. Luego hacer click en “Back” y posteriormente “Execute” para probar la salida de la función. En el ejemplo se verá un POP-UP con un aspecto similar a la imagen siguiente:
Customizando la función C14ALD_BAPIRET2_SHOW
Un detalle a tener en cuenta es la simplicidad del código fuente de esta función que consiste en una serie de llamadas a otras funciones estándar que permiten Inicializar, Guardar, y Mostrar los mensajes recibidos.
La posibilidad de customizar la función, permite que la ultima Funtion Module en ser llamada: MESSAGES_SHOW, cobre mayor importancia.
Tener en cuenta que la mayoría de los parámetros están con sus valores por defecto.
Aprovechando las diferentes posibilidades que ofrece la función C14ALD_BAPIRET2_SHOW , se la puede “adaptar” (customizar) copiándola a una versión Z modificando los parámetros de la función anterior según se requiera. Así, es posible generar rápidamente una variante que se ajuste aún más a los requerimientos del negocio.
- Especialista ABAP y Workflow |
Copyright 2012 - Teknoda S.A.
IMPORTANTE: “Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos. |
FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Cómo mostrar múltiples mensajes en una única ventana, en programas ABAP"
Tema: Programación ABAP, funciones standard SAP . Descripción: Conozca un modo de mostrar múltiples mensajes de diferentes tipos en una única ventana en programas ABAP, utilizando una función standard de SAP.