SAP Netweaver / ABAP                  Notas técnicas / Tips / Tutorials

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” . ABAP-Test-function-module-boton-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.

 

ABAP-Test-function-module

2. Hacer click en ABAP-Test-function-module-boton-Entries 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::

ABAP-function-module-message-1

ABAP-function-module-message-2

 

3. Luego hacer click en “Back” ABAP-function-module-message-boton-Back y posteriormente “Execute” ABAP-function-module-message-boton-Executepara probar la salida de la función. En el ejemplo se verá un POP-UP con un aspecto similar a la imagen siguiente:

ABAP-function-module-message-document-lines

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.

 

ABAP-function-module-message-codigo

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.


n_Marco_Gatti - 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.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


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.

Copyright © 2024 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.