✒️ABAP Los módulos de funciones POPUP
ABAP Los módulos de funciones POPUP
Lección 3 - Las Funciones POPUP
Las Funciones POPUP
Disponemos de un conjunto de módulos de funciones llamadas “popup”
las cuales nos permitirán generar en los desarrollos ABAP:
pantallas, ventanas flotantes, ventanas de confirmación y muchas otras más, de forma fácil y rápida
Algunos ejemplos de estas funciones son los siguientes:
POPUP_TO_CONFIRM:
este popup muestra un texto en la pantalla y los botones ”Ok” y “Cancelar” para confirmar.
POPUP_TO_DECIDE:
este popup muestra una ventana de dialogo con un texto y los botones “Si” y “No” para tomar una decisión.
POPUP_WITH_TABLE_DISPLAY:
muestra una ventana de dialogo dentro de la cual podemos colocar una tabla interna con registros de datos.
POPUP_TO_DECIDE:
muestra una ventana de dialogo dentro de la cual se visualizará una pregunta y los botones “Si” y “No” para responderla.
POPUP_SELECT_MONTH:
muestra una ventana de dialogo dentro de la cual se visualizará el mes y el año para ser seleccionados en la pantalla.
POPUP_TO_DISPLAY_TEXT:
muestra una ventana de dialogo dentro de la cual se visualizará un texto informativo y un botón para continuar.
POPUP_TO_CONTINUE_YES_NO:
muestra una ventana de dialogo dentro de la cual se visualizará un texto informativo y los botones “Continuar” y “Cancelar”.
Cabe aclarar que es importante no utilizar módulos de funciones del tipo POPOUP que hayan sido declarados por SAP
como “Obsoletos” ya que su mantenimiento no será realizado en futuras actualizaciones de versiones del sistema.
Ingresando a la transacción SE37 podemos verificar todos los POPU que tiene disponibles el sistema SAP.
Ingresamos el texto [POPUP_*] y damos clic sobre el botón MACHTCODE,
el sistema no mostrara un listado completo por grupo de funciones a los cuales pertenecen.
Para validar su funcionamiento mostraremos unos ejemplos de programas con la implementación de los mas utilizados.
El objetivo del siguiente programa ejemplo es crear una ventana de confirmación
y dependiendo de la respuesta el programa nos informe que botón presionamos.
Se implementa 2 variables para almacenar los textos del titulo y la consulta; y otra variable para almacenar la respuesta.
DATA: v_title(150) TYPE c,
v_text_question(150) TYPE c,
v_answer(1) TYPE c.
En el evento START-OF-SELECTION comenzamos implementando la concatenación de dos textos en la
variable v_text_question para que la apariencia en la ventana sea un salto de línea.
CONCATENATE 'Se han modificado los datos del cliente'
'Desea grabar los cambias?'
INTO v_text_question
SEPARATED BY space.
Capturamos tambien el nombre del titulo de la ventana
v_title = 'Modificacion de daos de Clientes'.
Y continuamos con el llamado de la función, donde se pude notar que muchos campos están como comentarios.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = v_title
text_question = v_text_question
IMPORTING
answer = v_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
Se verifica el resultado de la ejecución por medio de la variable SY-SUBRC preguntando si es diferente a cero;
Si es correcto se lanza mensaje estándar con las variables del sistema que entregan el detalle del error
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
De lo contrario se evalúa si el SY-SUBRC es igual a cero, donde se confirma que el proceso de selección de una opción fue correcto,
para esto el programa consulta si la variable v_answer tiene el valor de 1, 2 o A
para definir e informar por pantalla que opción selecciono el usuario.
ELSEIF sy-subrc EQ 0.
IF v_answer EQ '1'.
WRITE: 'Presionamos SI'.
ELSEIF v_answer EQ '2'.
WRITE: 'Presionamos NO'.
ELSEIF v_answer EQ 'A'.
WRITE 'Presionamos CANCELAR'.
ENDIF.
ENDIF.
El programa al ejecutarlo nos presenta una ventana emergente que tiene tres botones [SI][NO][Cancelar]
Y dependiendo del botón presionado el sistema muestra un resultado diferente
Otro programa ejemplo es para el POPUP_GET_VALUE, el cual permite por medio de una estructura de tabla
definir la apariencia de una ventada emergente de captura de datos y capturar un registro
Se define la estructura que almacenara la información para publicar ventana con la tabla estándar SVAL.
DATA: BEGIN OF t_campos OCCURS 5.
INCLUDE STRUCTURE sval.
DATA: END OF t_campos.
Definimos una variable para capturar la respuesta del usuario a nivel de botones.
DATA: v_return_popup(1) TYPE c.
En el evento START-OF-SELECTION. Limpiamos la estructura y la tabla.
CLEAR t_campos.
REFRESH t_campos.
E ingresamos como registros los valores de la tabla a captura la información.
CLEAR t_campos.
t_campos-tabname = 'ZOQS36A_USUARIOS'.
t_campos-fieldname = 'DNI'.
t_campos-fieldtext = 'DNI'.
APPEND t_campos.
CLEAR t_campos.
t_campos-tabname = 'ZOQS36A_USUARIOS'.
t_campos-fieldname = 'NOMBRE_APE'.
t_campos-fieldtext = 'Nombre y Apellido'.
APPEND t_campos.
CLEAR t_campos.
t_campos-tabname = 'ZOQS36A_USUARIOS'.
t_campos-fieldname = 'ESTADO_USU'.
t_campos-fieldtext = 'Estado'.
APPEND t_campos.
Limpiamos la variable de respuesta
CLEAR v_return_popup.
Y llamamos la función:
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
no_value_check = ' '
popup_title = 'Ingrese los datos del usuario'
start_column = '14'
start_row = '5'
IMPORTING
returncode = v_return_popup
TABLES
fields = t_campos
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
Terminada la ejecución se verifica el estado de ejecución con la variable SY-SUBRC y la respuesta con la variable V_RETURN_POPUP.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSEIF sy-subrc EQ 0.
* Esto significa que se presiono la tilde verde
IF v_return_popup EQ space.
WRITE: 'Presionamos la tilde verde'.
* Esto significa que se presiono X
ELSEIF v_return_popup EQ 'A'.
WRITE: 'Presionamos X'.
ENDIF.
ULINE.
ENDIF.
A continuación podemos evidenciar el resultado de la ejecución del programa donde nos muestra
una ventana emergente solicitando los datos definidos en la tabla.
Cuando los ingresamos y damos el botón aceptar,
El sistema guarda la información en la tabla donde se parametrizo la consulta en el campo VALUE
 
 
 
Sobre el autor
Publicación académica de Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial